VAL-EYE
12/17/2025
A physical hardware interface for the VAL-9000 AI assistant, built on an ESP32-S3 driving a 240x240 circular GC9A01 display over SPI via LovyanGFX.
Real-Time 3D Renderer
The display renders a fully software-rasterized 3D scene in real time on the ESP32-S3 — no GPU, no hardware acceleration. The scene consists of a shaded sphere, a counter-spinning octahedron and tetrahedron, and a rotating tick ring, all composited via a sprite buffer and pushed to the display each frame.
Key rendering techniques implemented from scratch in C++:
- Painter's algorithm depth sorting for correct face draw order
- Per-face Lambertian shading with a directional light vector
- Alpha-blended triangle rasterization with manual RGB565 pixel blending
- Wobble and counterspin — octahedron and tetrahedron rotate in opposite directions with independent phase-offset wobble on pitch and roll axes
Audio Reactivity
The octahedron splits along its axes in proportion to the current audio amplitude, driven live from the VAL-9000 assistant's audio stream. Rotation halts and the scene snaps to a canonical front-facing orientation when VAL-9000 is speaking, resuming smoothly when audio stops.
Connectivity
The device connects to WiFi, streams audio amplitude from VAL-9000, and can trigger TTS playback via a hardware button. Network state drives the scene mode — a connecting animation plays until WiFi is established.
← Portfolio