Cosmic Jellyfish Lamp by Isioma Iyamah

My final project explores one of my favorite topics, space. I was inspired by a recent supermoon to design a lamp that simulated lunar phases. However, as time went on, my interest in the project began to wane and I decided to look to the galaxy as a source of inspiration.

This project then took on another level of abstraction: space is like a vast sea; what creatures could then live there? Does it emit light? Could this exist as a lamp?

Somehow I ended up designing a jellyfish lamp. I am captivated by their form, and also wanted to express their beautiful yet menacing nature. The lamp spins, but in future iterations, I will want to eliminate that feature: it’s not as versatile as a non-rotating lamp! But it looks fine.

Rotation of the main body of the galaxy – spinning – controlled by a 12V Stepper Motor, which can be found many places, but I got mine from here.
Blinking lights – simulating stars / planets – 10mm, 5mm and 3mm diffused LEDs. (Mostly white; with some isolated greens, reds and blues)
Motion-activated – PIR sensor as motion detector.

Two plastic hemispheres from Canal Plastics 20 inch diameter:
Clear acrylic for LED bed (home depot, canal plastics)
Threaded metal rod
Hot glue
Wire snipper and stripper
Solder iron

I then drew up a pattern of spirals and circles in illustrator.
I sent it to a laser cutter. This object will serve as an LED bed and help to consolidate the arduino and battery. It needs to be symmetrical because the faster the motor rotates the more wobbly the system will become. But it’s unlikely to reach those speeds if you’re reasonable about your stepper motor code!

I decided to use a stepper motor to spin my jellyfish. Stepper motors, unlike servo motors, allow for smooth rotation.
How stepper motors work:
I need to figure what motor speed / rotation rate to use.
Code: Adafruit Arduino – Lesson 16. Stepper

The PIR sensor calibrates to the temperature of environment, and then detects all subsequent changes in it, within a specific range, that is. This translates to motion-detection, technically, although by definition, this isn’t exactly what occurs. PIR sensor activation allows current to flow into the rest of the circuit. In the following sketch, LEDs light up upon PIR sensor activation. This is a step to test if your PIR sensor works.

I have modified a PIR sensor code to account for the number of LEDs (and therefore output pins)

I ended up incorporating a code that made the LEDs blink at random. This was a rather elegant and simple looking code that eliminated the busywork that comes with using a code that includes delays. Including delays in the code would interfere with the movement of the motor.

​Next step was to solder the wires to the LEDs. I cut the wires to various lengths.
I next encased the wire/LED combination in thin rubber tubing. The texture mimicked that of a jellyfish’s tentacles. I also nestled hot glue between the LED positive and negative legs to keep within the organic theme. Using the typical black electrical tape would not look good with the rubber tubing!

Putting it all together:
12V Stepper Motor –> chrome plated threaded rod —> laser cut acrylic —> arduino breadboard/battery –> LEDs (rubber tubing encased)

Here are some images!
Follow this link for my instructable:

Screen Shot 2014-12-17 at 5.54.48 PM

Screen Shot 2014-12-17 at 5.55.24 PM

Screen Shot 2014-12-17 at 11.34.02 PM

Screen Shot 2014-12-17 at 11.33.53 PM

Screen Shot 2014-12-17 at 11.33.31 PM

Screen Shot 2014-12-17 at 11.33.18 PM

The starry sky _ Yang






The inspiration of this project came from a bad day, several weeks ago. I got this idea because I want to find peace for my irritability. Especially when I am deeply confused by something. For you guys, maybe you also want to clam down sometimes somehow.

I was thinking the scenario that I can find peace. Such as listening music, cooking, drawing comics and looking at the dark and beautiful starry sky.

Then I would like to use Arduino kits and some NeoPixels to realize my plan.



Step 1

I got 180 NeoPixels, 5V10A power supplier, 4700uf, 10V capacity and infinite wires before I started my work.





Step 2

I made a frame as 75 inch * 30 inch, and I fixed the black fabric which the light can go through also on the frame. Thanks for Natsuki’s help!!!!!

The reason I chose this size is I want to let the users’ view be full of this work.





Step 3

I cut off all of the NeoPixels and reconnected them. I didn’t want to buy 1000 of NeoPixels and let them overspread in the frame because I just wanted to light them up one by one randomly. A hundred spot will be enough to confused you how many NeoPixels there are behind the screen.

P.S. It’s pretty hard to do this step because there were too much spots need to solder. I did at least 700 times soldering.


Step 4

After reconnected the NeoPixels, I fix them on the back of the fabric. I used black insulate tape to fix the Neopixels to make sure they could face to the right way. However, the screen became bumpy after I put the tapes on.


Step 5

Arduino code testing. Thanks for Souvik and Oscar’s help

The code is:

#include <Adafruit_NeoPixel.h>

#define PIN 6

const int LEDS = 6;

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic ‘v1′ (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LEDS, PIN, NEO_GRB + NEO_KHZ800);

void setup()
strip.begin();; // Initialize all pixels to ‘off’
// strip.setBrightness(8);

