# 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

```ocaml
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

%[https://youtu.be/qpMNqJoDsiA] 

## Code

### LiveCodeLab

```javascript
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

```javascript
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

```javascript
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

```javascript
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

```javascript
x = "HUoHbUJgS1s"

create(3,3,x)

play(all)
```

#### Pass 2

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

create(3,3,x)

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

play(all)
```

### SonicPi

```ruby
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)







```
