·

# BlueSkiesYellowGrounds

For this week's Creative Code Challenge by @sableraph : Why is the Sky Blue, I decided to make BlueSkiesYellowGrounds, "Why Isn't The Ground Yellow".

This week the languages used are Locomotion for the Visuals, Hydra for the visual effects and SonicPi for the sound.

## Inversion Process

The name comes from the inversion of the sentence: Why is the sky Blue

1. Why then becomes Why Isn't

2. The Inverse of the sky(ceiling) is the ground(floor)

3. Blue in RGB is (0,0,1)*. When Inverted it becomes **Yellow (1,1,0)*

4. Therefore the inversion of the sentence becomes: Why isn't the Ground Yellow?

5. In the LiveCodeLab background, this will be shown by having the upper gradient as Skyblue and the lower gradient as Yellow

6. With the Inversion methodology, I decided to inverse the gravitational principles of the world, to take into account that we may have no gravity in this world-building.This will be represented by floating blocks in LiveCodeLab as they mimic the flight of pollination

7. There will be an inversion of flora as well. Plants are commonly associated with the color Green (0,1,0). In this inverted world**, they** will now be Magenta/Fuschia (1,0,1). Hydra Will be used to alter the green into magenta by remixing last week's submission for succulents: https://blog.illestpreacha.com/wccchallengesucculent

8. The sounds are coded in SonicPi using a concept of shadow maths and colour shuffling, where in this case the sounds are made through the values of different yellows. As well as their shadow/shuffle counterparts to add variance to the soundscape. So when watching, you are experiencing the yellows as colors and sounds.

## Poem

``````Why is the Sky blue?
Can the clouds be any shade
and not  monochromatic?
Why isn't the ground a Yellowish Hue?
How are the Clouds, not the texture, we choose?
As the pollinators decide which path should be made
It could be sometimes, the decision is automatic
But still, why is the Sky Blue?
``````

## Code

### Hydra

``````s0.initScreen()

//Recording 1
src(s0).invert(2).rotate(180).repeat(2,2).out()

//Recording 2
src(s0).invert(2).rotate(180).out()
``````

### LiveCodeLab

``````simpleGradient skyblue,green,yellow

turns = 17 - wave()
detail = time % 7
speed = 0.4 - sin(wave(0.013))
scale 0.4 - sin(time) * 0.5

rotate Math.sqrt(time % 14),Math.cbrt(sin(time %7)),1

detail times with i
rotate 0, 0, (2 * pi) / detail
move cos(time), Math.cbrt(time % 14), Math.hypot((time % 2), (time % 2))
rotate (turns * i * pi) / detail + (time * speed), 0, 0
rect 0.5
fill green
ambientLight 10,30,30
noStroke
box 0.3
``````

### Locomotion

``````--front row cacti
dancer { url="cactus.glb",animation = 7, size = 4.5, x = range 5 -5 (osc 0.5), y = -11 };
dancer { url="cactus.glb",animation = 5, size = 4.5, x = range 5 -5 (osc 0.25), y = -11 };
dancer { url="cactus.glb",animation = 4, size = 4.5, x = range 5 -5 (osc 0.45), y = -11 };

--back row enlarged
dancer { url="cactus.glb",animation = 3, size = 1.5, x = 3 };
dancer { url="cactus.glb",animation = 5, size = 1.5, x = -3 };
dancer { url="cactus.glb",animation = 7, size = 1.5, x = -6 };

--left size oves
dancer { url="cactus.glb",animation = 4, size = 3.5, x = -2, ly = range -3 3 (osc 2), size= 0.5, lz = range -3 3 (osc 2), size= 0.5};
dancer { url="cactus.glb",animation = 3, x = -2, z = -2,rz = range -5 5 (osc 0.2), ry = range -5 5 (osc 0.5), ly = range -3 3 (osc 2), size= 0.5 };

-- right side moves
dancer { url="cactus.glb",animation = 7, size = 3.5, x = 5, ly = range -3 3 (osc 2), size= 0.5, lz = range -3 3 (osc 2), size= 0.5};
dancer { url="cactus.glb",animation = 6, x = -2, z = 5,rz = range -5 5 (osc 0.2), ry = range -5 5 (osc 0.5), ly = range -3 3 (osc 2), size= 0.5 }
``````

### SonicPi

``````#Color +Shadows
#RGB Values + XYZ

# Gold : 255, 215, 0,65.541, 69.864, 10.033
# Mustard : 255, 219, 88, 68.334, 72.63, 19.652
# Lemonchiffon : 255, 250, 205,86.443, 94.04, 71.352

#shadow length equation is Length = height / tan(angle)

#Creating Arrays
Gold = [255, 215, 0,65.541, 69.864, 10.033]
Mustard = [255, 219, 88, 68.334, 72.63, 19.652]
Lemonchiffon = [255, 250, 205,86.443, 94.04, 71.352]

with_fx :ixi_techno do
live_loop :yellow do
i = 0

with_fx :whammy, mix: rrand(0.1,0.3) do
use_synth :pretty_bell
play (Gold[i] + Mustard[i])/5 ,release: 3
play Gold[i] + 2 ,release: 3
end

with_fx :ping_pong, mix: rrand(0.3,0.75) do
play (Lemonchiffon[i] + Mustard[i])/5 ,release: 3, decay: dice(4)
end

sleep [0.5,1,2].choose
if i < 7
i+= 1
end
end
end

live_loop :yellowshuffle do

GoldShuffle = Gold.shuffle()
MustardShuffle = Mustard.shuffle()
LemonchiffonShuffle = Lemonchiffon.shuffle()

i = 0

with_fx [:ixi_techno,:whammy,:flanger].choose , mix: rrand(0.2,0.3) do
use_synth [:pretty_bell,:piano].choose
play (GoldShuffle[i] + MustardShuffle[i])/4 ,release: 3
play Math.lgamma(GoldShuffle[i]/5 + 2),release: 3
end

with_fx :gverb, amp: dice(2), mix: rrand(0.2,0.6) do
with_fx :ping_pong, mix: rrand(0.3,0.75) do
play (LemonchiffonShuffle[i] + MustardShuffle[i])/5 ,release: 3, decay: dice(4)
end
end

sleep [0.5,1,2,Math.cbrt(GoldShuffle[i] + 2)].choose

if i < 7
i+= 1
end
end

with_fx :ixi_techno do
i = 0

with_fx :ping_pong, mix: rrand(0.2,0.9) do
with_fx :pitch_shift, mix: rrand(0.2,0.3) do
use_synth :piano
play (Gold[i] + 1/Math.cbrt(70)).abs + (Mustard[i]/Math.hypot(70,10)).abs/30  - 50,release: 3, sustain: 8
sleep [0.25,0.5,1,2,4].choose
end
end

if i < 7
i+= 1
end
end
end
``````