Real-time audio-visual design and performance app

Recent Activity

2023 Demo Video of &sol !

This showcases the highlights of my handmade shader catalog along with numerous features.

  • Audio driven visuals
  • Mulitpass scenes
  • Compute Shaders
  • Post-processing effects
  • Cross application texture sharing
  • Dynamic Audio Processing Controls
  • Shader Hot-loading
  • Auto-generated UI & UBO via a meta-program
  • Free flying camera controls

Also not programming (yet), but a proof of concept of using CV signals from a synth to control visuals using TouchDesigner. I'll certainly be bringing this idea into my visual performance project &sol soon!
From the images you can see the patch cables running from the synth outputs to an almost empty eurorack. The only module at the moment is a DC-Coupled audio interface that can properly send and receive control voltages. I'll have to try the reverse next of manipulating image/video and sending the parameters as control voltage into the synth for generative audio.
And yes, the default image in TouchDesigner is a banana.

Getting back to work on my project &sol after 2 months on the road. Bindings with Spout are now working in Odin for texture sharing with other applications. I can now start to use this for live performance instead of the old C++ version of my app!

Short demo showing the latest progress on porting my project &sol to Odin.

  • I can now switch between different scenes and interact with an imgui to change parameters.
  • The scene gui and pipeline to upload the structure to the gpu/shaders is all auto-generated using core:reflect .
  • Post-processing shader is also now working.
  • Some simple audio analysis has been added (summing range of frequencies i.e. lows/mids/highs).
  • Next steps are to add compute shaders, a simple Render Graph representation, and serializing the scene data.

Got to project some of my visuals for a music performance the other night 😁 &sol

Got a physarium network up and running! My most complicated scene yet. &sol

now with more evolution. &sol

Experimenting with cellular automata using compute shaders. &sol

Today's shader sketch was working on an effect. It took me way too long to figure out this code. &sol

    vec2 st = gl_FragCoord.xy / u_resolution.xy;
    int iters = 32;
    float ratio = 0.5 + 0.5*sin(0.5*u_time);
    for (int i = 0; i < iters; i++) {
      if (st.x < ratio) {
        st.x = st.x / ratio;
      } else {
        float temp = st.x - ratio;
        st.x = (1.0 - st.y);
        st.y = temp / (1.0-ratio);

today's shader sketch. It's too easy for me to get stuck playing with polar coordinates. I'm starting to brainstorm different coordinate spaces I could play with. &sol

With music this time! (It's hard to get these clips under 8MB) &sol

the daily shader practice continues. I'm finding inspiration in other artists and challenging myself to figure out their techniques. &sol

Keeping up the daily practice. I was in the zone today and iterated a lot on this one. It took a while to resolve all of the visual artifacts, and there is still some noticeable banding that I'm not entirely sure how to resolve. &sol

I am keeping up a daily practice of creating shaders everyday. Didn't feel very inspired today and played around with tweaking an older piece. &sol

attempting to fold space. &sol

some shader coding fun today after being inspired by the revision party stream &sol :

Haven't been working on the engine much and have been playing with this gpu terrain marcher instead: Wish I could have flown the camera around but having the window focused caused the framerate to drop and therefore OBS capture to fail. I'm not sure why having the window focused causes such a difference (input polling?) &sol

Made this interact-able multiview today for my shader creation / live performance app &sol: