NightPal
←Back to play

NightPal

A hand-shaped night light that responds to high-fives and warmth

NightPal is a night light made from an Adafruit Circuit Playground Express (CPX) sealed inside an inflated rubber glove. Give it a high-five and it switches on or off. Hold it, and the warmth of your hands slowly brightens it; let go, and it fades out.

I wanted it to feel like a nighttime companion rather than a tool: a light that “wakes up” when you reach for it.

Role

Solo: concept, fabrication & code

Tools

Circuit Playground Express, MakeCode, a rubber glove, ChatGPT

Context

Course project, UW MHCI+D

Year

2025

NightPal glowing pale yellow in a dark room, held up beside a real hand

Left: the full demo in 27 seconds (unmute for the sound effects). Right: NightPal lit up beside a real hand.

Idea

A rubber glove turned the light into a hand

I wanted a night light with physical and emotional interaction, where touch and warmth create a sense of presence.

The hand came from searching the studio for materials. Rubber gloves were easy to find and semi-transparent, so light glows softly through them, and a hand naturally invites a touch, a hold or a high-five.

A real hand raised next to the glowing rubber-glove night light, palm facing forward

How it works

High-five it, hold it, let it go

With the CPX sealed inside the glove, every interaction runs on the board’s built-in sensors, with no external components.

To get there, I experimented with the LEDs and gesture input, tried buttons, shaking and acceleration as triggers, and tuned the thresholds by testing them by hand again and again.

A hand coming down to high-five the glowing glove

Motion sensor

High-five

A high-five switches the light on or off, each with its own sound effect.

Fingers holding the glove as it glows warm orange-white

Temperature sensor

Hold

Your hands warm the board, and the light gradually brightens into a warm glow.

The glove dimming after being let go, its glow fading

Temperature sensor

Let go

As the glove cools down, the light slowly fades back out.

Under the hood

The MakeCode editor in JavaScript view: the shake gesture handler plays a sound and turns the light on, or plays a rainbow animation and turns it off

On the board (MakeCode): a shake gesture reads as the high-five, and a loop watches the temperature to fade the light up and down.

Challenges

A light that wouldn’t turn on, and a glove that wouldn’t stay full

Two controls, one brightness

The high-five and the temperature automation both set the brightness, and they clashed: the light played its sound but stayed dark. With the board sealed in the glove, I couldn’t reach its buttons or ports to debug. I asked ChatGPT, and with little more context than “CPX and MakeCode” it found the cause: the brightness started at 0, and the high-five never raised it again.

MakeCode blocks: an on-shake handler toggling the light, an on-start block resetting brightness to 0, and a forever loop raising or lowering brightness based on temperature
ChatGPT’s reply in Mandarin explaining that brightness was set to 0 globally and never raised in the high-five handler

Left: the MakeCode blocks, with gesture and temperature logic side by side. Right: ChatGPT’s diagnosis (in Mandarin).

Keeping the air in

The glove had to stay inflated around the board. My first seals, a zip tie and blowing it up by mouth, leaked air and slowed every iteration. Inflating through a straw and tying it off with cotton string held the air far better and made the glove much easier to keep prototyping with.

A half-deflated glove closed with a zip tie, resting on a hand

Before: zip tie, leaked

The glove inflated through a straw and tied off with cotton string, the board visible inside

After: straw + cotton string

The finished NightPal on a desk: a fully inflated glove tied with cotton string, its cable running to a power bank

Final: sealed and holding

Learnings

Making it physical takes longer than imagining it

01

Physical prototypes take more time than you expect

Fabrication and feasibility mattered as much as the concept. Many design decisions only showed their limits once I was making them by hand, so repeated testing and iteration became the real work. Next time I’d set aside more time for experiments and check feasibility earlier.

02

AI-assisted debugging has come a long way

With minimal context, ChatGPT diagnosed the bug accurately and even explained it in MakeCode’s block-based terms. That’s a big change from debugging with ChatGPT 3.5 in my undergraduate programming classes.

UMI CHEN

Product Designer

© 2026 UMI CHEN