CARL stands for Code Augmented Reality Live. In an algorave (algorithmic rave), a programmer/performer codes a 3D environment on the fly using a raymarching algorithm in GLSL; that shader code is also executing and updating on everyone’s phone in real time. Using phone orientation and audio input, CARL is a window into an immersive and evolving 3D algorithmic world that dances to the music.
When there is no one performing you can look around in the default shader here. Any upcoming performance dates will be posted on this page.
Okay, but what is an algorave?
An algorave is where programmers perform music and/or visuals by writing code that compiles real time, this is called livecoding! There is a great community of livecoders online on TopLap.org. The IRL community mostly exists in Europe but we have a strong collective in NYC. Algorave was coined by Alex McLean in the early 2000s, but people have been making music and visuals with code since the genesis of computing.
What is that code on the screen?
That is WebGL code. That is the graphics library shader language port for the web. This is how you can program your GPU to paint the pixels pretty online! The code you see is the shader that is producing the visuals you see behind it as well as on the mobile devices.
What is a ray marching algorithm?
Ray marching is an algorithm to render a 3D scene. This is very close to ray tracing if you’ve heard of that before. The difference is that ray marching uses a very contained and mathematical way to describe a 3D scene while ray tracing is a more general technique for rendering that lots of rendering platforms use, like Nvidia’s RTX. They both are physically based, i.e. you follow a ray the same way photons bounce around in the real world. Thorough ray marching you can create a 3D scene using less than 100 lines of code! Perfect for Carl.
Nerd. What’s next for CARL?
Hopefully we have some upcoming performances.
Oh yeah! My friend/relative/dog/I run an art space, there might be interest in showing Carl!
That would be sick! Drop us an intro email to firstname.lastname@example.org and/or email@example.com