mochiA soft rice cake with a flat seat and a round head — the default friend.
- shape
mochiMochi- color
blueBlue- accent
#0D7EFF
The named characters, one per shape. Each is a shape, an ink and a little personality — nothing a { shape, color } pair could not reproduce, given a name so a product can offer "pick a character" instead of "pick a shape and an ink". The cast matches the shapes one to one: a shape the engine adds must come with its name.
mochiA soft rice cake with a flat seat and a round head — the default friend.
mochiMochiblueBlue#0D7EFFdotA plain orange circle, the shape every face was first drawn on.
circleCircleorangeOrange#F25C0FpipA soft cyan blob that never quite sits still.
blobBlobcyanCyan#0899B8byteA pebble-round little shell in calm device violet.
pebblePebblevioletViolet#6F55E0momoA peach-pink egg, pointy on top and plump below — the steadiest sitter of the family.
eggEggredRed#E0363AbaoA warm little bun with a knot on top.
bunBunyellowAmber#E9A20CtealA lake-teal block of tofu: square without corners, round without slouching.
tofuTofucyanCyan#0899B8tatoA pill on its side: round caps, a straight middle, and zero ability to sit still.
pillPillredRed#E0363AhexaA rounded hexagon in lake teal, every corner worn soft.
hexHexagoncyanCyan#0899B8triA rice ball of a triangle that hops sharp and lands steady.
onigiriOnigirimagentaMagenta#D12D8CgemmaA soft-cut gem with a pale crown and every corner rounded.
gemGemcyanCyan#0899B8nimboA puffy scallop-edged cloud that drifts half a beat behind the world.
cloudCloudblueBlue#0D7EFFdewA sky-blue droplet that lands without ever losing its plump shine.
dropDropblueBlue#0D7EFFleafyA tilted leaf with a little stem, as if it just decided to unfurl.
leafLeafgreenGreen#1B9A5CbloomA rose flower with soft scalloped petals and a calm face in the middle.
flowerFlowermagentaMagenta#D12D8CluckyFour plump leaves and a calm face in the middle, good luck without the fuss.
cloverClovergreenGreen#1B9A5CsproutA round little seed with two leaves, as if it just decided to grow.
sproutSproutgreenGreen#1B9A5CshroomA red-capped mushroom with three pale spots and a thick stalk.
mushroomMushroomredRed#E0363AoakA brown acorn in a cap one size too big, hoarding small secrets.
acornAcornbrownBrown#C46A32pokeyA round-armed cactus that hugs from a polite distance.
cactusCactusgreenGreen#1B9A5CnashiA plump little pear with a leaf on its stem, round at the top and wide at the seat.
pearPearyellowAmber#E9A20CpommeA green apple with a deep dimple and one leaf, crisp even when it is sad.
appleApplegreenGreen#1B9A5CberryA red strawberry in a green crown and a face full of freckles, sweet with a little sour.
strawberryStrawberryredRed#E0363AcheriTwo cherries on one stalk; the big one does the talking.
cherryCherrymagentaMagenta#D12D8CtwinkleA soft five-point star, round-tipped and glowing gold.
starStaryellowAmber#E9A20CluvA plump red heart that wears its feelings in the middle of its face.
heartHeartredRed#E0363AemberA little flame leaning sideways, tip flicking in the breeze.
flameFlameorangeOrange#F25C0FchimeA violet bell with a round clapper, swaying one beat before it rings.
bellBellvioletViolet#6F55E0jellyA minimalist apricot ghost that drifts along, always unhurried.
ghostGhostorangeOrange#F25C0FbeepA cyan little robot with a bobbing antenna and a rounded-square head.
botBotcyanCyan#0899B8lunaA plump crescent, forever on the edge of sleep.
crescentCrescentyellowAmber#E9A20CbobaA brown milk tea with three pearls at the bottom and a straw pointing at the sky.
bobaBoba teabrownBrown#C46A32finnA round cyan fish with a big forked tail, swimming in place.
fishFishcyanCyan#0899B8inkyA violet octopus with four fat legs that never agree on a direction.
octopusOctopusvioletViolet#6F55E0misoAn orange cat with two pointed ears, curious about everything within reach.
catCatorangeOrange#F25C0FhopA pink bunny with long ears and a round seat, always about to jump.
bunnyBunnymagentaMagenta#D12D8CbrunoA round brown bear with two small ears and a very soft heart.
bearBearbrownBrown#C46A32chirpA yellow chick, all fluff, a tuft on top and tiny feet.
chickChickyellowAmber#E9A20CwaddleA penguin with a pale round belly, rocking from side to side.
penguinPenguinblueBlue#0D7EFFoinkA pink pig with folded ears and a big round snout, always sniffing out a snack.
pigPigpinkPink#E8628FrustyAn orange fox with a heart-shaped face and a white chin, sly in a very polite way.
foxFoxorangeOrange#F25C0FkikiA straight-banged bob in warm brown, neat to the last strand.
bobBobbrownBrown#C46A32maruA pink top knot, tied up high and ready for anything.
topknotTop knotpinkPink#E8628FzipBlue spikes that never lie down, whatever the comb says.
spikySpikyblueBlue#0D7EFFfuzzA green cloud of curls with a very calm face underneath.
curlyCurlygreenGreen#1B9A5CluluTwo violet buns, one on each side, perfectly even.
twinbunsTwin bunsvioletViolet#6F55E0Tour walks a card through every protocol id in turn.
A preset supplies shape and color when they are not given, and nothing else: passing shape alongside preset overrides the preset's shape. It is a convenience layer over the primitives, not a new axis.
{
"id": "bao",
"name": {
"en": "Bao",
"zh": "包包"
},
"desc": {
"en": "A warm little bun with a knot on top.",
"zh": "奶黄小馒头,头顶一个小揪揪,热乎乎的。"
},
"shape": "bun",
"color": "yellow",
"accent": "#E9A20C"
}color is the nearest palette entry and is what renders. accent is the exact hue the character was drawn in; it is kept for documentation swatches and for hosts with their own palette. No shipped member sets face or nose — the cast keeps the default face — but a host's own presets can, and every picker honours them.
castMember returns null rather than throwing for an unknown id, so a stored preference that names an unknown id degrades to the default character instead of crashing the page.