# Genuary2024_UndecidedCubes

# Undecided Cubes

The prompt for **Genuary Day 24** is **Undecided Geometry**

  
Through the sounds of **SonicPi** and effects of **Hydra,** Cubes moving in the world of **Locomotion** are undecided on which shape to transform to

## Poetry

```ocaml
Points to Plane
Cubes to Plane
Transformation, unexplained
not knowing to stay
Undecided
But reminded
That the path isn’t only the plane
So, Chaotic they get
Chaotic in depth
```

## Video

<iframe width="560" height="315" src="https://www.youtube.com/embed/aS3xdN4OS0k?si=j3YhatJnF-2UWQvj"></iframe>

## Code

### Locomotion

```haskell
c = hsv (step [0,1/3,1/3,2/3,2/3,2/3,1/3,1/3,1/3,0,0] (phase 1 0)) 0.2 (range 0.5 1 (osc 0.09));
c1 = hsv (step [0.5,1/3,1/3,2/3,0.5,2/3,2/3,1/3,1/3,1/3,0.5,0] (phase 1 0)) 0.3 (range 0.15 0.25 (osc 0.09));
c1c = hsv (step [0.5,1/3,1/3,2/3,0.5,2/3,2/3,1/3,1/3,1/3,0.5,0] (phase 1 0)) 0.47 (range 0.25 0.75 (osc 0.09));
cc = hsv (step [0,1/3,1/3,2/3,2/3
,2/3,1/3,1/3,1/3,0,0] (phase 1 0)) 0.7 (range 0.5 1 (osc 0.09));
--Lighting

ambient {intensity = range -4 8 (osc 0.15)};
point {color = rgb 200 170 135, x = 0, y = 3};
directional { colour= rgb 100 150 35, intensity = range 0 4 (osc 0.5), z = range 0 17 (osc 0.8), y = 10, x = -6 };

-- making a variable to use throughout
move = (osc 0.10);

-- background
clear { colour= 0x51414F, alpha= 1.5 };

-- the boxes
box { colour = cc,rx = range 0 180 (move), y = range -3 3 (move), size = range -3 3 (move) };
box { colour = c1,rz = range 0 180 (move), x = range -2 2 (move),size = range -2 2 (move) };
box { colour = c1c,rz = range 0 180 (move),z = range -20 2 (move), y = range - 3 3 (move), x = range -3 3 (move),size = range -2 2 (move) };
box { colour = c, ry = range 0 180 (move), z = range -2 2 (move),size = range -1 1 (move) };

--magicavoxel usage

g = \n -> dancer { url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix1.glb", y = 10,rz = 40*n,x = 7*n + -20, ry = 60*n,lx = range -45 130 (osc 0.45), z= 3*n + -20,size = 0.75*n};
for [0..6] g;

k = \n -> dancer { url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix2.glb", y = -5,rx = 23*n, z= -20, x = 7*n + -20,lx = range -45 130 (osc 0.45),size = 0.75*n};
for [0..6] k;


b = \n -> dancer {url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix1.glb", size = 2/n,ry = range n 15 (osc 0.25), y = 7*n + -20 + range -0.1 0.1 (osc move), z = n + range -2 2 (move),size = range -1 1 (move) };
for [0..6] b;

dancer {url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix2.glb", size = 2,ry = range 180 270 (osc 0.25), x = 3,z = range -2 2 (move),size = range -1 1 (move) };
dancer {url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff//7aa243f3043429f88cb44eda132d85e96863541b/3Dmodel/cubemix3.glb", size = 2,ry = range 0 360 (osc 0.25), y = 4, z = range -2 2 (move),size = range -1 1 (move) };
```

### Hydra

```javascript
s0.initScreen()


src(s0).
modulateRotate(noise(3,[1,2,3,4,3,2,1].smooth(),1).kaleid(2),0.5).
repeat(1,2).modulatePixelate(osc(3,1,1),637.75).out()

speed = 0.055
```

### SonicPi

```ruby
#remixed another beat , adding more elements through the rotations arrays and adding more synths and sounds
use_bpm 20
n = ring(:b3,:c4,:c5,:c6)

#my arrays of effects, synths, samples
Effects_Swap1 = [:ixitechno, :reverb, :panslicer]
FlavourRotation = [:Pretty_bell,:prophet,:piano,:dpulse]
PercRotation = [:bd_pure, :perc_snap, :bd_haus]
bdRotation = [:bd_haus, :bd_fat, :bd_gas, :bd_808]
DrumHardRotation = [:drum_heavy_kick,:drum_snare_hard,:drum_tom_hi_hard]

#counters
w = 0
x = 0

#liveloop commences
live_loop :bassflow do
  with_fx :flanger, mix: rrand_i(0.1,0.9) do
    with_fx :gverb, mix: [0.1,0.2,0.3,0.2,0.1].tick do
      use_random_seed (Time.now.to_i) / 3
      use_bpm 120 / (dice(4)+1)
      if one_in(2)
        sample :drum_bass_hard
        sleep 0.5
      else
        sample :drum_bass_soft
        sleep [0.25,1].choose
      end
    end
  end
end


live_loop :IslandFlavour do
  
  use_random_seed Time.now.to_i
  
  with_fx Effects_Swap1[rand(3)] do
    
    use_bpm 120 / (dice(4)+1)
    use_synth FlavourRotation[rand(4)]
    x += 1
    if (w % 4 == 0)
      play n.tick, on: spread(5,12).look, release: (1.0/24), pan: rrand(-0.8,0.8)
      sleep [(1.0/24),0.5,0.75].choose
    else
      play n.tick, on: spread(11,24).look, release: (1.0/24), pan: rrand(-0.8,0.8)
      sleep [(1.0/24),0.75].choose
    end
    # end
  end
end


live_loop :PercFlavour do
  
  use_random_seed Math.cbrt(Time.now.to_i)
  
  x += 1
  if (x % 4 == 0)
    sample PercRotation[rand(3)] if spread(5,12).tick
    sleep [(1.0/24),0.35].choose
  else
    sample PercRotation[rand(3)] if spread(5,8).tick
    sleep [(1.0/24),0.75,0.35].choose
  end
end




live_loop :flow do
  with_fx :ping_pong do
    sample bdRotation[rand(4)]if spread(7,24).tick
      sleep [(1.0/24),0.5,1].choose
    end
  end
  
  
  
  live_loop :startingline do
    sample bdRotation[rand(2)], rate: 1
    sleep 0.5
    4.times do
      sample DrumHardRotation[rand(4)]
      sample [:drum_bass_hard,:elec_blip,:glitch_robot2,:guit_em9].choose, rate: dice(6) * -1
      sample [:drum_bass_soft,:elec_chime,:glitch_robot,:perc_snap2,:perc_till].choose, rate: dice(6) * -1
      sleep [(1.0/24),0.75,1.25].choose
    end
  end
  
  
  
  
```
