2025–Present
LightStruct
A structured-light scanning system that automatically aligns projectors and ILDA lasers on arbitrary surfaces, built as custom C++ operators for TouchDesigner.
- Structured Light
- Projection Mapping
- Laser Mapping
- C++
- TouchDesigner
Year
2025–Present
Role
Concept, research, C++ development
Tools
C++ / OpenCV / TouchDesigner / Structured light / ILDA laser
Project Type
Research & Technology
Overview
LightStruct is a structured-light scanning and mapping system I am developing to align projected visuals and ILDA laser output on arbitrary surfaces. Structured Rain is the first installation built on it.
Origin
Flux Emanation was my first piece to synchronize a laser with projected visuals. That setup was a flat surface, and aligning the two by hand was workable. Much of my work takes inspiration from nature, and I wanted to push further and use nature itself as the canvas. Natural scenes are never flat, and hand-aligning a projector and a laser across bark, moss, and contour is impractical. LightStruct began as the answer to one question: how can a system automatically align a laser and projected visuals on arbitrary surfaces?
How It Works
The core of LightStruct is a custom-built C++ framework that calibrates cameras, projectors, and lasers into a shared coordinate space. A projector displays sequences of Gray code and phase-shift patterns while a depth camera captures the scene, producing subpixel correspondences between camera and projector pixels. From these correspondences the system calibrates the projector’s optics and position, then triangulates a dense 3D reconstruction of the scene.
The laser gets its own calibration pass. The system steers the beam through a scan sequence, detects each laser spot in the camera image, and solves for the laser’s position and projection directly in ILDA coordinate space. The result is a dense lookup table connecting projector pixels to laser coordinates, fast enough to query thousands of points per frame in a live system.
TouchDesigner Integration
LightStruct exposes its scanning, calibration, and mapping tools as custom C++ operators inside TouchDesigner. PatternCaptureTOP coordinates structured-light capture, while ProjectorMapPOP turns the scan into a mesh carrying world-space, projector-space, and laser coordinates. Keeping the pipeline inside TouchDesigner allows projected visuals and laser patterns to be mapped onto the same geometry without moving between separate tools.
A companion iPad app handles masking. After a scan, it selects which parts of the scene receive projection and laser output, so light lands only where the piece intends.
In the Field
Structured Rain at APOG Music Festival in July 2026 was the first deployment. Using an Orbbec depth camera, calibrating and masking the full 3D scene took about 15 minutes on site.
Continued Development
LightStruct is ongoing R&D. The system works in its current form, and development continues on robustness across different setups and new features.
Work With Me
Have a project in this territory? Send a brief and I'll help shape the technical path.