Version 0.1.1 of Afterglow was recently released. Inspired by Overtone, and incorporating elements of it, Afterglow aims to be an environment supporting the live coding of immersive light shows in Clojure, using the Open Lighting Architecture to communicate with lighting hardware.

Beyond being designed to allow you to inject your own code right into the frame rendering process, there are several ways that Afterglow differs from other lighting control software you may have encountered. The early stages of its rendering loop can work with higher levels of abstraction than the typical DMX channel value or fixture function (although those are well supported too):

You can express your desired results in terms of an abstract color, including support for the hue-saturation-lightness model, which is great for algorithmic looks, and have it translated to whatever color channels (or color wheel) your fixture supports.

Groups of moving heads can be told to face particular directions by specifying parameterized vectors, or to aim at a particular point in space, and Afterglow figures out how to translate that into DMX control values given its understanding of the fixture and where, and at what angle, you hung it.

There are a variety of oscillators which can efficiently drive effect parameters.

You can also create complex effects, with adjustable parameters that can be controlled through a rich binding to an Ableton Push controller.

The timing of effects is pervasively influenced by a deep notion of musical time, with support for synchronization via MIDI clock or Pioneer Pro DJ Link beat grids.

You can even host Afterglow within Cycling ‘74’s Max visual interactive environment, through the related afterglow-max project.

As suggested by its version number, Afterglow is still at an early stage of development, and is growing rapidly. It is already able to create beautiful effects, and the experience of controlling them through the pressure sensitive pads on the Push, while tweaking them through a REPL, is quite a trip. If anyone is interested in exploring it, the author (that’s me) is eager to help with the setup process and the creation of new fixture definitions for early adopters. Feedback about the documentation or any aspect of the system is warmly welcomed.