minimoji

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

A Mini is a cute 3D chibi avatar generated from a few lines of JSON — for the people in your product, the characters in your game, and the agents talking to them. Minis look, blink, react and talk, in a web page, an Expo app, 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 generates it — two trillion combinations of head, skin, hair, eyes, nose, brows, beard, glasses, hats and extras, before colours and sizes. Let users pick, let a model write it from a description, or deal one from a seed. Click any value to change it; shift-click goes backwards. The same document always rebuilds the same Mini, so it travels: a profile row, a save file, a URL, a message.

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

Every kind of face.

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

Looks, talks, reacts, idles.

Drive a Mini with speech and emotions: give it audio or text and the mouth talks, give it a feeling and the face reacts, point it somewhere and it looks. Left alone, it blinks, breathes and drifts on its own — 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 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 stay on them through scroll and resize. One stage per page, as many Minis as the page needs.

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.