← All work

Concept & Research

Chromatic Confession

Interaction Design · Electronics · AI Integration

RoleInteraction Design, Electronics, AI Integration
TimelineFeb 2026
TeamJennifer Lee, Nicholas Vos
ContextSUPSI MAInD 2026
Confess privately. Broadcast only emotional charge.

Overview

Type a secret. Broadcast only the feeling.

Confess privately. Broadcast only emotional charge.

Type a secret on the keyboard. Press Enter. A language model reads the emotional weight (not the words) and translates it into a live light animation on a 32×32 LED matrix. The room sees the feeling. Nobody sees the confession.

The Object

A confession machine

Chromatic Confession, front view
Chromatic Confession, 2026. 32×32 RGB LED matrix, USB keyboard, ESP32, ChatGPT API

How It Works

Type, submit, witness

The interaction is three steps: type, submit, witness.

A physical USB keyboard is the only input. When the user presses Enter, the message travels via UART to a second microcontroller, which calls the ChatGPT API. The API returns a strict JSON of visual parameters: not a description and not text, but a data object encoding emotional intensity across dimensions like glitch amount, sparkle density, deformation, sharpness, HDR contrast, and ripple speed. The LED matrix renders these as an expanding, donut-shaped ring animation in real time.

The room sees the animation. Nobody sees the message.

Privacy by design

The system deliberately withholds the typed message from everyone but the confessor. Only the emotional weight, encoded as visual parameters, is broadcast. The room sees feeling, not content.

Back of the machine showing electronics
Internal electronics: Arduino Nano ESP32, ESP32, NeoPixel matrix
System working mechanism diagram
End-to-end system: from typed confession to LED animation
Emotion to visual parameter mapping
Emotion mapping: LLM output → colour temperature, intensity, rhythm parameters

The Output

1024 pixels of emotional abstraction

The brief for this course was to embrace the limitations of a low-resolution display as design opportunities, not obstacles. The 32×32 grid (1024 pixels total) turns out to be exactly the right resolution for emotional abstraction. High enough to convey motion and texture. Low enough that nothing literal can be represented.

Each confession produces a unique animation. The same words typed twice would produce the same JSON parameters, but the timing, the room, and the person watching make it singular every time.

Design insight

32×32 (1024 pixels) is exactly the right resolution for emotional abstraction: high enough to convey motion and texture, low enough that nothing literal can be represented. The constraint enforces privacy architecturally.

Live output: a confession translated into light

Experimentation

Iteration in progress
Testing animation parameters
Abstraction calibration: finding the threshold between legible and unreadable

Technical Overview

Components

System components

  • Arduino Nano ESP32 (ESP32-S3): keyboard host that receives USB input and transmits via UART
  • ESP32 (visual controller): calls ChatGPT API, renders animation to matrix
  • 32×32 RGB LED matrix (HUB75, P6): visual output, 1024 pixels, 6mm pitch
  • USB keyboard: physical text input
  • ChatGPT API: emotion-to-JSON translation layer
  • Laser-cut enclosure: chassis for component placement and cable routing

Reflection

The constraint was the point

The constraint was the point. A low-resolution LED matrix can't display text, faces, or recognisable forms, which makes it the right medium for a project about privacy. The output is abstract by necessity, not by artistic choice, and that constraint is what makes the concept hold.

The hardest technical problem was powering the USB keyboard from a board that doesn't source 5V VBUS via VIN. This was solved with a controlled VBUS injection that powers the keyboard while keeping data lines intact. A small fix with a lot of debugging hours behind it.

Takeaways

  • Low resolution as a deliberate constraint: the matrix can't represent text or faces, which makes it the right medium for a privacy-first project. The limitation is the concept.
  • The hardest technical challenge (USB power injection for keyboard VBUS) required the most debugging but had the cleanest solution: a single controlled injection that powered the keyboard while keeping data lines intact.

TeamJennifer Lee, Nicholas Vos
HardwareArduino Nano ESP32, ESP32, 32×32 RGB LED matrix (HUB75, P6), USB keyboard, laser-cut enclosure
AIChatGPT API (GPT-4o)
CourseID151.01 Programming Interactive Objects, SUPSI MAInD 2026

Available from July 2026.

Looking for a product design internship. Small teams, complex problems.

JENNIFER LEE