Contents ↓

Develop with Chromatik

Chromatik offers a rich set of open APIs that enable you to extend its functionality. The most common use case is to implement your own animation devices either in Javascript or Java.

But you can do much more than that. The Content Package framework allows you to bundle and distribute your own components, and the Plugin framework enables deep integration and extension of the core engine.

Getting Started

The following sequence is a natural approach to learn how to develop with Chromatik.

Public Repositories

While Chromatik is not distributed under a copyleft open source software license, the application is developed largely in the spirit of open source. Core engine source code is publicly available for reference, with an open stance towards contributions and suggested modifications.

Complete Javadoc API documentation is available.

Source code falls under the Chromatik / LX Software License →

Platform Support

The bulk of Chromatik's implementation is in Java, currently using version 21 of the Adoptium Temurin™ distribution. Care is taken to keep the core libraries as cross-platform and dependency-free as possible. Headless CLI-only usability a primary design goal, with Raspberry Pi a typical target for physical deployments.

Native libraries are embedded via LWJGL for high-performance cross-platform UI.

Developer Community

Chromatik is used by a variety of projects, with a particular prevalence at Burning Man. Many of these projects are collaborative in nature or some form of open source. Questions, comments, show + tell are always welcome.

Join us on the Discord server →

If email is better: support@chromatik.co

Project History

The LX library was started in 2010 by Mark C. Slee (henceforth referred to in the first person). It was originally a set of tools implemented in the Processing framework to support smooth blending between discrete pixel animation routines with KiNET output support for Color Kinetics LED fixtures. I used this to run my first lighting installation at Burning Man — just 100 nodes, a solar panel, marine battery, and a cheap netbook.

Obviously many powerful lighting tools existed, but there were two common limitations:

  • A lack of support for sparse, volumetric layouts in 3D space that were becoming increasingly common with the proliferation of LEDs
  • Lighting applications had evolved out of the club/stage lighting paradigm, geared towards cues on a timeline or a desk console

I found myself wishing for a lighting application that behaved like my favorite loop-based DAW. Drawing inspiration from this background with electronic music, I incorporated features common in the audio synthesis worlds, using LFOs and other algorithmic modulation sources to create an endless, freely evolving environment.

Over time, the lighting projects I was involved with scaled in size and complexity, with numerous installations crossing the 100,000 LED threshold. The project outgrew Processing and evolved from a set of developer APIs into to a full-fledged standalone application. No longer requiring coding experience to operate, Chromatik finally crossed the threshold of becoming a Digital Lighting Workstation.

Why is it called LX?

In the theatre lighting world, LX is shorthand for "electrics" and typically used when enumerating lighting cues (often Q). Here it functions as a simple, short prefix to make core framework types easily identifiable in code.

Installations

Below is a selected (and incomplete) list of notable projects and artists that have used Chromatik APIs over the years to develop dynamic lighting installations.