Ferrofluid Music Visualization

Difference & Repetition was a piece I created in my final two weeks at the School for Poetic Computation in NYC. It is a small-scale art installation that sits atop a table featuring magnetic ferrofluid. The fluid is suspended in a petri dish and can be set into motion by playing music. Control dials allow you to personalize the movement as if it is dancing.

The dark magnetic fluid is a mix of iron particles and oil, which is suspended in an alcohol solution in a dish. Hidden underneath the dish are two magnets on a circular plate. The plate is attached to a continuous rotation servo motor that takes directions from an Arduino. Directions are generated by an algorithm that analyzes sound input and translates beats from different frequency bands into the physical rotation of the plate.

Difference & Repetition pulls sound visualization away from pure data and into the physical, ever-changing world. It is an installation that respects qualitative and quantitative data. The ferrofluid is affected by magnetic fields and also several factors in the environment (gravity, temperature, suspension fluid). Ferrofluid also has a lifespan, and becomes more rigid with time and exposure to magnetic fields. With these influences, you can never really "control" the fluid. The same direction given twice will always move the plate the same way, but the effect on the fluid will be unique. This brings attention to the small differences that play between musical repetitions.

The Prototypes

This project happened over 17 days. It started with electromagnets, arduino and openframeworks, and subsequently went through six distinct iterations. I wrote this in ruby, java & javascript, and settled on using java and processing due to the minim sound library. I also replaced the electromagnets with solid magnets on motors after the first prototype due to the electrical and space requirements of the showcase. If you have questions, please connect with me on Twitter @heathrmoor, I’m happy to chat about what I learned and would also love to hear what you’re learning.

1 - Day 1

25N 12V electromagnet responding to volume level

2 - Day 8

Switched to using a (loud!) 90 deg servo turning to volume level

3 - Day 13

Now using a larger continuous rotation servo (quieter!) and responding to beat onsets instead of volume.

Also tried: * a much larger electromagnet to try (200N), which did not effectively pull the fluid * a stepper motor which was quiet, but would routinely get stuck between poles when starting and stopping music (also had a defective motor driver which made debugging a major pain)

4 - Day 14

Now using Processing and Minim for beat detection. Iterating on "dancyness".

5 - Day 15

OMG. This stuff dies. This is where I start playing with the suspension fluid, distance to magnetic field etc to try to prolong the life.

6 - Day 17