analog Not analog

Live coding visuals with Clojure and openFrameworks

analog Not analog is a live coding system for visuals. Based on openFrameworks and Clojure. The aNa visualization server can mix generative code fragments with different inputs channels in real-time: a WEB cam, a microphone, movie files, image sequences, a joystick or Open Sound Control messages. The visualization server is written in C++ and the OpenGL shading language.

The main principles are:

  • Use code to express your ideas.
  • Modify programs while they are running.
  • Try to keep all data of a running program even when parts of program are changed on the fly.

I am developing aNa for my graphical live coding experiments. What I published yet is a very reduced but more stable subset of aNa. Documentation and code samples are included.

You can edit short Lisp programs and send send them just in time to the analog Not analog visualization server. analog Not analog is a display server running on a gaming PC with a high end graphics acceleration.

For live editing Atom and its prot-REPL plugin is used. Clojure transforms your code snippets to fragment shader programs and send them to this openFramework based visualization server.

Some experimental videos made with analog Not analog can be found at vimeo.

analog Not analog Cookbook

A glitch effect catalog for analog Not analog:

Souce Code Repsitory

analog Not analog is published as open source at:

analog Not analog, Hydra and live coding

aNa is very similar to Hydra. It works by manipulating image data flowing through filter chains. In both applications there can be feedback loops in the image processing graph. Both programs are designed for live coding.

Connecting Hydra with aNa

The bridge between aNa and Hydra is based on capturing screens. The graphical output of the X11 window owned by Hydra can be read from aNa.

Use Hydra …

  • when you want to start with live coding. Because it is browser based you can use it on different operating systems without installation.

You can use aNa when you you need …

  • computationally intensive calculations like reaction diffusion or Physarum polycephalum simulations.
  • image processing with the help of the OpenCV C++ library.
  • you want features implemented only in OpenGL 4.x
  • or when you have to integrate data coming external sensors to your interactive installation.

In addition to fragment shader code, aNa can also execute C code directly on the graphics card. Since aNa is based on openFrameworks add-ons from this world can be used. However, these additional possibilities also imply a hurdle that must be overcome first. aNa does not come as a binary package to the computer. It has to be compiled on your machine like all openFrameworks applications. To extend the program you have to deal with C++.

Making of aNa

Piksel Festival 2021

“analog Not analog” presentation for then Piksel Festival 2021 in Bergen.

Animations as mp4 files

Here you can download some animation made with analog Not analog.

Stuff for visuals

Not only software is used for these visual experiments.

Code example

Animating with Lisp