Sinua
Catalog

Character

A face for your voice assistant: its gaze knows whose turn it is, and its mouth follows the voice.

A character is a face for your voice assistant. The gaze knows whose turn it is: it looks at you while you talk, looks up and away while it thinks, and blinks when your turn ends. The mouth follows only how loud the agent's voice is. Give it a voice source or an agent state, like every other object.

See every character pattern live

Want your own? A character is a recipe, and you can make your own from one of these in a single file.

When to use which pattern

PatternpatternWho it isHow it shows the voice
BuzzybuzzyA small space-hero assistant: a rounded helmet, a glass visor over a face screen, a voice core in the chest.The mouth is a voice line: two even waves that flow, and the voice's level sets only their height, so it never jitters. While listening, sound arcs light at its ear pods with your voice.
HumhumA vintage studio microphone that hosts the show, with its face on the grille.The grille's slots light with the voice. A tally light is red while listening and blinks amber while thinking.
WispwispA helpful spirit: a glowing head flowing into a curling smoke tail.Its sparkles gather in while it listens, circle its head while it thinks and stream out with its voice.
ChirpchirpA songbird with teal wings and a feather crest.The beak opens with the voice and little notes rise from it. While thinking, three thought dots light in turn.
CuppacuppaA coffee mug on its saucer.Steam rises while it listens and thickens with its voice.
BeanbeanA coffee bean on little feet, with aroma sparkles.Its sparkles gather while it listens, circle while it thinks and stream out with its voice.
BeepbeepA small tin robot with arms.A hand goes to its ear to listen and to its chin to think, and its arms beat with the voice. arms: false takes them off.

How it behaves

  • The eyes are shapes. No pupils and no brows: the eye's shape is the expression, so it still reads at 20 px.
  • It knows whose turn it is. It looks at you while listening, looks up and away while thinking, and blinks once as your turn ends.
  • The mouth follows the voice's loudness. Nothing more: no lip-sync, so any voice source works.
  • Effects are expressions. success is ^ ^ eyes with a grin, error is x x eyes with a short shake, celebrate is star eyes with a burst.
  • Muted, it squints and fades. Its colours stay.
  • State changes are smooth. The eyes slide up as thinking starts; they don't jump.

Head turn

The head turns like a solid, not a flat sticker: the face slides round its surface and the body shows the turn. At rest it looks from corner to corner, listening it turns to you, thinking it looks up and away, and speaking it nods with the voice.

turn sets how far: the default is about ±25°, 1 is ±35° and 0 draws it flat. At 20 px the head doesn't turn, and with reduced motion only the facing of each state stays. It stays in the light cost class.

Expressions

expression gives the character a mood your app picks. It stays until you change it, and a change eases over 0.6 s.

expressionEyesResting mouth
happythe happy arca smile
surprisedwider and taller, lids opena small "O"
thoughtfula lid, the left eye shorter, a slight tilta smile
sada lid, outer corners droppeda downturned line
sleepyheavy lids, a slow deep breatha smile
nonethe character's ownits own
  • It sits on top of the voice state. The expression owns the eyes' shape; the state keeps the gaze, the head turn, the blinks and the talking mouth. A sad Bean still turns to you while you talk.
  • Chirp and Hum have no resting mouth to change (a beak, a grille), so theirs is in the eyes only.
  • Effects still play on top, and an expression is never announced.
  • In an FX Spec, expression can go in the file and in each state. The view's prop wins over the file's.

Tap reaction

A tap or a click on a character plays hop: it crouches, hops and lands with a little squash, smiles, and glances toward where you tapped. The voice state carries on underneath.

  • It's on by default on SinuaCharacter and <sinua-character>; the plain SinuaView leaves it off.
  • A tap never cuts a running success, error or celebrate, and there are at most two hops a second.
  • With reduced motion it only smiles.
  • Inside a tappable button or list row, set tap: false, so the tap goes to your control and the character doesn't hop as well.

Palette