int computerLED = LEDS -1;

void loop()

for(int i = 0; i<LEDS;i++)

int randomNumber = random(0,computerLED);
strip.setPixelColor(randomNumber, 255, 255, 255);;


for (int i = 0; i <255; i++)
strip.setPixelColor(randomNumber, i,i,i);;

for (int i = 255; i > 0; i–)
strip.setPixelColor(randomNumber, i,i,i);;

Step 6

Put all of them together, then connected with power.


Lou – Infinity Mirror Table

This tutorial will teach you how to make an Infinity Mirror Table. This table will light up objects that are placed on it, giving you a beautiful backdrop for your objects, but also force you to clean everything up before you leave the room, because the light will only goes off ones there is nothing left on the table. A one-way plexiglass mirror reflects LEDs into a two-sided plexiglass mirror, giving off the illusion of an infinite tunnel of lights.

IMG_5824 IMG_5829 IMG_5859

Tools Used
- CNC Router Machine
– Miter Saw
– Sandpaper (120 grits)
– Soldering iron & solder
– Helping Hands
– Cordless Power Drill

Materials Used
- One-way plexiglass mirror (diameter: 22”)
– Two-sided plexiglass mirror (diameter: 22”)
– PLY wood & MDF wood (diameter: 22-3/8”)
– Metal Sheet (2 sheets of 24”x36”)
– Screws (#16 x 1-1/4”)
– Wood glue

- 1 Arduino Uno
– 1 Piezo with wires:
- Adafruit NeoPixel Digital RGB LED Strip – Black 60 LED – BLACK – 2 meters:
- 1 Lithium Ion Polymer Battery – 3.7v 2500mAh:
- 1 Adafruit PowerBoost 500 Shield – Rechargeable 5V Power Shield:

Wiring the Arduino
The NeoPixel LEDs are composed of 3 different outputs: Ground, 5V and Din. The NeoPixels LEDs need to be connected to Pin 6 on the Arduino board and the Piezo has to be connected to Analog 2. You will need to download files to get your library to work on the following website (this website will also explain you how to change the colors of the LEDs and more):
The Piezo convert vibration to voltage or voltage to vibration. That means you can use this as a buzzer for making beeps, tones and alerts AND you can use it as a sensor, to detect fast movements like knocks. In simple terms, the vibration of an object being set on the table will trigger the Piezo sensor, a switch capable of detecting fast movements. Once the piezo is set off, the NeoPixel Digital RGB LED strip will turn white lights.


Building the Table
This next paragraph is will describe how I built my circular table. However, this technique can work with tables of any dimension and shape.
To create the tabletop I created a double-lipped ring. I used the CNC router to cut one 22-3/8” diameter ring, and two 22” diameter rings with 22-3/8” lips. Then I glued them together with wood glue and clamps. The lips are for the plexiglass mirrors to sit apart from each other and to create space in between for the LED strip.
The base of the table is made up of two 22-3/8” diameter wood circles and eight 2”x4”x13-3/4” PLY wood slats. The slats are sandwiched between the two wood circles, creating a solid structure to support the tabletop.



MVI_5316.00_00_10_01.Image fixe003 MVI_5316.00_00_21_00.Image fixe006 MVI_5316.00_00_30_23.Image fixe008 MVI_5316.00_00_31_20.Image fixe009 MVI_5316.00_00_43_02.Image fixe011 MVI_5316.00_01_11_05.Image fixe014 MVI_5316.00_01_26_15.Image fixe015 MVI_5316.00_01_35_00.Image fixe017 MVI_5316.00_01_45_12.Image fixe018 MVI_5316.00_01_46_18.Image fixe020

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library
#include <Adafruit_NeoPixel.h>
// Which pin on the Arduino is connected to the NeoPixels?
#define PIN           6
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS     104
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter–see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int sensePin = 2;
int delayval = 10; // delay for half a second
int onOff = 0;
int value =250;
void setup() {
pixels.begin(); // This initializes the NeoPixel library.
void loop() {
// For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
if((analogRead(sensePin)>value) && onOff==0)
for(int i=0;i<NUMPIXELS;i++){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(127,127,127)); // Moderately bright green color.; // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
onOff = 1;
if((analogRead(sensePin)>value) && onOff==1)
for(int i=0;i<NUMPIXELS;i++){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(0,0,0)); // Moderately bright green color.; // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
onOff = 0;

Final project:





BoxPart one


The purpose of this product was to question the awareness of our personal data distribution to the world, how accurate it is and Should we do something about it? In an ideal world this provocation piece will be distributed around the world so people can create and express their art, drawings and thoughts about the topic in different cities and scenarios.

Here is the video for this project it gives it a little overview of what my thoughts were bihind the making and why it’s called transparent.

If you want to check out more in depth the tools I used and the process of creating this Gps you can check out my instructables here

Composition : Sound Machine

DSC_0410 smallDSC_0383


The concept behind water level and music is inspired by glass harps. The idea is that each glass is tuned to a different pitch by filling the glass with water until the desired pitch is achieved.

The futuristic hologram and reflective materials are inspired by the electronic music the instrument plays. I use translucent material to emphasize water reflection, light, and shadow.

I name is project “Composition” because you can compose your own music by playing with the water level in each container. In addition,  you can compose the 5 components in this set and place them in different environment to experience different lights and reflection effects.

Here is the video of how it works.

I have created an INSTRUCTABLES of the making of this sound machine. Please visit:

Here is the list of materials and tools I used :


- Translucent double-sided hologram acrylics thickness : 1/8″, size 12″ x 24″.

- Translucent double-sided mirror acrylic thickness : 1/8″, size 12″ x 24″.

- Clear acrylics Cylinder dia : 3 3/4″, height : 12″

- Clear acrylic Rectangular Tube dia 3 1/2″, height : 12″

- Frosted Acrylic

- One-sided mirror acrylics thickness : 1/8″

all from Canal Plastic 345 Canal Street, New York, NY 10013

- 2 plastic water taps…

- Frosted 1″ plastic tube 24″ long

- Frosted 1/2″ plastic tube 24″ long

Home Depot…

- 2 Arduino Board Uno

- Adafruit Audio FX Sound Board + 2x2W Amp – WAV/OGG Trigger -16MB

- 2 eTape Liquid Level Sensor

- 2 Small Speaker

- 16 LEDs

- Wires

- 4 nuts and bolts


- Soldering Tool

- Wire Snipper

- Utility Knife

- Plastic Cements

- Clear Kitchen and Bath Adhesive Sealant

- Hot Glue Gun

- Drilling Machine

- Laser Cutter Machine

The fabrication part begin with making outlines for laser cutting. Originally, I created 3D model in Rhinoceros and export each components to illustration outlines.

Screen Shot 2557-12-04 at 12.42.37 AM small-DSC_0023

Export all the Rhinoceros files to an Illustrator vector file for laser cutting.


Assemble the water container need extra attention. I use water proof silicone sealer for bathroom to prevent leaking. Plastic cement and acrylic solvent are adhesive materials I used. Once the LED light bulbs are put in place, you can reinforce and secure them with hot glue gun.

F563GVVI3R6Y7AS.LARGEsmall-DSC_0078 small-DSC_0087 small-DSC_0040DSC_0062.jpg

​There are two parts that need to be soldered. The first part is the the LED bulbs. After putting all the bulbs in place, I solder additional 20 inches long wires to the bulbs. The second part is the sensor. I also solder about 24-inch-long wires to it.

DSC_0102 small-DSC_0114 small-DSC_0139 DSC_0143

Arduino: The first step is to plug in eTape to your breadboard and use the following code to activate the sensor. There are two important things you need to know before we start. Firstly, since the tape detects the different distances of the liquid by the compress of hydrostatic pressure the sensor, the container dimension affects the pressure. Therefore, you should to test the tape with the container that you are using in order to get the exact reading. Second, the eTape works effective and accurately only when it is flat and straight. As a result, you should attach the tape to the container other flat and stiff material with double-sided adhesive tape, to get the tape to work properly.

DSC_0383 Screen Shot 2557-12-17 at 8.54.01 AM

Uploading audio files to FX soundboard is very simple.

I downloaded mp3’s from open-sources. Then I used to convert my mp3 file to .ogg. When Adafruit soundboard is plugged into the computer, you can drag the files into the drive. Rename the files as T00, T01, T02, T03.

Screen Shot 2557-12-04 at 9.52.59 AMScreen Shot 2557-12-04 at 2.28.09 PM

Conceal your Arduino boards, breadboards, speakers, and the messy wires in a box.

DSC_0396 DSC_0364

The Light Box

1K1A9181_edit1 1K1A9191_edit1 1K1A9256_edit1 1K1A9187_Edit1

For those interested in seeing how I brought this beauty to be, here is the link for my instructables:

This project has been incredibly challenging and in my opinion was doomed from the beginning. The box itself took me 7 attempts to get right and I must say I am really extactic with the result ! I learned a lot in the process and would like to thank my Mentor David Thonis for his efforts to show me the way when all was lost.

Apart from the box, I faced electronic challenges of all sorts and sizes and ended up with my project failing in the evening before the final presentation, blowing up the audio from my macbook pro. This was due to the constant failure of the first pixel, which first caused me a three week headache and then failed me again and again on the final evening. The MSGEQ7 chip is also extremely sensitive and I worked my way through two of them throughout the project.

However, I can say that although this has all occurred, I am looking forward to pursuing this project further. I intend to add bluetooth to allow the music to play wirelessly, add an op amp to level out the music to ensure the lighting is correct, playing with filters and fast fourier transforms to create more elegant, futuristic displays, adding a external power supply and revolutionizing the shape. Additionally, I intend to investigate the scene more, learn and interact with more artists and will consider developing a new kind of music performance with this technology.

This project has been a roller coaster from start to finish and I don’t doubt it will remain to be so until I perfect its art. However, nonetheless I l am greatful for the journey and pleased with the outcome. I look forward to sharing the future project with Becky and the SVAPoD class in the upcoming year.