At rest
The base state: he floats, blinks, flicks his tail.
setState idle
A small yellow pixel-art fish lives in the bottom-right corner of the screen, out of the aquarium that serves as the wallpaper. Like his namesake in the Hitchhiker’s Guide, he understands every language spoken to him — and his body tells, in 72 × 56 pixels, everything Jarvis is doing or feeling.
Every spoken exchange goes through these states. Drive it: the fish plays each stage, speech bubble included.
The state machine, drivable →
Eight states, nine events, and only 38 of the 72 pairs legal — the real table, the one the suite diffs against its fixture.
These five states are driven by the state machine in bin/jarvis — the body follows the voice.
The base state: he floats, blinks, flicks his tail.
setState idle
A press, a click on him, or “Hey Jarvis”: gills up, sound waves.
setState listening
Pupil up, dots rising — transcription, then the brain at work.
setState thinking
The mouth follows the voice, bubbles escape, sentence by sentence.
setState speaking
At night (23:00–07:00), or while he consolidates his memory. The zZz rise.
setState sleeping
Punctual emotions (six seconds) over the resting body — the pipeline triggers them, and so can you.
A notification arrives: a glance, a question mark.
emote curious
Mission accomplished — chest out, golden sparks.
emote proud
The brain is back, a success: confetti.
emote celebrate
A failure noted, an unreachable brain: brow down, a bead of sweat.
emote worried
At rest, he wears the state of the machine without being asked.
Headphones when the system DND is on. He hears nothing.
(system state)
Battery under 20 % and discharging: heavy lids, he sinks a little.
(system state)