December 20: Final Project

Final Project Documentation


When I was brainstorming ideas for our space theme, I thought about aurora borealis (also known as northern lights) which is a natural light display in the sky found in Arctic and Antarctic regions. It has always been a dream of mine to see one. I was inspired by this acryl + neopixels crown project that James showed on his neopixels workshop, and it made me think about how light from the colourful LEDs could disperse through transparent acrylic parts that would copy the wavy shape of aurora.

My project is an art installation imitating a beautiful nature phenomenon that also engages people to interact with it by controlling certain values to play around with the overall look of the installation. 

(Note: since I couldn’t attend the IM show, videos included in the post were filmed while still working on the project and do not show its final look)


It was a true joy to work on it and combine what I’ve learned in this class to design and create something that would not only look good, but also involves user interaction.

The final design looks quite simple and minimalistic. Its affordances are clear, as the control box has only two knobs on top that encourage people to twist them and then see what happens.


  1. Creating the colour patterns;
  2. Gluing parts and calculating correct measurements (even including the weight);
  3. Attaching potentiometers with a box

Materials & Construction: Physical, Electronic and Mechanical Components.

The physical installation consists of the “Aurora” and box with with potentiometers hiding the Arduino. Components:

  • 1 Adafruit neopixel strip (20 pixels);
  • 1 transparent acrylic sheet (cut in 20 pieces);
  • acrylic base;
  • 1 Arduino;
  • acrylic box;
  • external power supply;
  • 2 potentiometers (10k ohm) and knobs.

PART 1: Aurora Borealis

I have used the laser cutter to make 20 thin rectangles of different length (varying from 14 cm to 31 cm long). I chose transparent acrylic (3-6 mm thick)  to create the light dispersion effect that I was initially aiming for. I was happy with the range of length they had. The difference made the colour sequence look more dynamic, and I don’t think I had to make the rectangles even longer. First, taller parts are trickier to attach to the base. Second, since the entire look of my project depends on the overall lightning in the display room, taller acrylic pieces do not light up as much when the room is bright.However, in 006, it was pretty dark, so the pieces fully lit up and I was satisfied with the way my project looked.

My Aurora is standing on white acrylic base that has a “pit” line in the middle to create space for the neopixel string, which has 20 pixels, between the base and the rectangles attached above with super glue. This construction gave some mobility for the string to be taken out whenever I want, while I was playing around with code and would carry the string around with me. I took off paper. Eventually,  on the back of the neopixel string to stick it to the base to avoid it being misplaced by someone during the show.

Knowing what I know now, I would probably do the construction in a slightly different way. I saw Tayla using matte acrylic, which I think would also look cool with my project and maybe it would have recreated the northern lights effect even better. Also, I would make my acrylic pieces wider to be glued easier to the base (yet it could change the light dispersion effect just like the length does). Alternatively, I should have cut out rectangular “holes” for the strip on the rectangles themselves.

I was actually going to make the installation bigger by attaching another similar block with 10 more rectangles to have 30 rectangles and neopixels in total, but I gave up on the idea once Michael suggested to simplify our project in order to save time.

PART 2: Control Box

I have used this website to create the template for my box that would hide the Arduino, breadboard etc. and would have two potentiometer on top to control brightness and speed of my colour sequence. The box also has two holes on the sides for the USB cord and wires that connect the neopixels strip.

To be honest, I made wrong measurements for my first box, because I did not take the thickness of acrylic into account. The second box had holes too small to attach potentiometers without them moving along with the knobs. Michael suggested I should add an extra rectangular hole for a tiny “stabiliser” that those potentiometer have that prevent them from moving around. I’ve also made the round holes one 1 mm bigger. (Lesson learnt: size matters! Even 1 mm can make a huge difference.) In the end, I did not have to re-cut the entire box, only the top part.

Also, I wish we had more white acrylic left, because I had to make my box black, which was an out-of-place colour contrast with the base of Aurora. In general, I am pleased with the way it looks – a nice way to hide messy wires and so on.

