Motion Ray

Motion-controlled, real-time choreo-to-light engine for expressive stage lighting.

  • A.A. Year: 2020-21
  • Students

    Luigi Biasi
    Julien Boidevaix
    Claudio Costantini
    Alinda Gercek

  • Source code: Github

Description

Motion Ray is an innovative, AI-driven interactive system that transforms a dancer's live movements into dynamic DMX commands for stage lights. It creates an immersive fusion of human performance and automated visuals, reimagining the relationship between performer and stage.

Instead of relying on rigid, pre-programmed lighting cues, Motion Ray treats the dancer as the conductor of the lighting console. By leveraging real-time pose detection, audio analysis, and a Conditional Variational Autoencoder (CVAE), the system enables the lights to respond fluidly and continuously to gestures. The result is a theatrical experience where fixtures act as an interpretive extension of the performer’s style, choreography, and the emotion that is intended to be conveyed.


Challenges, accomplishment and lessons learned

During Motion Ray’s development, the biggest challenges were establishing a clear conceptual framework and managing a complex system architecture. Conceptually, we needed reliable mappings from abstract performance inputs to lighting outputs—e.g., audio amplitude → brightness, performer velocity → movement speed, and extracting color palettes from uploaded images. Ensuring spatial consistency between a 2D camera feed and a physical 3D stage without prior geometry required an adaptive stage-sector identification system based on homography.

Technically, achieving true real‑time behavior was difficult. Our asynchronous pipeline initially caused desynchronization: OSC dispatch lagged behind YOLO detection and CVAE generation, producing a “time‑machine” effect with visual jumps and FIFO bottlenecks. We resolved this by redesigning thread coordination and state exchange.

We turned these issues into strengths. Implementing thread-safe deques and explicit synchronization (semaphores and threading.Event) eliminated latency buildup and enabled smooth interpolation of 15-frame sequences for pan, tilt, and color. On the AI side, training a Conditional VAE on sector-labeled lighting scenes allowed dynamic, spatially coherent lighting generations responsive to the performer’s live position. The result is a stable, low-latency pipeline ready for theatrical testing.

Key lessons learned: prioritize core features and standard protocols (OSC, QLC+) over monolithic custom builds; enforce strict concurrency and state-management policies (bounded queues, synchronization, frame discard or interpolation rules) for real‑time reliability; and design platform-agnostic code (relative paths, driver abstractions) to support collaborative development and cross‑OS deployment.


Technology

Python, PyTorch, Conditional VAE, Ultralytics'YOLOv11, librosa, OpenCV, React (GUI), DMX, OSC


Students

Luigi Biasi: VAE model, GUI, multithreading
Julien Boidevaix: movements boundaries, 3D environment research
Claudio Costantini: YOLO, stage sectors and positioning, dataset
Alinda Gercek: audio to brightness, color conditioning, music velocity classification


Media