# WCCC_Chaos&Spirals

# DanceAsSpirallingChaos

For this week's Creative Code challenge by @sableraph : “***Chaos (But Also Spirals)***”, DanceAsSpirallingChaos is visually coded and layered with Locomotion Choreo code and Hydra’s glitchiness to showcase a chaotic spiral routine. The audio is coded in SonicPi that was made for Drone Day 2025.

## Poem

```ocaml
Chaos and Spirals
Spirals that are vital
To the essence
Of the Chaotic
Flashyness,
Moments of aerobatic
That is
Chaos and Spirals
```

## Video

%[https://youtu.be/-0KVvreDlQk] 

## Code

### Locomotion

```haskell

d n = dancer { url="dataGhost", ry = range -360 360 (osc 0.3), 
lz = range - 360 360 (osc 0.3),animation = [range 1 4 (osc 0.6), 1, 
range 8 16 (osc 0.6),2 , 1], size =  ((n +8)/12 * 2) , y = ((n +8)/12 * 2),
rx =  step [-3,5,1], z = range -15 15 (phase 1 (n/50) * 2 + (-2)),ry = n * 23.7,dur = 16 , rz = n * 23.7,dur = 16 };

for [0..15] d;

e n = dancer { url="ordroid", ry = range -360 360 (osc 0.3), 
lz = range - 360 360 (osc 0.3),animation = [range 1 4 (osc 0.6), 1, 
range 8 16 (osc 0.6),2 , 1], size =  ((n +8)/12 * 2) , y = ((n +8)/12 * 2),
rx =  step [-3,5,1], z = range -15 15 (phase 1 (n/50) * 2 + (-2)),ry = n * 23.7,dur = 16 , rz = n * 23.7,dur = 16 };

for [0..15] e;
```

### Hydra

```javascript

s0.initScreen()


src(s0).modulateRotate(src(s0).repeat(3).kaleid([3,2,1,2,3])).mult(src(s0).diff(osc(20.273, 0.001, 0.541)).rotate(1.036)).pixelate([200,400],[400,800,1600,1000]).blend(s0, 0.799).scrollX(0.1,0.1).modulateScale(src(s0).scale(3, () => 1.05 + 0.1 * Math.sin(0.088 * time))).out(o0);


frame = 30

speed = 0.5
```

### SonicPi

```ruby
def magic(timer, x,sust,sleeper)
  live_loop :changeGameTunes do
    use_random_seed Time.now.to_i * timer
    use_bpm  x.choose
    with_fx [:ping_pong,:wobble,:gverb].tick, mix: 0.65 do
      with_fx :ixi_techno , mix: [0.6,0.3,0.1].tick do
        with_fx :reverb, mix: 0.7, pre_mix: 0.4 do
          with_fx :vowel, voice: dice(4), mix: 0.25 do
            synth [:pretty_bell,:piano,:hollow,:piano,:chiplead].choose if spread(3,8).mirror.shuffle
            play scale([4,12,38,46,11,29,66,21].choose, [:minor,:major].tick), sustain: sust
            sleep sleeper
          end
        end
      end
    end
  end
end


magic(2,[120,120,120,90,90,30],dice(5),[1,2,4].choose)
magic(4,[12,12,10,9,24],[1,2,4].tick,[0.5,1,2,4,8].choose)
```