palette repaints some of a character's colours and leaves the rest as drawn: { body: "#E63946" }. To change only colours, this is all you need; no recipe.

  • Slots are named by the part they paint, never by colour: body is every character's main colour, and outline, cheeks and shine mean the same everywhere. The eyes are eyes on a body face and glow on a screen face. An unknown slot is an error that suggests the closest name.
  • Tones follow. Given body, its bodyLight and bodyDark move with it. A tone you give yourself wins.
  • After hue. hue still turns the slots it turns; a colour you give is never turned.
  • The eyes stay readable. When a new colour comes too close to the ink of the eyes and mouth, the ink moves to the far side, unless you set the ink too.
  • Labels for a colour picker: every slot has a label and a one-line description in spec/character-slot-labels.json, with the localization key sinua.slot.<character>.<slot>.
  • A change applies at once. In an FX Spec, palette can go in the file and in each state.
CharacterSlots (a slot marked +Light/Dark brings its tones)
buzzybody (+Light/Dark), outline, screen, accent, glow, visor, visorEdge, shine
humbody (+Light/Dark), stand (+Dark), grille, glow, outline, tallyListening, tallyThinking, tallyOff, shine
wispbody, bodyMid, tail, outline, eyes, sparkles, twinkles, shine
chirpbody (+Light/Dark), belly, feathers, beak (+Dark), outline, eyes
cuppamug (+Light/Dark), coffee, crema, sleeve (+Dark), heart, shine, cheeks, saucer (+Dark), outline, eyes, steam
beanbody (+Light/Dark), groove, grooveEdge, shine, cheeks, aroma, foam, outline, eyes
beepbody (+Light/Dark), arms, screen, glow, accent, tallyOff, tallyListening, tallyThinking, outline, rivets, cheeks

Roles and the dark variant

A palette can also be written over roles, so one palette fits every character: each character maps primary, secondary and accent to its own slots.

  • { primary: "#E63946" } paints by role, without knowing the slot names. Slots you write win over roles.
  • A role a character doesn't have is read as a slot name, so writing it is an error (Buzzy and Bean have no secondary).
  • Dark theme: { primary: "#2E87C2", dark: { primary: "#2E6A9E" } } gives your own dark variant. The view picks it when the theme is dark.
Characterprimarysecondaryaccent
buzzybody—accent
humbody—tallyListening
wispbodybodyMidtail
chirpbodybellybeak
cuppamugsleeveheart
beanbody—aroma
beepbodyarmsaccent

A character keeps its own colours otherwise: color and gradient don't apply, and in an FX Spec they are an error.

The richer look

Airbrushed shading, rim light and film grain, with no blur: a character's soft shade masses and rim light give it depth, and grain lays a still, fine noise inside its body. The face stays crisp. shading turns the soft layers off and grain sets the amount; under low power both turn off.

The built-in characters are unchanged; a recipe adds the layers.

Options

PropDefaultWhat it does
hue232Turns the character's main colour. The eyes and the accents stay.
palettenoneRepaints colours by slot or role, with an optional dark variant (see Palette).
expressionnoneA mood: happy, surprised, thoughtful, sad, sleepy.
grain0Film grain inside the body, 0 to 1.
shadingonThe soft shading and rim light.
taponA tap plays a hop. Off inside a tappable control.
mouthonOff draws eyes only.
accessoriesonOff drops the extras: Buzzy's crest and ear arcs, Hum's tally light, Wisp's sparkles, Chirp's notes, Cuppa's steam.
armsonBeep's arms.
look1How much the eyes glance around on their own; 0 keeps them on the viewer.
turn0.71How far the head turns; 0 is flat.
seed0When it blinks and glances, so two characters side by side don't move in step.
character-react.tsx
import { SinuaCharacter } from "@sinua/web/components";
import type { VoiceSource } from "@sinua/core";

// A character for your assistant: it looks at you while you talk, looks away while it
// thinks, and its mouth follows the agent's voice.
export function Assistant({ voice }: { voice: VoiceSource }) {
  return (
    <SinuaCharacter
      pattern="buzzy"
      voice={voice}
      hue={190} // turns the body; the eyes and accents keep their colours
      palette={{ accent: "#FFFFFF" }} // repaint a slot outright
      expression="happy" // a mood your app picks; the voice state still moves it
      label="Buzzy"
      labels={{ listening: "Buzzy is listening", speaking: "Buzzy is speaking" }}
      style={{ width: 160, height: 160 }}
    />
  );
}

On the web it's also a tag: <sinua-character pattern="buzzy" hue="190">, with palette as a property.

Props

