Razzle is an application written in Java with Processing that I have used as my algorithmic testbed for the past few years. At its core it is a tool for live visual performance, like VJ’s but with all-generative graphics. It consists of an ever-evolving set of animations which are visual scripts for drawing on screen that can be modified by a set of defined animation parameters.
It is primarily controlled via a graphical user interface that is built automatically by Java using reflection, making it easy to add new animation parameters without the encumbrance of writing extra UI code. The parameters themselves are custom data types with defined ranges that can be easily set automatically over time, randomized or stepped. Parameter changes be quantized to a global clock signal (either internal or external) which makes visual performance more immersive by keeping things on a steady time structure (especially if synchronized to live music).
The color for all the animations originates from a central source which makes inter-animation transitions aesthetically smoother. The central ColorFactory has multiple modes that govern how colors are picked and can range from a range of similar monochromatic hues to a smooth curve through the color-space.
It has an extensive Open Sound Control interface which lets it be controlled from external devices and patches, including synchronization with an external clock which is useful for collaborations with generative musicians, as in the video below.
For public installations there is an automation mechanism that switches between a set of animations. While each animation is running, the automator periodically executes an ‘evolution’ function (custom written in each animation) that smoothly tweaks key parameters to produce new aesthetics and keep the visuals interesting. For installations in high-traffic areas (such as the entry stairs at MindshareLA in the LA Exchange building), an IR camera placed in the path can detect foot traffic and also evolve the animation in response to attendees movements.