Authors: Aaron Wilson and Brandon Fryslie
An open-source software system that drives Kinetic 3D LED installations. This is the program used to run The Tesseract and Draco’s Nest.
I needed software that could take input from sensors regarding the 3D position of all the LEDs and update the mapping in real-time. No other program (that I can afford) had this capability. The program also needs to trigger Flame Effects in sync with lighting. So in the spirit of making things as hard as possible, I decided to build something from scratch. Luckily, I had Brandon’s help!
It is separated into 2 applications, a client and a server. The server is a native Java application build with IntelliJ IDEA IDE. It uses Gradle to manage dependancies including the Processing libs. Processing is mostly used for the on screen real-time content preview. The server can be compiled to run on MacOS, Windows and Linux (currently working to add Raspberry Pi). It streams UDP packets over Ethernet or Wifi to the LED controllers to drive the lights. Artnet and sACN protocols are coming soon. It can run in “headless” mode with screen rendering off and no UI attached.
The client is a browser-based, responsive UI built using React. It connects to the server using WebSockets. The backend is wrapped in a Docker container that is deployed on the same machine as the server application. In this way the client is “hosted” and is discoverable by any browser on the network using the host name.
It is a bit complicated, but works really well. building modern UI is very clumsy in Java, and there isn’t much need for the user to edit content on the computer driving the LED controllers. Instead control can be done remotely via a smartphone or other computer. The installation can also be configured and interacted with over the internet. It’s possible to have many clients all sharing control of a single server.
This project is very much “in-progress” and is probably not ready for prime-time use by anyone who isn’t comfortable coding. Nonetheless, here are the links to the gitHub repositories:
please email me if you are interested in using this system for your project.