Every prop, per pattern. Besides the options above, the pose values the states set (gazeX, lid, eyeSmile, …) are props too, so you can tune how a state looks. Defaults can differ per size (20 · 32 · 64).

The character component is SinuaCharacter. Pick a look with pattern; each pattern reads the props below. Sizes are engine sizes (20, 32, 64): defaults can differ per size.

PatternModeSpeedValues (app data)
Buzzy (buzzy)buzzy1×—
Hum (hum)hum1×—
Wisp (wisp)wisp1×—
Chirp (chirp)chirp1×—
Cuppa (cuppa)cuppa1×—
Bean (bean)bean1×—
Beep (beep)beep1×—

Buzzy

pattern: "buzzy" · mode buzzy · speed 1× · sizes 20, 32, 64

PropCategoryTypeRangeDefaultDescription
accessoriesAppearanceboolean1The character's extras: Buzzy's crest, ear chevrons and listening arcs; Hum's tally light; Wisp's sparkles; Chirp's notes and thought dots.
grainAppearancenumber0–1 (UI 0–0.2)0Film grain inside the character's bodies (FX Spec 1.13): a fine, still noise of light and dark specks. 0 = none; a recipe's grain sets its default. Left out at 20 px; an FX Spec resolved under low power turns it off.
hueAppearancenumber0–360 deg232Turns the shell's colour (and its line and screen tints) in degrees; the eyes and the amber accents stay.
inkAppearancenumber0–1 fraction1How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
mouthAppearanceboolean1Draw the mouth (Buzzy's voice line, Hum's lit grille, Wisp's opening oval, Chirp's beak); off keeps it at rest.
shadingAppearanceboolean1Whether a recipe's soft layers draw: shade masses (airbrushed shadows, highlights, a blush) and rim light (FX Spec 1.13). An FX Spec resolved under low power turns them off.
lookMotionnumber0–21How much the eyes glance around on their own while idle (0 = always at the viewer).
seedMotioninteger0–∞ (UI 0–20)0Changes when it blinks and glances, so two characters side by side don't move in sync.
turnMotionnumber0–10.71How far the head turns like a solid (0 = flat, 1 = ±35°; the default is ±25°).
Advanced props (23)
PropCategoryTypeRangeDefaultDescription
eyeAsymAppearancenumber0–0.60Makes the left eye shorter (a quizzical look).
eyeHAppearancenumber8–4026Eye height, in design units.
eyeRAppearancenumber0–208Eye corner radius, in design units.
eyeSmileAppearancenumber0–10The happy arc cut from below the eyes.
eyeTiltAppearancenumber-1–10Slope of the lid: positive lowers the outer corners (pensive).
eyeWAppearancenumber8–3620Eye width, in the character's 200-unit design box.
lidAppearancenumber0–0.90How far the top lid comes down (a squint), 0 to 0.9 of the eye.
mouthDotsAppearancenumber0–10Above 0.5 the mouth is three thinking dots.
mouthTalkAppearancenumber0–10Above 0.5 the mouth is the voice line (speaking).
gazeXMotionnumber-14–140Where the eyes look, sideways, in design units (negative = left).
gazeYMotionnumber-12–120Where the eyes look, up and down, in design units (negative = up).
leanMotionnumber-8–80Leans the whole character toward the viewer (design units).
tiltMotionnumber-0.3–0.30Tilts the whole character (radians; positive = clockwise).
turnBlinkMotionnumber0–10Blink once as this state starts (the end of the user's turn).
turnNodMotionnumber0–10How much the head nods with the voice level.
turnPitchMotionnumber-1–10Where this state faces, up or down (-1..1 of the turn; positive = up).
turnWanderMotionnumber0–10How much the head looks from corner to corner on its own, holding each look.
turnYawMotionnumber-1–10Where this state faces, sideways (-1..1 of the turn; negative = the viewer's left).
bounceGainEnergynumber0–80How far the voice lifts the body while speaking (design units).
breathEnergynumber0–20Idle breathing bob.
earGainEnergynumber0–10How strongly the listening sound arcs show with the user's level.
mouthGainEnergynumber0–20How far the voice line swings with the level.
squashGainEnergynumber0–0.120How much the voice squashes the body while speaking.

Hum

pattern: "hum" · mode hum · speed 1× · sizes 20, 32, 64

PropCategoryTypeRangeDefaultDescription
accessoriesAppearanceboolean1The character's extras: Buzzy's crest, ear chevrons and listening arcs; Hum's tally light; Wisp's sparkles; Chirp's notes and thought dots.
grainAppearancenumber0–1 (UI 0–0.2)0Film grain inside the character's bodies (FX Spec 1.13): a fine, still noise of light and dark specks. 0 = none; a recipe's grain sets its default. Left out at 20 px; an FX Spec resolved under low power turns it off.
hueAppearancenumber0–360 deg9Turns the capsule's colour in degrees; the brass, the grille, the eyes and the tally stay.
inkAppearancenumber0–1 fraction1How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
mouthAppearanceboolean1Draw the mouth (Buzzy's voice line, Hum's lit grille, Wisp's opening oval, Chirp's beak); off keeps it at rest.
shadingAppearanceboolean1Whether a recipe's soft layers draw: shade masses (airbrushed shadows, highlights, a blush) and rim light (FX Spec 1.13). An FX Spec resolved under low power turns them off.
lookMotionnumber0–21How much the eyes glance around on their own while idle (0 = always at the viewer).
seedMotioninteger0–∞ (UI 0–20)0Changes when it blinks and glances, so two characters side by side don't move in sync.
turnMotionnumber0–10.71How far the head turns like a solid (0 = flat, 1 = ±35°; the default is ±25°).
Advanced props (24)
PropCategoryTypeRangeDefaultDescription
eyeAsymAppearancenumber0–0.60Makes the left eye shorter (a quizzical look).
eyeHAppearancenumber8–4026Eye height, in design units.
eyeRAppearancenumber0–208Eye corner radius, in design units.
eyeSmileAppearancenumber0–10The happy arc cut from below the eyes.
eyeTiltAppearancenumber-1–10Slope of the lid: positive lowers the outer corners (pensive).
eyeWAppearancenumber8–3620Eye width, in the character's 200-unit design box.
lidAppearancenumber0–0.90How far the top lid comes down (a squint), 0 to 0.9 of the eye.
mouthDotsAppearancenumber0–10Above 0.5 the mouth is three thinking dots.
mouthTalkAppearancenumber0–10Above 0.5 the mouth is the voice line (speaking).
gazeXMotionnumber-14–140Where the eyes look, sideways, in design units (negative = left).
gazeYMotionnumber-12–120Where the eyes look, up and down, in design units (negative = up).
leanMotionnumber-8–80Leans the whole character toward the viewer (design units).
tiltMotionnumber-0.3–0.30Tilts the whole character (radians; positive = clockwise).
turnBlinkMotionnumber0–10Blink once as this state starts (the end of the user's turn).
turnNodMotionnumber0–10How much the head nods with the voice level.
turnPitchMotionnumber-1–10Where this state faces, up or down (-1..1 of the turn; positive = up).
turnWanderMotionnumber0–10How much the head looks from corner to corner on its own, holding each look.
turnYawMotionnumber-1–10Where this state faces, sideways (-1..1 of the turn; negative = the viewer's left).
bounceGainEnergynumber0–80How far the voice lifts the body while speaking (design units).
breathEnergynumber0–20Idle breathing bob.
earGainEnergynumber0–10How strongly the listening sound arcs show with the user's level.
mouthGainEnergynumber0–20How far the voice line swings with the level.
squashGainEnergynumber0–0.120How much the voice squashes the body while speaking.
swayGainEnergynumber0–0.150How far the capsule sways on its yoke with the voice while speaking (radians).

Wisp

pattern: "wisp" · mode wisp · speed 1× · sizes 20, 32, 64

PropCategoryTypeRangeDefaultDescription
accessoriesAppearanceboolean1The character's extras: Buzzy's crest, ear chevrons and listening arcs; Hum's tally light; Wisp's sparkles; Chirp's notes and thought dots.
grainAppearancenumber0–1 (UI 0–0.2)0Film grain inside the character's bodies (FX Spec 1.13): a fine, still noise of light and dark specks. 0 = none; a recipe's grain sets its default. Left out at 20 px; an FX Spec resolved under low power turns it off.
hueAppearancenumber0–360 deg253Turns the spirit's colour (violet and teal together) in degrees; the sparkles and the eyes stay.
inkAppearancenumber0–1 fraction1How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
mouthAppearanceboolean1Draw the mouth (Buzzy's voice line, Hum's lit grille, Wisp's opening oval, Chirp's beak); off keeps it at rest.
shadingAppearanceboolean1Whether a recipe's soft layers draw: shade masses (airbrushed shadows, highlights, a blush) and rim light (FX Spec 1.13). An FX Spec resolved under low power turns them off.
lookMotionnumber0–21How much the eyes glance around on their own while idle (0 = always at the viewer).
seedMotioninteger0–∞ (UI 0–20)0Changes when it blinks and glances, so two characters side by side don't move in sync.
turnMotionnumber0–10.71How far the head turns like a solid (0 = flat, 1 = ±35°; the default is ±25°).
Advanced props (24)
PropCategoryTypeRangeDefaultDescription
curlGainAppearancenumber0–20.6How tightly the smoke tail curls (thinking curls it most).
eyeAsymAppearancenumber0–0.60Makes the left eye shorter (a quizzical look).
eyeHAppearancenumber8–4026Eye height, in design units.
eyeRAppearancenumber0–208Eye corner radius, in design units.
eyeSmileAppearancenumber0–10The happy arc cut from below the eyes.
eyeTiltAppearancenumber-1–10Slope of the lid: positive lowers the outer corners (pensive).
eyeWAppearancenumber8–3620Eye width, in the character's 200-unit design box.
lidAppearancenumber0–0.90How far the top lid comes down (a squint), 0 to 0.9 of the eye.
mouthDotsAppearancenumber0–10Above 0.5 the mouth is three thinking dots.
mouthTalkAppearancenumber0–10Above 0.5 the mouth is the voice line (speaking).
gazeXMotionnumber-14–140Where the eyes look, sideways, in design units (negative = left).
gazeYMotionnumber-12–120Where the eyes look, up and down, in design units (negative = up).
leanMotionnumber-8–80Leans the whole character toward the viewer (design units).
tiltMotionnumber-0.3–0.30Tilts the whole character (radians; positive = clockwise).
turnBlinkMotionnumber0–10Blink once as this state starts (the end of the user's turn).
turnNodMotionnumber0–10How much the head nods with the voice level.
turnPitchMotionnumber-1–10Where this state faces, up or down (-1..1 of the turn; positive = up).
turnWanderMotionnumber0–10How much the head looks from corner to corner on its own, holding each look.
turnYawMotionnumber-1–10Where this state faces, sideways (-1..1 of the turn; negative = the viewer's left).
bounceGainEnergynumber0–80How far the voice lifts the body while speaking (design units).
breathEnergynumber0–20Idle breathing bob.
earGainEnergynumber0–10How strongly the listening sound arcs show with the user's level.
mouthGainEnergynumber0–20How far the voice line swings with the level.
squashGainEnergynumber0–0.120How much the voice squashes the body while speaking.

Chirp

pattern: "chirp" · mode chirp · speed 1× · sizes 20, 32, 64

PropCategoryTypeRangeDefaultDescription
accessoriesAppearanceboolean1The character's extras: Buzzy's crest, ear chevrons and listening arcs; Hum's tally light; Wisp's sparkles; Chirp's notes and thought dots.
grainAppearancenumber0–1 (UI 0–0.2)0Film grain inside the character's bodies (FX Spec 1.13): a fine, still noise of light and dark specks. 0 = none; a recipe's grain sets its default. Left out at 20 px; an FX Spec resolved under low power turns it off.
hueAppearancenumber0–360 deg12Turns the bird's coral body in degrees; the crest, wings, beak and eyes stay.
inkAppearancenumber0–1 fraction1How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
mouthAppearanceboolean1Draw the mouth (Buzzy's voice line, Hum's lit grille, Wisp's opening oval, Chirp's beak); off keeps it at rest.
shadingAppearanceboolean1Whether a recipe's soft layers draw: shade masses (airbrushed shadows, highlights, a blush) and rim light (FX Spec 1.13). An FX Spec resolved under low power turns them off.
lookMotionnumber0–21How much the eyes glance around on their own while idle (0 = always at the viewer).
seedMotioninteger0–∞ (UI 0–20)0Changes when it blinks and glances, so two characters side by side don't move in sync.
turnMotionnumber0–10.71How far the head turns like a solid (0 = flat, 1 = ±35°; the default is ±25°).
Advanced props (24)
PropCategoryTypeRangeDefaultDescription
eyeAsymAppearancenumber0–0.60Makes the left eye shorter (a quizzical look).
eyeHAppearancenumber8–4026Eye height, in design units.
eyeRAppearancenumber0–208Eye corner radius, in design units.
eyeSmileAppearancenumber0–10The happy arc cut from below the eyes.
eyeTiltAppearancenumber-1–10Slope of the lid: positive lowers the outer corners (pensive).
eyeWAppearancenumber8–3620Eye width, in the character's 200-unit design box.
lidAppearancenumber0–0.90How far the top lid comes down (a squint), 0 to 0.9 of the eye.
mouthDotsAppearancenumber0–10Above 0.5 the mouth is three thinking dots.
mouthTalkAppearancenumber0–10Above 0.5 the mouth is the voice line (speaking).
gazeXMotionnumber-14–140Where the eyes look, sideways, in design units (negative = left).
gazeYMotionnumber-12–120Where the eyes look, up and down, in design units (negative = up).
leanMotionnumber-8–80Leans the whole character toward the viewer (design units).
tiltMotionnumber-0.3–0.30Tilts the whole character (radians; positive = clockwise).
turnBlinkMotionnumber0–10Blink once as this state starts (the end of the user's turn).
turnNodMotionnumber0–10How much the head nods with the voice level.
turnPitchMotionnumber-1–10Where this state faces, up or down (-1..1 of the turn; positive = up).
turnWanderMotionnumber0–10How much the head looks from corner to corner on its own, holding each look.
turnYawMotionnumber-1–10Where this state faces, sideways (-1..1 of the turn; negative = the viewer's left).
bounceGainEnergynumber0–80How far the voice lifts the body while speaking (design units).
breathEnergynumber0–20Idle breathing bob.
earGainEnergynumber0–10How strongly the listening sound arcs show with the user's level.
flutterGainEnergynumber0–0.60How much the wings flutter with the voice while speaking (radians).
mouthGainEnergynumber0–20How far the voice line swings with the level.
squashGainEnergynumber0–0.120How much the voice squashes the body while speaking.

Cuppa

pattern: "cuppa" · mode cuppa · speed 1× · sizes 20, 32, 64

PropCategoryTypeRangeDefaultDescription
accessoriesAppearanceboolean1The character's extras: Buzzy's crest, ear chevrons and listening arcs; Hum's tally light; Wisp's sparkles; Chirp's notes and thought dots.
grainAppearancenumber0–1 (UI 0–0.2)0Film grain inside the character's bodies (FX Spec 1.13): a fine, still noise of light and dark specks. 0 = none; a recipe's grain sets its default. Left out at 20 px; an FX Spec resolved under low power turns it off.
hueAppearancenumber0–360 deg12Turns the mug's colour in degrees; the coffee, the sleeve and the heart stay.
inkAppearancenumber0–1 fraction1How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
mouthAppearanceboolean1Draw the mouth (Buzzy's voice line, Hum's lit grille, Wisp's opening oval, Chirp's beak); off keeps it at rest.
shadingAppearanceboolean1Whether a recipe's soft layers draw: shade masses (airbrushed shadows, highlights, a blush) and rim light (FX Spec 1.13). An FX Spec resolved under low power turns them off.
lookMotionnumber0–21How much the eyes glance around on their own while idle (0 = always at the viewer).
seedMotioninteger0–∞ (UI 0–20)0Changes when it blinks and glances, so two characters side by side don't move in sync.
turnMotionnumber0–10.71How far the head turns like a solid (0 = flat, 1 = ±35°; the default is ±25°).
Advanced props (23)
PropCategoryTypeRangeDefaultDescription
eyeAsymAppearancenumber0–0.60Makes the left eye shorter (a quizzical look).
eyeHAppearancenumber8–4026Eye height, in design units.
eyeRAppearancenumber0–208Eye corner radius, in design units.
eyeSmileAppearancenumber0–10The happy arc cut from below the eyes.
eyeTiltAppearancenumber-1–10Slope of the lid: positive lowers the outer corners (pensive).
eyeWAppearancenumber8–3620Eye width, in the character's 200-unit design box.
lidAppearancenumber0–0.90How far the top lid comes down (a squint), 0 to 0.9 of the eye.
mouthDotsAppearancenumber0–10Above 0.5 the mouth is three thinking dots.
mouthTalkAppearancenumber0–10Above 0.5 the mouth is the voice line (speaking).
gazeXMotionnumber-14–140Where the eyes look, sideways, in design units (negative = left).
gazeYMotionnumber-12–120Where the eyes look, up and down, in design units (negative = up).
leanMotionnumber-8–80Leans the whole character toward the viewer (design units).
tiltMotionnumber-0.3–0.30Tilts the whole character (radians; positive = clockwise).
turnBlinkMotionnumber0–10Blink once as this state starts (the end of the user's turn).
turnNodMotionnumber0–10How much the head nods with the voice level.
turnPitchMotionnumber-1–10Where this state faces, up or down (-1..1 of the turn; positive = up).
turnWanderMotionnumber0–10How much the head looks from corner to corner on its own, holding each look.
turnYawMotionnumber-1–10Where this state faces, sideways (-1..1 of the turn; negative = the viewer's left).
bounceGainEnergynumber0–80How far the voice lifts the body while speaking (design units).
breathEnergynumber0–20Idle breathing bob.
earGainEnergynumber0–10How strongly the listening sound arcs show with the user's level.
mouthGainEnergynumber0–20How far the voice line swings with the level.
squashGainEnergynumber0–0.120How much the voice squashes the body while speaking.

Bean

pattern: "bean" · mode bean · speed 1× · sizes 20, 32, 64

PropCategoryTypeRangeDefaultDescription
accessoriesAppearanceboolean1The character's extras: Buzzy's crest, ear chevrons and listening arcs; Hum's tally light; Wisp's sparkles; Chirp's notes and thought dots.
grainAppearancenumber0–1 (UI 0–0.2)0Film grain inside the character's bodies (FX Spec 1.13): a fine, still noise of light and dark specks. 0 = none; a recipe's grain sets its default. Left out at 20 px; an FX Spec resolved under low power turns it off.
hueAppearancenumber0–360 deg24Turns the bean's roast in degrees; the cheeks and the aroma stay.
inkAppearancenumber0–1 fraction1How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
mouthAppearanceboolean1Draw the mouth (Buzzy's voice line, Hum's lit grille, Wisp's opening oval, Chirp's beak); off keeps it at rest.
shadingAppearanceboolean1Whether a recipe's soft layers draw: shade masses (airbrushed shadows, highlights, a blush) and rim light (FX Spec 1.13). An FX Spec resolved under low power turns them off.
lookMotionnumber0–21How much the eyes glance around on their own while idle (0 = always at the viewer).
seedMotioninteger0–∞ (UI 0–20)0Changes when it blinks and glances, so two characters side by side don't move in sync.
turnMotionnumber0–10.71How far the head turns like a solid (0 = flat, 1 = ±35°; the default is ±25°).
Advanced props (23)
PropCategoryTypeRangeDefaultDescription
eyeAsymAppearancenumber0–0.60Makes the left eye shorter (a quizzical look).
eyeHAppearancenumber8–4026Eye height, in design units.
eyeRAppearancenumber0–208Eye corner radius, in design units.
eyeSmileAppearancenumber0–10The happy arc cut from below the eyes.
eyeTiltAppearancenumber-1–10Slope of the lid: positive lowers the outer corners (pensive).
eyeWAppearancenumber8–3620Eye width, in the character's 200-unit design box.
lidAppearancenumber0–0.90How far the top lid comes down (a squint), 0 to 0.9 of the eye.
mouthDotsAppearancenumber0–10Above 0.5 the mouth is three thinking dots.
mouthTalkAppearancenumber0–10Above 0.5 the mouth is the voice line (speaking).
gazeXMotionnumber-14–140Where the eyes look, sideways, in design units (negative = left).
gazeYMotionnumber-12–120Where the eyes look, up and down, in design units (negative = up).
leanMotionnumber-8–80Leans the whole character toward the viewer (design units).
tiltMotionnumber-0.3–0.30Tilts the whole character (radians; positive = clockwise).
turnBlinkMotionnumber0–10Blink once as this state starts (the end of the user's turn).
turnNodMotionnumber0–10How much the head nods with the voice level.
turnPitchMotionnumber-1–10Where this state faces, up or down (-1..1 of the turn; positive = up).
turnWanderMotionnumber0–10How much the head looks from corner to corner on its own, holding each look.
turnYawMotionnumber-1–10Where this state faces, sideways (-1..1 of the turn; negative = the viewer's left).
bounceGainEnergynumber0–80How far the voice lifts the body while speaking (design units).
breathEnergynumber0–20Idle breathing bob.
earGainEnergynumber0–10How strongly the listening sound arcs show with the user's level.
mouthGainEnergynumber0–20How far the voice line swings with the level.
squashGainEnergynumber0–0.120How much the voice squashes the body while speaking.

Beep

pattern: "beep" · mode beep · speed 1× · sizes 20, 32, 64

PropCategoryTypeRangeDefaultDescription
accessoriesAppearanceboolean1The character's extras: Buzzy's crest, ear chevrons and listening arcs; Hum's tally light; Wisp's sparkles; Chirp's notes and thought dots.
armsAppearanceboolean1The character's arms (Beep): a hand to the ear while listening, to the chin while thinking, beats while speaking. Off: no arms.
grainAppearancenumber0–1 (UI 0–0.2)0Film grain inside the character's bodies (FX Spec 1.13): a fine, still noise of light and dark specks. 0 = none; a recipe's grain sets its default. Left out at 20 px; an FX Spec resolved under low power turns it off.
hueAppearancenumber0–360 deg200Turns the robot's steel in degrees; the screen, the orange accents and the antenna light stay.
inkAppearancenumber0–1 fraction1How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
mouthAppearanceboolean1Draw the mouth (Buzzy's voice line, Hum's lit grille, Wisp's opening oval, Chirp's beak); off keeps it at rest.
shadingAppearanceboolean1Whether a recipe's soft layers draw: shade masses (airbrushed shadows, highlights, a blush) and rim light (FX Spec 1.13). An FX Spec resolved under low power turns them off.
lookMotionnumber0–21How much the eyes glance around on their own while idle (0 = always at the viewer).
seedMotioninteger0–∞ (UI 0–20)0Changes when it blinks and glances, so two characters side by side don't move in sync.
turnMotionnumber0–10.71How far the head turns like a solid (0 = flat, 1 = ±35°; the default is ±25°).
Advanced props (23)
PropCategoryTypeRangeDefaultDescription
eyeAsymAppearancenumber0–0.60Makes the left eye shorter (a quizzical look).
eyeHAppearancenumber8–4026Eye height, in design units.
eyeRAppearancenumber0–208Eye corner radius, in design units.
eyeSmileAppearancenumber0–10The happy arc cut from below the eyes.
eyeTiltAppearancenumber-1–10Slope of the lid: positive lowers the outer corners (pensive).
eyeWAppearancenumber8–3620Eye width, in the character's 200-unit design box.
lidAppearancenumber0–0.90How far the top lid comes down (a squint), 0 to 0.9 of the eye.
mouthDotsAppearancenumber0–10Above 0.5 the mouth is three thinking dots.
mouthTalkAppearancenumber0–10Above 0.5 the mouth is the voice line (speaking).
gazeXMotionnumber-14–140Where the eyes look, sideways, in design units (negative = left).
gazeYMotionnumber-12–120Where the eyes look, up and down, in design units (negative = up).
leanMotionnumber-8–80Leans the whole character toward the viewer (design units).
tiltMotionnumber-0.3–0.30Tilts the whole character (radians; positive = clockwise).
turnBlinkMotionnumber0–10Blink once as this state starts (the end of the user's turn).
turnNodMotionnumber0–10How much the head nods with the voice level.
turnPitchMotionnumber-1–10Where this state faces, up or down (-1..1 of the turn; positive = up).
turnWanderMotionnumber0–10How much the head looks from corner to corner on its own, holding each look.
turnYawMotionnumber-1–10Where this state faces, sideways (-1..1 of the turn; negative = the viewer's left).
bounceGainEnergynumber0–80How far the voice lifts the body while speaking (design units).
breathEnergynumber0–20Idle breathing bob.
earGainEnergynumber0–10How strongly the listening sound arcs show with the user's level.
mouthGainEnergynumber0–20How far the voice line swings with the level.
squashGainEnergynumber0–0.120How much the voice squashes the body while speaking.

On this page