What is more, my strip is using an external 5v power supply, so it’s not using a laptop, but is directly connected to the power socket.





My code has undergone hundreds of changes as I was playing around with the colour sequence. I started out with Adafruit Neopixel Library’s simple codes to understand how the strip works and tried to customise those code for the effect that I was going for. I wanted my aurora to gradually change colors, fading and fading out. Also, the challenge was to use a small colour range of mostly green and some blue, yellow etc., because aurora borealis’ colour actually depends on many factors such as latitude and altitude, but it is mostly green in general. For this reason, sample codes were not that helpful as they are too fast-bright-disco-rainbow. 

Later, May showed me this cool website  that let’s you draw the pattern you want and it generates the code for you. It was fun to play around with, but I felt like it’s wrong to not write my own code, because I wanted to use what I’ve learnt in this class. However, it took me a long time to figure out what I need to do with the code for it to look  like what I imagined it to be, until James gave me the best advice ever: start over and write the code yourself from scratch. And it worked!

The code is basically a bunch of for-loops that change colour values for certain pixels. While I was creating it, I tried to sketch out the sequence, because it’s difficult to visualize colours from numbers on the screen.
What I’d like to learn: is there a way to make the code not as long and repetitive. 



December 4: Final Project Proposal

First of all, I don’t know whether I’ll stick to this idea or not because I am starting to doubt it.

When I was brainstorming ideas for our space theme, I thought about aurora borealis (also known as northern lights) which is a natural light display in the sky found in Arctic and Antarctic regions. It has always been a dream of mine to see one. I was inspired by this acryl + neopixels crown project that James showed on his neopixels workshop, and it made me think about how light from the colorful LEDs could disperse through transparent acrylic parts that would copy the wavy shape of aurora.

So far my idea is more of an art installation, not an interactive project, that is why I am having second thoughts. If I can’t figure out how a user can control neopixels in any way, I want to do something else instead.

Parts needed:
– transparent acrylic sheets for laser cutting
– additional 5v power supply
– neopixel strip

To learn:
– figure out how to initiate communication between arduino with neopixels and processing to control colors, their sequences or brightness
– there is a certain color change sequence that I have in mind, and I haven’t managed to code it yet

Most difficult parts:
– assembling the installation
– involving processing or any other user interaction
– color coding

(A very bad schematic)

(My sketches, which have 20 pixels, but I want to do more, maybe 30 (that’s why I need an external power supply))


Homework November 27

For this week’s assignment, I’ve used Pointillism tutorial. by Daniel Shiffman. It somehow reminded me of Vincent Van Gogh’s paintings, so for my image manipulation I chose his famous “Starry Night”.

Here’s the code:

(I have some stuff commented out there that I’ve also tried to do using Shiffman’s tutorials)

The first one has the pointillize value 12, and the second one is 20.



Homework November 22

(I apologize for the late submission, I forgot that I saved it as a draft and never posted it)

Write on this blog two paragraphs about what computing means to you at this point. Is it adding something to your life? Is it helping you become a better person? What are you getting out of it, and what do others get from it? Use the word “computing” as broadly or narrowly as you wish.

I think a lot of people take modern technologies for granted and use them without ever wondering how things work and without knowing about the range of possibilities that a computer provides. I used to think that computing is pure math and, therefore, something I will never be able to comprehend. Little did I know that it actually opens up so many opportunities for creative expression.

Coding always seemed like a foreign language that is impossible for me to learn. However, this class challenges all those misconceptions I had before. Just like learning another language, computing helps one think outside of the box. It helps structure thoughts in a logical way, and your thinking process becomes an algorithm and it improves your decision making. Computer forces you to think through every step, analyze mistakes and find new creative ways to achieve whatever goal you have.


Homework November 6

For this assignment, we had to create a game in Processing and connect it to Arduino sensors.

My idea was to recreate Flappy Bird and use a pushbutton to make the bird jump. Unfortunately, I couldn’t figure out how to connect it, the communication code would keep crashing the game. I still don’t quite understand how it should work.

