RiveMascot / ai companions
Give your AI interface a clear expression.
A companion should communicate what the product is doing. Use distinct expressions for listening, processing, speaking and recovering, with transitions that can handle interruptions.
A conversation is not a loop
Design the moments between responses.
| State | Application signal | Animation requirement |
|---|---|---|
| Listening | Microphone capture has started | Attentive pose; optional level-driven detail from your audio system |
| Thinking | A request is processing | Calm waiting behaviour, timeout and cancellation paths |
| Speaking | Audio playback is active | Speech motion tied to playback, with explicit stop handling |
| Interrupted | User cancels or starts a new turn | A fast transition that releases the old speaking state |
| Recovery | Connection or response failure | Supportive expression beside a readable error and next step |
Speech & expression
Choose the level
of speech detail.
A generic speaking loop, amplitude-driven mouth and viseme system are different scopes. Visemes need mouth shapes plus timing information from your speech pipeline. Audio playback alone does not provide phoneme timing.
Facial expressions can combine brows, eyes, mouth and head posture. Define their ranges so excitement, uncertainty or attention remain consistent.
Screen-based robot faces
Confirm display resolution, orientation, renderer, device resources and expected frame rate. Small screens benefit from bold shapes and restrained detail.
Hardware, firmware, conversational models and speech services remain your product’s responsibility. Runtime feasibility needs a device-specific review.
A useful control contract
Plan interruption from the beginning.
Specify which state wins when signals conflict. If speaking is active and a new listening event arrives, should audio stop before the character changes? Define that sequence with your application developer.
For gaze, document the coordinate range, centre point, clamping and what happens when tracking is unavailable. Provide a comfortable resting direction rather than requiring continuous pointer input.
Keep emotional animation separate from statements about the AI’s abilities. A friendly expression should never obscure uncertainty, privacy choices or an actual product error.
Your product has a purpose.
Let’s give it a personality.
Bring an idea, a character or a product moment.