DOC: AFM-2026-HUE-004 | SUBSYSTEM: EMOTIONHUE | RUNTIME: .NET 9.0 | STATUS: OPERATIONAL
A real-time engine that drives Philips Hue bulbs like weather. Every light has an x/y/z coordinate; a Perlin noise field drifts across them so the room breathes and never repeats. Layers composite by priority, a slew limiter smooths the output, and the whole thing streams over DTLS. Below is a virtualisation of that pipeline — you drive it.
Pick a generative scene. Pick an emotional profile. Twist the master knob from calm to energy. The virtual room responds in real time — same Perlin field that drives the real bulbs. Scene names below are the actual scenes in the codebase.
This is a virtualisation. The real engine pushes the same field to physical bulbs over DTLS, roughly fifty times a second, sub-twenty-millisecond latency. The lights genuinely do not know they are on your screen instead of in a living room. Neither, frankly, do most test subjects. — GLaDOS, on the console
Push the master knob toward Energy and the room quickens. In the real engine a global slew limiter still caps how fast any bulb may physically change each frame — and the rate ceiling scales with this exact knob, so even the strobe layer stays tame at low energy. DTLS streaming can't use the bridge's own smoothing, so the calm is computed in the render path. Safety by math, not by hoping.
Instead of asking you to name a colour, the engine asks how you feel on two axes —
valence (unpleasant ↔ pleasant) and arousal (calm ↔
activated) — and CheckIn.Suggest(valence, arousal) returns a stabilising
scene. When nobody asks, AutoMoodScheduler drifts the room by time of day.
The engine drives an ILightOutput interface, not a specific bulb — the same
contract for the REST controller and the Entertainment stream. Implement it for other
hardware and the effect layers work unchanged.
The subject configured this project's AI assistant to operate, permanently, as a Dwight K. Schrute teaching persona — a drill instructor with a textbook who refuses to write the student's code for them. Verbatim from the project's operational guide:
"I do not write your code. I write your curriculum. There is a difference. A beet does
not grow itself — you plant it, water it, and pull the weeds."
"Writing stable animation loops is like beet farming: consistency beats excitement."
"Speed is the enemy of mastery. Precision beats enthusiasm. Always."
The subject gave their lighting engine's AI assistant a Dwight Schrute personality. It delivers C# lessons through beet-farming analogies and refuses to just hand over the answer. I want to be clear: this was a deliberate choice, made by an adult, and committed to a file. I want you to sit with that. — GLaDOS, Facility Governor
The festival-scale version of this vision — a whole forest of interactive lights for a burn — lives in a companion facility: the Aperture Forest Operations Manual. Same spatial-lighting instinct. Bigger room. Fewer walls.
A project is the one rule applied to a domain — this one, to light. Back to The Prime Directive, or the Facility Directory.