I got really caught up with the game itself and playing around with the design, so I didn’t have enough time left to work on the communication between Arduino and Processing. Anyway, I really appreciate Michael’s help with my problem earlier today, I’ll work more on it later.

I’ve followed KTByte “Crappy Bird” tutorial here.

I’ve used Adobe Photoshop to draw the interface, and I uploaded the templates online, so that you could actually run the code on your computer and see the game, too.

Here’s my code:


Homework November 1

Part 1. Control a servo motor connected to Arduino using your mouse in Processing.

Arduino code:

Processing code:



Part 2. Control an LED connected to Arduino using two rectangles in Processing. Click the mouse inside one rectangle to turn the LED on, and click on the other rectangle to turn it off. 

Arduino code:



Processing code:

Homework October 30: Art in Processing

For this week’s assignment we had to recreate a computer art piece in Processing.
My work was inspired by a couple of resources combined into a snowfall animation above the city skyline:

  3. (Scott Snibbe’s Falling Girl)


(Thank you, Nav) I’ve used Icecream Screen Recorder to record the animation.
You can download it here (Mac version).


Homework due October 16

Here is my self-portrait created with Processing. 


For the second part of our assignment, we had to draw 5 rectangles in different positions, using for loop in Processing.


Homework due October 9

For this week’s assignment, my whimsical project is a Fortune Wheel game. It is a very simple circuit, which consists of a servo motor that moves back and forth from 0 to 180 degrees and pauses when a pushbutton is pressed. The goal is to stop the arrow when it reaches 50 on the scale.

To make it look more interesting,  I attached an LED strip to the cardboard of the “wheel” and coded it on a separate Metro microcontroller (courtesy of the Engineering & Design Studio) that would later be run with the help of a 5v power adapter.

Here is a tutorial that I’ve used for the LED strip patterns. You’ll also need to install a library .


  • breadboard
  • 2 redboards
  • 1 servo motor
  • wires
  • LED strip
  • 5v switching adapter
  • wires
  • 1 pushbutton
  • 1 10K om resistor


I had to recreate my code because the servo wouldn’t pause instantly at a certain location, it would always go back to 0 degrees no matter when you press the button. Shout out to Aaron Sherwood for helping me out. Also, this was my first time trying to solder, and when I was soldering pushbutton’s legs, to make it stick out of the box, the first attempt was unsuccessful, and it affected the entire circuit (the arrow would twitch or stop working at all). Lessons learned: jumper wires are easily broken, soldering needs practice, LED strips need a lot of current (that’s why I’ve used a separate microcontroller), and trying out online tutorials is a lot of fun even if they seem super difficult.




In class:

I was reviewing Claire’s whimsical project, which wass a cute pink jellyfish that had a flex sensor inside one of its “legs”. While playing around with the sensor, a buzzer would play a tune, a couple of LEDs would light up inside the “head” and a black hat would twist on top of it. Speaking of affordances, I wouldn’t have guessed how to get it working and that I had to bend the “leg” because only one out of three had a sensor hidden inside. Overall, her project was really amusing and interesting to interact with.

Homework due October 2

For this week’s assignment, we had to elaborate our simple musical instruments from last week and think about design and its affordances and signifiers. I decided to make a new instrument and created a touch-free five-key piano that uses LDRs as outputs to make music and has LEDs that correspond to them.

Working on this project was a lot of fun (for me at least), especially because this time we had to think about the appearance. Figuring out how to hide all the wires, making the design easy to understand and also visually pleasant was yet another way to combine creativity and technology.

Issues (or thoughts on further development):
When you cover multiple LDRs at the same time, the sound becomes weird, because it alternates between two or more notes simultaneously.


  • 1 redboard
  • 2 breadboards
  • 5 LEDs
  • 5 resistors (330 ohm)
  • 5 LDRs
  • 5 resistors (10k ohm)
  • a bunch of wires
  • 1 buzzer
  • carton, tape, glue for the box