# Genuary2025_Landscape

# FlickeryForest

The prompt for **Genuary2025 Day 6 is “ Landscape ”** , **Day 13  is “ Triangles ”**

***FlickeryForest***  using pixelated effects from **Hydra** to make the landscape coded in **Locomotion** to be made out of simple shapes. The audio is composed of different properties of triangles in **SonicPi**

## Poem

```ocaml
Which colors of the leaves
Represent your mood?
Which content of this time,
You want to view?
Want to witness
So it adds extra value
Acts as as glue
```

## Video

%[https://youtu.be/dD3tiKMQlHc] 

## Code

### Locomotion

```haskell

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


dancer{ url="Branch.glb", size = range 5 -5 (osc 0.5),  x = range 5 -5 (osc 0.5), z = -2, ry=3.14, ly = range 5 -5 (osc 0.5), size= 0.5, dur = 190 };
dancer{ url = "leafy-bottom.glb", size: 4, animation = 4, dur = 2, z = 0, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range -10 10 (osc 0.5), dur = 180 }; -- range allows for opposite directions
dancer{ url = "leafy-bottom.glb", animation = 4, dur = 2, z = 0, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range 10 -10 (osc 0.5) };
dancer{ url = "leafy-bottome.glb", animation = 4, dur = 2, z = 0, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range 10 -10 (osc 0.5) };
dancer{ url="leafy-bottom.glb", x = range -5 5 (osc 0.5), z = -2, ry=3.14, size= 0.5, lx = range 5 -5 (osc 0.5) };
dancer{ url="test_proto_nograss.glb", x = -4, y = range -5 5 (osc 0.1115),  z = -2, ry=3.14, size= 0.5, dur = 180 }; -- up down
dancer{ url="Garden.glb", x = 4, animation = 3, y = range -5 5 (osc 0.1115),  z = -2, ry=3.14, size= 1.2, dur = 90 };
```

### Hydra

```javascript
s0.initScreen()

src(s0).scale(4).pixelate(76,76).modulatePixelate(src(s0).scale(4).pixelate(50,50),500).modulatePixelate(src(s0).scale(2).pixelate(50,50),500).out()
```

### Sonicpi

```ruby
def triangle(height,base,side1,side2,loop,bpm,timer, samplings)
  
  perimeter = base + side1 + side2
  area = (height * base) /2
  
  live_loop loop do
    use_bpm bpm
    use_random_seed Time.now.to_i / (perimeter * timer)
    with_fx [:ixi_techno,:echo,:whammy].choose, mix: 0.75 do
      with_fx :vowel, voice: dice(3) + 1 do
        use_synth [:chipbass,:chipnoise].choose
        play [perimeter/2,perimeter/3,perimeter].choose, sustain: dice(3)
        sample samplings.choose, rate: area / 5 + 0.2,pitch: base, release: (1.0/24) if spread(19,24).tick
      end
    end
    sleep [0.25,0.5,1,2,4,8].choose
  end
end



triangle(3,5,4,3,:tri1,30,7,[:loop_perc1,:elec_blip2,:tabla_ghe2,:elec_wood,:drum_bass_soft])
triangle(6.062,7,7,7,:tri2,60,9,[:bass_hit_c,:ambi_dark_woosh,:elec_plip,:elec_bell,:guit_em9])
triangle([9.682,4.841].choose,5,10,10,:tri3,90,12,[:loop_safari,:elec_blip2,:elec_snare,:elec_beep,:drum_bass_soft])
```
