Skip to content
Mark Slee edited this page Dec 9, 2020 · 17 revisions

Coding with LX

LX is a simple but powerful framework for developing real-time, point-based animations. The system is built around a few core concepts. The first step is to familiarize yourself with these:

  • Parameters: values which may be stored, retrieved, mapped to UI knobs, MIDI controllers, etc.

  • Modulators: values which change over time, either algorithmically or based upon some other data

  • Patterns: a visual pattern, which generates an animation buffer in real-time

  • Effects: a visual effect, which performs a mutation on an existing animation buffer

Mapping fixtures and outputs

LX includes a dynamic system for defining a lighting structure as a collection of individual lighting fixtures in three-dimensional space. Basic primitive fixtures types are included in the application, for points, strips, grids, arcs, which can be mapped using common protocols.

  • Custom JSON Fixtures: Define the geometry and output protocol of a custom lighting fixtures in a JSON file

  • Mapping Outputs: The LXOutput package contains a variety of classes representing output types which can be coded directly for custom applications. This is only recommended for advanced users, JSON configuration is preferable in nearly all cases.

Tutorials

Headless Operation

LX is designed to support headless operation. A typical workflow is to first use the full LX Studio application on a desktop machine to design and program your lighting effects. Then, for permanent installation, you can run your project file from a headless environment. This is often done using a Raspberry Pi.

Learn More

For a deeper dive into the library structure, consult the Javadoc API reference →