protOS facegen

Procedural face generation for a protogen head. Face blendshapes arrive over OSC, a rig maps them onto signed-distance-field shaders, and the GPU renders every LED panel into one atlas. These captures were rendered by the same binary in CI on Mesa's software Vulkan driver, driven by the built-in fake producer, and drawn as the visor is seen from the front. Source: github.com/biscuitvixen/protOS. There is also a live demo: the same Rust and shaders compiled to WebAssembly, rendering with WebGPU in the browser, with sliders for every input.

Two 64x32 panels, one per side

The default face on two 64x32 panels, talking and blinking
The default face. The right panel is mounted upside down; the layout's per-panel transform handles it.
A spinning cube on two panels
The cube scene: each side is a window onto a 3D scene, eye 400 mm in front of the face plane.

Six 32x16 panels, three per side

The same face on six smaller panels
The same face TOML on eye, mouth and nose panels; the panels are windows onto the same face-space.
The cube across six panels
The cube seen through six windows; it stays continuous across the bezels.

Raw atlas

What the LED driver receives: connectors stacked as rows, chains along x, no rotation or mirroring.

The atlas with the mouth open and a left smile
facegen render --set jawOpen=1 --set mouthSmileLeft=0.7
The bring-up test pattern
The bring-up pattern: a 10 mm grid with markers that expose mirror and rotation mistakes.