·

# WackySlugs

For this week's Creative Code Challenge by @sableraph: "Slugs", WackySlugs is coded in Hydra, Locomotion & SonicPi to Represent a realm full of slugs aiming slowly to reach their destination.

## Slug Design

• Slugs can come in Various Color Palettes: https://icolorpalette.com/palette-by-themes/slug

• Combining this with the fact that some sea slugs can do Photosynthesis, I decided to go with lighting that resembles the sun shining.
• Sea Slugs are colour blind so when it comes to their Point of View (360 View), it resembles this.

• Slugs eat mushrooms, hence the wild array of mushrooms littering the screen
• Speed of Slugs: 0.18 miles per hour and can be as heavy as 32.2 Pounds (14.6 kg)

• Using the force calculator to come up with different strengths of sounds in SonicPi: https://www.omnicalculator.com/physics/force

• Also within Locomotion, having the slugs move slowly across the screen in all directions in different sizes

• Drone sounds were implemented to represent their movement and the sounds they may hear

## Poem

``````Sliming Slowly
Sliding only
Repeating this cycle
Completing this angle
At their own pace
At their own speed
In their own Reach
Reaching to what they want to Achieve
A piece of that Fungi
From low tide to high
Completing this angle
Sliding Only
Sliming Slowly
``````

## Code

### Locomotion

``````-- setting the background
clear {color = 0x6988B5};
ambient {intensity = 1};
point {color = 0x5555A7, x = 0, y = 3};
directional { colour=0xf00f80, intensity = range 0 2 (osc 0.5), z = range 0 17 (osc 0.8), y = 10, x = -6 };

point {x = range 0 17 (osc 0.15), z = range 0 6 (osc 0.35) , intensity = range 8 25 (osc 0.5), color = 0xFFA500};
directional {z = 6, intensity = range 0 10 (osc 0.5), color = 0xff0000};

ambient {intensity = 0.45};

--variables to set up the gltichiness
r2 = step [3,4,5,6] (phase 4 0);
r = step [0.5,2,1,4] (phase 16 0);

-- Slug Evolution
dancer { url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff/bd640d1e504f4d14cdc1d6788aa4ab971a2c05f2/3Dmodel/Slug3D.glb", size = 22, x = range -15 15 (osc 0.0015), dur = 2, y= range -10 0 (osc 0.0015), z = -20, rx = range 0 15 (osc 0.25) };
f a n = dancer { url="https://raw.githubusercontent.com//IllestPreacha/CreativeDataStuff/bd640d1e504f4d14cdc1d6788aa4ab971a2c05f2/3Dmodel/Slug3D.glb", y = 1, x = -4 + n, z = a * n,ry = range -30 90 (osc 0.5), lz = range -45 130 (osc 3) };

for [0..8] (f 0.5);
for [0..8] (f 1.5);
for [0..8] (f -0.5);

--mushroom floor
for [0..100]  (\n -> dancer {url = "mushy.glb", dur = n*0.5, x = (n)+(-20), y = -4 + osc(1) * sin(n), z = -10, rx = r2 * r2 * r2, ry = 0, rz = 0, size= r});
``````

### Hydra

``````s0.initScreen()

src(s0).blend(src(s0).scale(2)).blend(src(s0).rotate(0.5)).out()
``````

### SonicPi

``````
#slug variables : 10 kg and use the 0.08(0.18 miles per hour)  acceleration to get forc
slugforce1 = 0.8047

#slug variables : 14 kg and use the 0.08(0.18 miles per hour)  acceleration to get forc
slugforce2 = 1.1265

#slug variables : 7 kg and use the 0.08(0.18 miles per hour)  acceleration to get forc
slugforce3 = 0.5633

live_loop :voyage do
with_fx :pitch_shift, pitch: slugforce2, mix: slugforce1 do
use_random_seed Math.cbrt(Time.now.to_i)
use_bpm 20
use_synth :hollow
with_fx :reverb, mix: slugforce1 do
play choose([:A4,:C4,:D4,:E4]), attack: rrand_i(4,8), release: dice(6)
sample :elec_chime, rate: slugforce3, beat_stretch: slugforce3
sample :elec_chime, rate: slugforce1, pitch: slugforce2
sleep [1,2,4,8].choose
end
end
end

live_loop :voyage2 do
use_random_seed Math.sqrt(Time.now.to_i)
use_bpm 20
use_synth :hollow
with_fx :reverb, mix: slugforce3 do
play choose([:A4,:C4,:D4,:E4]), attack: slugforce2, release: rrand(0,slugforce2)
sleep [1,2,4,8].choose
end
end

live_loop :sounds do
use_random_seed Time.now.to_i
use_bpm 20
with_fx :ping_pong, mix: slugforce3 do
sample :ambi_lunar_land, rate: slugforce2
sample :elec_twang, rate: slugforce2
sample :ambi_lunar_land, rate: -1 * slugforce2
sleep [2,4,8,slugforce2].choose
end
end

live_loop :sounds2 do
with_fx :distortion, mix: slugforce3 do
use_random_seed Time.now.to_i * 1.1
use_bpm 20
with_fx :ping_pong, mix: slugforce1 do
sample :ambi_lunar_land, rate: slugforce3
sample :misc_crow, rate: slugforce2, beat_stretch: slugforce2
sample :misc_crow, rate: -1 * slugforce1, pitch: slugforce2
sleep [2,4,8,slugforce2].choose
end
end
end
``````