This one is a beast. Studio Drift commisioned us to design a completely new control, sequence and pre-visualization enviornment for their kinetic light Shylight. The result gives the user direct, real-time control over hundreds of Shylights simultanously. The choreography is accurately pre-visualized in 3D, giving the artist the option to configure and design a complete show in advance, without the physical installation present.
The application is written using NAP Framework and features a sequencer to animate both the light intensity and position of a shylight, the blending of a proceduraL effect (such as a wave) into the sequence and a 3D pre-visualizer that accurately simulates the drop distance, folding behaviour and light intensity of all the Shylights in the scene. For real-time communication with the Shylight we use Ethercat, which gives us direct control over all the Beckhoff slaves on the network, including the LED and Servo terminals. All slaves are synchronized to the same clock and controlled at a frequency of 500 to 1000hz. The user is notified of potential hardware issues through a web-interface, which also allows the user to adjust show times, select and start a show without being present on location.
The application, including pre-visualization, live sequencing and active ethercat master, runs on an Intel NUC i5. With integrated graphics and 8GB of ram. The application uses only 200mb of memory. Ethercat, when using the distributed clock, has very strict timing requirements. Processing must be done within the defined constraints otherwise the slave throws an error. Most operating systems are not optimized for real-time control, including Windows and every Linux distribution with a generic kernel. We therefore ended up using Ubuntu (Linux) with the Liquorix Kernel, which tunes the kernel for responsiveness at the cost of throughput and uses a very aggressive kernel preemption method. This enabled us to accurately exchange data with the Ethercat slaves at speeds up to 1000hz.