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.
Slug Facts : https://a-z-animals.com/blog/10-incredible-slug-facts/ & https://a-z-animals.com/blog/incredible-sea-slug-facts/?from=exit_intent
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
Video
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 };
-- additional lighting
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