Hermes Scope Face

Display prototype · BrainCraft 1.54″ TFT
240 × 240 IPSState Idle
Face
Shape
Render

Wireframe head that turns with the servos.

Agent state
Keys 1–5 pick a state, Space toggles the sequence, F cycles shape, V switches render.
Phosphor
P31: bright green, the usual scope tube.
Head position
Display
Refresh
Beam 0 pts/frameRender 0 fpsDecay 0.00/frame
Where each state comes from on the robot
Speak
The mouth is the waveform going to the robot's own speaker, read from the PipeWire output on the Pi. Here it is synthesized speech.
Listen
The microphone signal on the Pi, drawn dimmer. Here it is a second synthetic voice at a higher pitch.
Look
Triggered inside look() on the Pi: a shutter flash and a squint before the photo.
Think
Needs Hermes to say so: a turn-started or tool event sent to a small listener on the Pi. The eyes become rotating 3:2 Lissajous figures.
Shapes
Flat is the simplest to read across a room. Head and Low-poly trade some of that for showing direction: Head is a smooth contoured mesh, Low-poly a coarse faceted one. Phosphor render draws them as a scope would, with afterglow and beam-speed brightness; Vector render draws clean, even lines with no trails.
Head
In the head shapes the whole wireframe turns with the pan and tilt servos, so the face looks where the camera looks; in flat mode only the eyes shift. The head also cocks while listening and glances up while thinking.

The renderer is the same math the Pi would run: a 240 × 240 brightness buffer that decays each frame, a beam path traced at constant speed so slow parts burn brighter, and a small blur for glow. It ports to NumPy and Pillow almost line for line.