LightStruct poster placeholder

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.

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.

PatternCaptureTOP, ProjectorMapPOP, and laser mapping operators inside TouchDesigner

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.

Start a Project