AI column

Video@donghyeok99Staff

Mesh Avatar Studio: one illustration into a moving 2D avatar

A team running its in-app character on this runtime asked for glasses, sent the code, and it was merged within a day.

An agent lays a mesh and dots over one drawing; the avatar blinks and talks, then goes live on a green stream background.
An agent lays a mesh and dots over one drawing; the avatar blinks and talks, then goes live on a green stream background.
Who
Made by shinshin86, with guides in English, Japanese and Chinese.
When
The repository opened on October 4, 2026; the mesh-avatar runtime 0.4.0 came out on October 28.
Where
Node.js 22.17+ with Claude Code or Codex. The editor and Live run on your machine; the Player runs in Chrome or Edge with no install.

What was hard

A 2D avatar that talks and blinks is usually made by splitting the drawing into parts, eyes, inner mouth, hair, neck, and rigging each by hand. With nothing but one illustration, it was hard to know where to begin.

What it does about it

Mesh Avatar Studio hands that rigging to a coding agent. Following the repository's guide, the agent reads eye, mouth and hair coordinates from zoomed grids, builds the rig, cuts the image into layers and renders fixed poses to check and correct its own work. Whatever still looks off, you drag into place in the editor while the preview follows.

The editor with the Miko sample: parts on the left, preview on the right
The editor with the Miko sample: parts on the left, preview on the right
Dragging the dots of an eye outline over the image
Dragging the dots of an eye outline over the image
Choosing a mouth style and trying lip sync with kana text
Choosing a mouth style and trying lip sync with kana text
The Live page: follow the camera and copy the OBS URL
The Live page: follow the camera and copy the OBS URL

What people made with it

GitHub@wtc-toshiaki2026-10-27

A team using the runtime to show a character in its app proposed overlay layers for items like glasses; its pull request was merged the next day.

We use the runtime (currently 0.3.0) to show a character in an app
comments 1 (2026-10-29 as of)GitHub ↗
GitHub@Znegil2026-10-12

Rigging an avatar called Stella with the tool alongside someone who built a VTuber by hand, they suggested separate layers for eyes, inner mouth and neck.

Happy to test any layering changes against our Stella pilot rig and report back with comparisons.
comments 2 (2026-10-29 as of)GitHub ↗

How it runs inside

  1. 1

    You → Claude Code · Codex

    A PNG and a request to follow the guideThe agent first tests how accurately it reads coordinates and reports the score.docs/agent-guide.md
  2. 2

    Claude Code · Codex → tools/ scripts

    grid.py: a zoomed grid per partNo estimates from the full image: 10 px grids, 5 px for the eyes.tools/grid.py
  3. 3

    tools/ scripts → projects/<name>/rig.json

    rig.draft.json drawn over the imageFixed until each eye outline follows the eye white within about 2 px.tools/overlay.py
  4. 4

    tools/ scripts → projects/<name>/rig.json

    build-layers.py: layers and rig.jsonCuts the hair mask and eye layers into built/ and writes the complete rig.json.tools/build-layers.py
  5. 5

    tools/ scripts → Claude Code · Codex

    render-poses: frames in fixed posesClosed eyes, head turns and an open mouth go to review/; up to three rounds of fixes.tools/render-poses.mjs
  6. 6

    projects/<name>/rig.json → Studio editor

    npm run dev, then drag the dotsPick a part, drag its dots, and the preview on the right follows at once.src/main.tsx
  7. 7

    Studio editor → Live page · OBS

    Camera and mic drive it; copy the OBS URLVideo and audio stay on your machine; only motion values reach the stream view.live.html

What goes in, what comes out

One front-facing PNGA mesh avatar that blinks, talks and turns its head
npm run create -- --randomCodex draws a new character, then builds the avatar from her
Export .mavatarOne file with the rig, layers and expressions
Camera and mic on the Live pageAn OBS Browser Source with a transparent background

Is it for you

Good for

  • Making a streaming avatar from a single drawing
  • Developers who want a talking character in a web app (custom element, React component)
  • Anyone already working with Claude Code or Codex

Not for

  • Works best on a front-facing head-and-shoulders PNG; a three-quarter view, hands over the face or hair covering it lower the quality.
  • Drawn eyes and mouths come from Codex's image generation, which sends the image to OpenAI; Claude Code can't make images, only the requests.
  • The guide recommends a strong vision model such as Claude Opus 5.5 or GPT-6.1 Sol, and a run usually takes tens of minutes.
  • The sample character Miko is not under the MIT License; her images follow their own usage guidelines.

Reviewed by Devalley’s editor before publishing. How the column is made

Sign in to post, comment and like.Sign in

Report

Reason

Read the community rules