The product for someone who wants to add ambiance to their room… with a touch of Studio Ghibli.

Turn on this cylindrical lamp to be immersed in the calming, pulsing tones of blue and green, with company from Studio Ghibli’s beloved Totoro. Perfect as room decor or as a child’s night light.


I was inspired by my interest in candles and lighting, as well as my recent marathon of Studio Ghibli films. I wanted to incorporate calming, comforting companions from the films. Some initial ideas I had for the content on the light:

Screen Shot 2018-12-12 at 1.03.38 PM.png


Screen Shot 2018-12-12 at 1.03.26 PM.png


Screen Shot 2018-12-12 at 1.03.21 PM.png



Draft 1

This cube would utilize different images from multiple films in its different faces.


At this stage I was envisioning more of a lantern set up, inspired by the original cube shape. As a result, I started coding up a draft on my Arduino with just yellow light with a dimming effect like a candle.


This was too simple. I wanted to incorporate shifting light colors instead, so I programmed a solution using RGB LED. The coding for the dimming had to change due to the nature of the RGB LED, which actually worked for the better- I had control over each shade of color. The concept of the container also evolved:


The container was a frosted glass cylinder- frosted with white wax for a creamy yet see-through finish that I hadn’t been able to achieve any other way.



I initially considered a paper cutout out to wrap the cylinder, but ended up going with a sticker for extra security. I used a decal meant for a laptop:

Screen Shot 2018-12-12 at 4.07.27 PM.png

Vinyl Decal

Courtesy of DecalPro Designs


Final code (in Arduino editor):

#define GREEN 10

#define BLUE 11

#define RED 12

#define delayTime 20

void setup() {


pinMode(BLUE, OUTPUT);

pinMode(RED, OUTPUT);

digitalWrite(GREEN, HIGH);

digitalWrite(BLUE, HIGH);

digitalWrite(RED, HIGH);


int redVal;

int blueVal;

int greenVal;

void loop() {

int redVal = 255;

int blueVal = 0;

int greenVal = 0;

for( int i = 0 ; i < 255 ; i += 1 ){

greenVal += 1;

redVal -= 1;

analogWrite( GREEN, 255 - greenVal );

delay( delayTime );


redVal = 0;

blueVal = 0;

greenVal = 255;

for( int i = 0 ; i < 255 ; i += 1 ){

blueVal += 1;

greenVal -= 1;

analogWrite( BLUE, 255 - blueVal );

analogWrite( GREEN, 255 - greenVal );

delay( delayTime );


redVal = 0;

blueVal = 255;

greenVal = 0;

for( int i = 0 ; i < 255 ; i += 1 ){

redVal += 1;

blueVal -= 1;

analogWrite( BLUE, 255 - blueVal );

delay( delayTime );




I initially tested using red, blue and green, and also just red, blue and purple as additional combinations. My users actually did not prefer the red light (despite research studies showing that red light has proven to have health benefits) and viewed the blue and green combination as the most soothing. A user complaint was that the wires were visible behind the surface, which was displeasing. They suggested blending this into the scenery by adding vines or other greenery.


The next step with this project is incorporating a light sensor that recognizes when the lights go off; I would like the lamp to be automatically lit once the room light has dimmed to a certain capacity.