{"type":"function","function":{"name":"set_expression","description":"Set the facial expression of the digital human avatar. Controls blend shapes for eyes, eyebrows, and mouth to display the target emotion. The expression persists until changed by another call or overridden by a speak animation.","parameters":{"type":"object","properties":{"emotion":{"type":"string","description":"The target facial expression. Must be one of: 'happy' (smile, raised cheeks), 'sad' (downturned mouth, drooping eyebrows), 'surprised' (wide eyes, raised eyebrows, open mouth), 'angry' (furrowed brows, tight lips), 'neutral' (relaxed default face), 'thinking' (slightly furrowed brow, eyes looking up/away)."},"intensity":{"type":"number","description":"Expression strength from 0.0 (barely visible) to 1.0 (maximum exaggeration). Recommended: 0.3-0.5 for natural conversation, 0.6-0.8 for reactive moments, 0.9-1.0 for comedic or dramatic emphasis."}},"required":["emotion","intensity"]}}} {"type":"function","function":{"name":"speak","description":"Make the digital human speak the given text with lip-sync animation. The TTS engine converts text to audio while the avatar performs real-time viseme-based lip synchronization. The tone affects both voice prosody and accompanying facial micro-expressions.","parameters":{"type":"object","properties":{"text":{"type":"string","description":"The speech content for the digital human to say aloud. Should be natural conversational language appropriate for a live stream. Keep concise (under 50 characters preferred) for real-time responsiveness. May include casual expressions or audience interaction phrases."},"tone":{"type":"string","description":"Vocal tone and emotional coloring of delivery. Must be one of: 'cheerful' (upbeat, warm, higher pitch, for greetings), 'calm' (steady, soothing, moderate pace, for explanations), 'serious' (lower pitch, measured pace, for announcements), 'excited' (high energy, faster pace, for hype moments)."}},"required":["text","tone"]}}} {"type":"function","function":{"name":"gesture","description":"Trigger a pre-defined body gesture animation on the digital human. The gesture plays once and blends back to idle pose. Can be combined with speak or set_expression for more natural multi-channel communication.","parameters":{"type":"object","properties":{"type":{"type":"string","description":"The gesture animation to play. Must be one of: 'wave' (friendly hand wave, for greetings), 'nod' (head nod, for agreement), 'shake_head' (for disagreement), 'bow' (respectful bow, for gratitude), 'point' (index finger forward, to direct attention), 'thumbs_up' (approval gesture), 'clap' (both hands clapping, for celebration)."}},"required":["type"]}}} {"type":"function","function":{"name":"look_at","description":"Direct the digital human's eye gaze and subtle head orientation toward a target. Creates natural eye contact or directional attention. The gaze shift is smoothly interpolated over ~200ms for realistic movement.","parameters":{"type":"object","properties":{"target":{"type":"string","description":"Gaze target direction. Must be one of: 'camera' (look at audience through lens, creates eye contact), 'left' (glance left, e.g. toward chat panel), 'right' (glance right, e.g. toward game screen), 'up' (look upward, conveys thinking), 'down' (look down, conveys reading or shyness)."}},"required":["target"]}}} {"type":"function","function":{"name":"idle","description":"Return the digital human to its default idle animation loop. Resets expression to neutral, stops ongoing gestures, and returns gaze forward with natural micro-movements (breathing, blinks, slight sway). Use during pauses or transitions between active segments.","parameters":{"type":"object","properties":{}}}}