About the work · A 5-minute read

Invisible Dancers

Invisible Dancer turns two recorded dances into moving material. Kicks push it away, arm sweeps pull it into currents, and quieter moments let it settle. Choose Sara or Nano to follow one performance. Blend layers them into an imagined duet, while the viewing controls reveal the people and tracking behind the field.

A note on inspiration

For a long time, I’ve been fascinated by TouchDesigner and the idea that computers can understand human movement. One inspiration is London-based choreographer Wayne McGregor. His exhibition Infinite Bodies at Somerset House, which opened in 2025, explored the meeting of choreography and digital technology. It prompted me to explore that space myself. Open-source computer-vision libraries have given me a way to begin, using real movement as the starting point.

01 / The starting point

Collecting footage

The project began with Sara Fox’s dance video, a little over 54 seconds long. Mariano Zamora’s 38-second clip later added a second voice. The aim was to carry its pauses, turns and bursts of energy into an artwork. Keeping the original timing mattered: a quick gesture should still feel quick, and a held pose should have room to breathe.

Sara’s original performance, with its timing intact.
The tracking study, 6.5–12.5 seconds into the dance. The overlay was used to check the movement.
Nano’s original clip. Its on-screen credit reads “Solo Echo / Crystal Pite.”
Nano’s tracking study, 4–11 seconds into his clip.

02 / Reading movement

Turn frames into a movement score.

Python and OpenCV helped read the video. MediaPipe Pose Landmarker estimated 33 body points in each frame, including the shoulders, hands, hips and feet. Their changing positions gave us direction, speed and acceleration. Small jitters were smoothed, and short gaps were filled carefully. The tracking is an estimate, so the overlay helped reveal where it needed checking.

The results were saved as timestamped JSON: a file of movement data the browser can follow. The video remains the clock, so the field stays in step with the dance.

03 / Finding the material

From a magnet to something she could move through.

The first study used a simple magnetic field. Its curved lines were beautiful, but one central magnet felt too still. Adding the hands and feet brought more of the choreography into the field. Body contact made the next difference: particles could be pushed aside by a kick, flow around an arm and return into the space left behind.

The original white iron-filings study forming loops around two magnetic poles
First study: a two-pole magnetic field.
White filings displaced by an arm sweep, with a clear space where the dancer moves
Body contact study.

Dozens of iterations followed. Graphite shading brought out dense ridges while keeping individual grains visible. Blue currents then made active areas easier to read, using the same moving particles.

Archived graphite material study of an arm sweep, showing fine gray rods gathering around the body-cleared space
Graphite density.
Archived blue material study of the same arm sweep, with colored rods following the existing particle flow
Color currents.

04 / Light within the field

Let the densest places glow.

The rods stayed small and sharply defined as the surface changed from white filings to graphite and then blue light. Brightness gathers where particles are actually close together. A tight glow softens the brightest cores; faint resting rods give the surrounding darkness depth. These are changes to the material’s appearance, built on the same movement.

The luminous blue resting field, with brighter and darker layers of fine magnetic rods
The current material study. Individual rods remain visible within the larger flow.

05 / An invisible instrument

What if the dance could be heard, too?

The image already came from movement. Sound became another way to follow the same gestures. Instead of adding a soundtrack, we let Sara and Nano play an invisible instrument through the movement data we had already collected.

Hands become chimes. Clear hand gestures choose delicate bell notes from a pentatonic scale: five notes that work well together. A brief space between notes keeps a fast passage from becoming a rush of sound.

The body becomes atmosphere. Overall movement shapes a quiet synthesizer pad. Its volume, tone and small pitch changes follow the dance gradually. A leftward gesture can be heard toward the left; a rightward one moves across the stereo field.

Feet become resonance. Strong kicks and sudden changes in motion create deeper, bowl-like tones that linger after the gesture.

The material has a voice. When moving particles gather, they add a low harmonic hum. As they scatter, finer overtones appear. Stillness lets the sound return toward silence.

The browser makes these tones with native Web Audio, adding soft attacks, long decays and reverb. The dance video remains the clock for both sound and image. Sound is on by default and begins when you press Play. You can mute it at any time.

In Side by side, rings and note names briefly mark the hands or feet behind a sound. A dedicated third column shows how each dancer shapes the four sound layers, beside the tracked footage and particle field. It can also be read with sound off, making the relationship visible before you listen. Studio offers volume, sound intensity and a material-sound toggle.

Two expressions of one movement: human gesture → magnetic material + sound.

The tools

A video, a data file and a browser.

Python, OpenCV and MediaPipe handle the motion analysis. JavaScript follows that data and runs the particle simulation in a background worker. WebGL 2 draws the rods on the graphics card. Each dancer’s default field contains 24,000 particles, with inertia, drag and magnetic alignment. It is inspired by physical materials, rather than an exact model of real ferrofluid.

The work was developed through repeated studies with Codex: checking tracking, adjusting body contact, comparing material treatments and refining the interface. The guiding question stayed the same: can the movement make the dancer’s presence legible?

PythonOpenCVMediaPipeJSONJavaScriptWebGL 2Web AudioCodex

Dancers

The people behind the movement.

Sara Fox

BFA in Dance, University of Michigan School of Music, Theatre & Dance, Class of 2021. Zack Dance Company alumna. Based in Los Angeles, working in contemporary and commercial dance.

Mariano Zamora (Nano)

USC Glorya Kaufman School of Dance, Class of 2021. Former dancer with Ballet Hispánico in New York City. A London-based freelance dancer, currently touring with Studio Wayne McGregor and DeNada Dance Theatre.

Invisible Dancer · 2026 Barsky Labs

Return to the dance