minimoji

Bring your apps, games and agents to life with Mini avatars.

A Mini is a cute 3D chibi avatar built from a few lines of JSON — for the people in your product, the characters in your game, the agents talking to them. It looks, blinks, reacts and talks, on the web, in Expo, or native Swift.

They’re mid-conversation. Get close and they look at you; click one — it talks; hover — pick a face.

Any Mini, from JSON.

Describe a Mini in a small document and minimoji builds it — one of two trillion. Let users pick, let a model write it, or deal one from a seed. The same document always rebuilds the same Mini, so it travels: a profile row, a URL.

Click any value and pick another — search the list, or arrow through it.

{
  "v": 1,
  "seed": ,
  "head": ,
  "skin": ,
  "hair": { "style": , "color":  },
  "eyes": { "color": , "shape":  },
  "brows": ,
  "nose": ,
  "facialHair": ,
  "glasses": { "style": , "color":  },
  "hat": { "style":  },
  "ears": { "style":  },
  "extra": { "style":  },
  "blush": ,
  "freckles": 
}

Every kind of face.

Skins, hair, beards, glasses, hats, earrings, headphones, freckles — everything in the inventory composes with everything else. Bring your cursor close; they look up.

Looks, talks, reacts, idles.

Give it audio or text and it talks; give it a feeling and it reacts; point it somewhere and it looks; leave it alone and it idles. Nothing to animate by hand.

  • looks

    Eyes lead, the head follows. Point it at a cursor, a speaker, or a spot.

  • talks

    A procedural jaw for any duration — or a viseme timeline from your TTS.

  • reacts

    Happy, surprised, laugh, smug, sad, angry — blended, never popped.

  • idles

    Left alone, it breathes, blinks, looks around and drifts through micro-expressions.

In your UI, not in a canvas.

Minis anchor to elements in your layout — a chat bubble, a player card, a contact row — and follow them through scroll and resize. One stage per page, as many Minis as you like.

Web

Now

@minimoji/react — one <MinimojiStage>, heads anchored to any element. React 19, three.js.

Expo

Now

The same components on iOS and Android through react-three-fiber and expo-gl.

Swift

Coming

Native RealityKit rendering from the same JSON: real materials, dozens on screen, no web view.