
What if your space could ask whether you wanted a moment?
Skills
Physical Computing
Prototyping
Interaction Design
Tools
Python
pynput
Spotify API
Smart Plugs
Disco Ball Motor
Team
Wayne Kim
Duration
4 weeks, 2026

Concept
room_tone notices when you've been still at your desk too long and offers a way out, not a reminder, not a reward, just a slow return of light, motion, and sound. What you do with it is up to you. An exploration into state machines, spaces, and permission.
Initial Thought
After my year at the Copenhagen Institute of Interaction Design, working solo in Los Angeles was a harder adjustment than I expected. The environment was completely different. At CIID, work was social. Someone would pop their head up and ask "coffee?" and you'd either go or you wouldn't. Or you'd (politely) nudge someone and show your prototype and they'd give some feedback. No guilt either way. The space had rhythm.
Initial Thought
Working alone, that rhythm disappeared. Hours would pass with no signal that anything had changed. The room was as still at 5pm as it was at 9am. I wanted the room itself to do something about that.

room_tone slowly brings a space back to life and leaves a door open, permission not prescription. You can walk through it or not. I find myself taking a moment to clean my desk, drink some water, go for a walk, or simply continue working after noticing the passing of time.
A State Machine that Asks
room_tone runs locally on my laptop and starts with a single command in Terminal. A Python script watches for keyboard and mouse activity in the background, quietly building a picture of how long I've been continuously at work.
After 90 minutes, it sends signals over my wifi network to two Shelly smart plugs: one connected to the disco ball motor, one to a dedicated light. room_tone’s playlist, playback, volume control are controlled via the Spotify Web API. Nothing is transmitted externally. The behavior is governed by a simple state machine.

Each layer arrives in sequence and leaves the same way it came.
How It Works
Why a Discoball
The disco ball carries personal history: creative coding experiments, CIID parties, working in rooms full of people. It made sense that the thing asking "coffee?" would carry some of that.
More practically, a disco ball has three natural stages: light, motion, and music. Unpacking those into separate behavioral layers gave the system its structure. Each stage could exist independently, escalate gradually, and mean something on its own. The medium shaped the interaction model as much as the interaction model shaped the medium.
Iterations
The first prototype was celebratory and checklist-based. Complete three things, get a reward: lights, music, energy. It worked technically but felt wrong almost immediately. The novelty wore off fast. Some days I didn't finish the list and felt like I'd failed my own system. Other days I did, and immediately felt like I needed to do more. It had replaced one kind of pressure with another.
The shift came from the CIID memories. The system shouldn't reward you or judge you. It should just ask, quietly, whether you want a moment. And then respect whatever you do next. That reframe meant slower escalation, no checklist, a system that exits without complaint if you ignore it.
The disco ball went from high five to studio mate. I still use it most days when WFH.