Introduction: Interactive Cymatic Visualizer

Obsidiana is inspired by the Mesoamerican water mirror that used light patterns on water as a divination tool. Generative patterns emerge in this light and sound visualizer through the element of water.

This liquid-based template uses light data created by sonic frequencies to compose patterns over time. The generative patterns are projected onto a screen embedded with multiple light sensors that capture their light data as an input. The data is fed into MaxMsp and outputted into a speaker. The sounds are visualized back in the water and projected again, creating a cymatic feedback loop that develops more complex patterns and sounds.

With intermediate electronics experience and generative music software, in this case MaxMsp, this template can be dynamically reconfigured by adding your different sound samples and adjusting frequencies.

You will make:

  • an interactive screen with sensors
  • a water speaker
  • a live feed projector

More about Mesoamerican mirrors here

Step 1: Make Your Screen

You will need

  • a large piece of thin wood, 1/8-1/4 inch thick
  • or cardboard
  • scissors or saw
  • drill gun
  • white paint


  1. Cut out a large circle out of wood or cardboard. It can be as large as you want it. In this project, my screen had a five-foot diameter. Remember that you will be projecting your patterns onto it.
  2. Next drill five holes with a drill gun. Make sure there is enough room to fit your photocell sensor.
  3. Paint it white and wait for it to dry.

Step 2: Electronics

You will need:

  • Arduino Uno
  • five photocell sensors
  • breadboard
  • electric cable
  • 5V supply
  • five 10KΩ pulldown resistor
  • USB cable
  • Solder
  • Soldering iron

Where to buy:





  1. Cut your electric wire into five pieces that reach each hole in the screen (ex. two feet)
  2. Solder the wire to each end of the photocell (look at example above)
  3. Fit each photocell into each hole with the sensor facing outwards.
  4. On the opposite end, put each cable into your breadboard, one reaching 5V, the other reaching the 10KΩ (which is connected to Ground, and an Analog Pin); use the example above as a guide
  5. Do this over and over until you have used Analog Pins 0-4 for your five photocells
  6. Use this tutorial as a guide

Step 3: Arduino Code - Test Your Photocell

  1. Get code here:
  2. Follow these instructions to test your photocell and put your new Analog Pin #s at the top of your code for your five photocells.


int photocellPin = 0;

int photocellPin = 1:

int photocellPin = 2;

int photocellPin = 3;

int photocellPin = 4;

Step 4: Photocell Data to MaxMsp

You can use the lux data generated by photocells in a variety of ways to generate sounds. Values run from 0-1.

Here's some more info:

In this project, I used MaxMsp using Maxuino go generate sound. You can also use Processing and p5js as well.

Download Maxuino here:

Download MaxMsp here:

  1. Open the Maxuino patch listed arduino_test_photocell and apply each of your Analog pins to r trig0- r trig
  2. Open the MaxMsp patch r trig cycle_2 included. Adjust the parameters and add your personal sound files to each r trig.
  3. You should see your lux data coming through MaxMsp. Play around with it and discover something you like.

Step 5: Make a Cymatics Speaker

You will need:

  • Water dropper
  • Small black cap or dish (make sure it will fit on top of your speaker)
  • One speaker (preferably small subwoofer)
  • Waterproof spray
  • Stereo Male to Dual RCA Male Cable
  • Superglue


  1. Connect your laptop output to your speaker using the RCA cable
  2. Face the speaker upwards
  3. Spray speaker with waterproofing spray; I used
  4. Glue the small cap to the center of the speaker
  5. Fill the cap halfway with the water dropper
  6. Watch the intro video for guidance

Step 6: Live Streaming Camera on Speaker

You will need:

  • Live Streaming Camera, most DSLRs have this option
  • Projector
  • Ring Flash
  • HDMI cable
  • tripod


  1. Place camera on tripod above the speaker and zoom in on the water cap
  2. Turn ring flash on; I used Bower Macro Ringlight Flash on a Canon Mark III DSLR
  3. Connect HDMI cable from camera to projector, or what works for your camera
  4. Stream the projector on your new photocell screen
  5. If your projector has a keystone function, map your projection to the screen

Step 7: Congrats!

You made an interactive cymatic instrument. Make final tweaks to your audio samples in MaxMsp and volume levels and you're done!