Jellyfish is an interactive installation in which swimming jellyfish robots move away from you when you touch their tentacles.


This is a playful environment in which people can interact with something resembling a familiar but mysterious creature from the ocean, and provide a window into in this alien environment.


I was keen to explore how to mimic the natural fluid movement of jellyfish moving through water and implement it through code and mechanics. These jellyfish are far from natural, and reference the digitally controlled behavior in the patterns on their bodies.


Jellyfish fabrication

The pattern inside the jellyfish is a digital pattern printed onto silk embedded into the resin. The image is taken from a patch made by pixilating video footage through software until it become a simple pattern.  I printed the pattern onto silk that I ran through an inkjet printer.  I tested the affect the liquid resin would have on the ink, and happily found that it did not dissolve the ink.

 JellyfishPrint   JellyMold01Small  

The jellyfish are made from a crystal resin, molded around half of a sphere shaped object.


This process took some experimenting to get the gloss finish, and in the end a plastic bag gave the desired glassy look, and also added creases that gave detail to the form.

The jellyfish tendrils are made from silk, and have conductive thread with small metal beads on the ends. These act as a capacitive sensor, discussed later.



The mechanical construction of the installation consist of one configuration per jellyfish.  This includes a 12V motor, a L298 Motor H-Bridge, a switch, a capacitive sensor and an Arduino per jellyfish.


The motor is controlled by the Arduino via an H bridge, this is an IC chip that can control the supply voltage the motor needs, and allow the motor to turn in two directions. The diagram to the left shows how the motor is wired up. In the case of this project only one motor is used per H Bridge and so only pins relevant to motor 1 are used. The 1st diagram is the H bridge, which was soldered to a small breakout board. The 2nd diagram is assembled on a breadboard, which extends to the pins of the Arduino, Input 1 & 2, which control the power supplied to the motor on Output 1&2.

It was necessary to use a reasonably high-powered motor in order to lift an object.   The motor used was selected because of the torque and speed it could deliver in lifting the weight required. I used the 919D Series:

Type Voltage Motor output (W) Rated torque ( Mftrs. part no.
100:1 ratio 4.5 to 15V 21.2 6000 919D1001

The motors do not give any feedback on their position, and so there no way of knowing where they are relative to anything, thus it was important to implement a mechanism that prevent the jelly fish from catching on the motor at the top of the  rig. For this a button was placed in line with the path of the model as it came close to the motor. The button triggered a Boolean variable to be set to true, which in turn invoked a state that ran the motor for 1 second in the direction to lower the model.

The circuit described in the diagram below was used as a hardware debounce for the button.


The capacitor sensor was the perfect solution for a simple but effective interaction. Conductive thread was used in replacement of foil in the diagram to the left, with metal beads that indicate where the jellyfish can be touched. This meant the jellyfish could hang on one thin line, and allowed for very sensitive and subtle interaction.


Comments are closed.