Skip to main content

Command Palette

Search for a command to run...

WCCCxGenuary2026_Organic

Organically Coded

Updated
2 min read
WCCCxGenuary2026_Organic

BlobbyMutants

For this week's Creative Code challenge by @sableRaph & Prompt 25 of Genuary 2026: “Organic Geometry“ and Prompt 29: Mutation, BlobbyMutants is coded in LiveCodeLab, HydraVideoSynth, SonicPi & LiveCodingYoutube.

Poetry

Blobs are blobbing
With hopes of their season
To perform their treason
But is there a way of it stopping?
Is there a way of it skipping,
Skipping a beat?
Or these blobs want to continue their treats
As they venture after their formation
Into the streets
Into the seas
Into the streams
To gather not only useful information
But to keep their blobbing
For more blobs to come in
And commence their flipping
as others prepare to slip in

Video

Code

LiveCodeLab

scale 0.05

ringDetail = (time % 40 + 1) * 3
ambientLight 255,150, 90
noStroke
fill gold
simpleGradient silver,black,white


if time % 10 > 6
    animationStyle paintOver
if time % 10 < 3
    animationStyle motionBlur

time % 14 + 5 times with i
    ringDetail times with j
        rotate Math.hypot(sin(time)*i,cos(time)*i),Math.hypot(sin(time)*i,cos(time)*i),Math.hypot(sin(time)*i,cos(time)*i)
        move i/time, sin(i), i *wave(cos(i)*2)
            ball Math.hypot(j % i, sin(time))


time % 14 + 5 times with i
    fill aqua
    ringDetail times with j
        rotate Math.hypot(sin(time)*i,cos(time)*i),Math.hypot(sin(time)*i,cos(time)*i),Math.hypot(sin(time)*i,cos(time)*i)
        move i/time, sin(i), i *wave(cos(i)*2)
            ball Math.hypot(j % i, sin(time))/3

HydraVideoSynth

Pass 1

s0.initScreen()

src(s0).blend(s0).diff(src(s0).scale(1.05)).
add(src(s0).scale(1.15).invert().pixelate(500,500).colorama(()=> (time % 13)/13)).out()

Pass 2

s0.initScreen()

src(s0).blend(src(s0).scale(0.95)).diff(src(s0).scale(1.05)).
add(src(s0).scale(1.15).invert().pixelate(500,500)).add(src(s0).scale(1.05).invert().pixelate(500,500)).repeat([1.3,2.2].smooth(),[0.75,1.1].smooth()).out()

speed = 0.25

Pass 3

s0.initScreen()

src(s0).blend(src(s0).scale(1.05)).
blend(src(s0).scale(1.15)).
add(src(s0).scale(1.20)).
diff(src(s0).scale(1.25)). out()

LiveCodingYoutube

Pass 1

x = "HUoHbUJgS1s"

create(3,3,x)

play(all)

Pass 2

x = "HUoHbUJgS1s"
y = "YVzbHpgWq04"
z = "glg82w2HTik"

create(3,3,x)

cue([0,4,8],y)
cue([1,3,5],z)

play(all)

SonicPi

def neighboring(naming,looping,timer, timer2)


  #random 10 list array with a seed, to make sure it is always random

  use_random_seed Time.now.to_i / timer
  cells = 25.times.map { Random.rand(0...2)}


  #allows for cell automata rules to include every variable
  cells1 = cells.push(cells[0],cells[1])

  puts cells1

  naming = []

  #length of array and push every neighbor of 3 into the array
  for i in -2..cells1.length-3 do
    naming.push([cells1[i],cells1[i+1],cells1[i+2]])
  end



  #cellular automata rules

  vech = [[0,0,0],[0,1,0],[1,1,1],[0,1,0]]
  elec = [[1,0,0],[0,1,1]]
  drums = [[1,0,1],[1,1,0]]

  x = "F:/Sounds/Vechiles/Remastered/Vech (5).wav"
  x1 ="F:/Sounds/Vechiles/Remastered/Vech (6).wav"
  x2 = "F:/Sounds/Vechiles/Remastered/Vech (7).wav"
  x3 = "F:/Sounds/Vechiles/Remastered/Vech (8).wav"


  live_loop looping do

    use_random_seed Time.now.to_i / timer

    for i in 0..naming.length do
      if drums.include? naming[i]

        with_fx :ixi_techno, mix: [0.1,0.3,0.5,0.25,0.15].tick do
          use_bpm [60,120,30,240].choose
          sample [:drum_bass_hard,:drum_bass_soft,:tabla_ghe2].choose, beat_stretch: [2,3,4].choose
        end

        sleep [0.5,1].choose
      else if vech.include? naming[i]
        sample [x,x1,x2,x3].choose, rate: [-1,0.5,0.25,2].choose
        sleep [0.5,1].choose
      else
        with_fx :flanger do
          sample [:elec_blip,:elec_beep,:elec_soft_kick].choose , rate: [-3, -1,0.5,0.25,-1.75,2,3].choose
        end
        sleep [0.5,1,0.2].choose
      end
    end

  end

  sleep [0.25,0.5,1].choose
end
end

# initalizing variables to pass through

neighboring(@neighbors1,:pass,2,4)
neighboring(@neighbors2,:pass1,3,5)
neighboring(@neighbors4,:pass2,11,64)
neighboring(@neighbors3,:pass3,13,25)

Genuary2026

Part 15 of 48

Explorations during Genuary 2026

Up next

Genuary2026_Bauhaus2

More Pixelation