# WCCChallenge_WhyisTheSkyBlue

# 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](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

```ocaml
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?
```

## Video

<iframe width="560" height="315" src="https://www.youtube.com/embed/aBA53rOE958"></iframe>

## Code

### Hydra

```javascript
s0.initScreen()

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

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

### LiveCodeLab

```javascript
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

```haskell
--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

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

#ShadesofYellow [R,G,B, X, Y, Z]



# 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
      use_synth :chiplead
      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
      use_synth [:piano,:chiplead].choose
      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


#shadow length component
with_fx :ixi_techno do
  live_loop :yellowshadow 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
```
