# WCCChallenge: BigSky

# ChaoticUFOs\_2023

For this week's Creative Code challenge by @[@sableRalph](@sableRalph) : ***BigSky*** I decided to code ChaoticUFOs by remixing the previous **Hydra & P5js code with additional LiveCodingYoutube aid** and **SonicPi for audio.**

* For the **P5js portion,** I used the AR/XR Library: [https://p5xr.org/#/](https://p5xr.org/#/) , which allowed me to have real-time footage involving the sky and the UFOs
    
* The footage of the UFOs was done this morning as they seem to have landed in town
    
* The Design element of this sketch was to have a glitchy "found footage effect", where LiveCodingYoutube acts as a person dissecting the video and trying to see what is actually being seen
    
* With SonicPi, I decided to remix a previous sonification that took data from space launches to make the sounds.
    
    * Code that was remixed can be seen here: [DecibelsChallenge\_SpaceLaunches](https://blog.illestpreacha.com/decibelschallengespacelaunches)
        
    * For this sketch, I overlayed the various sonifications to build a chorus of sounds to mimic the energy displayed in the video
        
    * Alongside, Heartbeat Data that I wanted to incorporate into this sketch, to reflect the unknowns of the scenario being presented
        

## Poetry

*What is that flying in the sky?  
What are those?  
UFOs?  
Are they trying to humidify?  
Crystalize?  
Sanitize?  
Or add more or less heat to the cold?  
Maybe they are going to take car of the snow?  
What is that flying in the sky?  
Flying in the Big Sky that High?*

## Video

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

## Code

### P5js Code - Originally made for Genuary2022

```javascript
function setup() {
  createARCanvas(); //AR canvas setup
}

//rotational speeds
let rot = 0;
let rotSpeed = 0.1;

//array of colors to be used
let filling = [
  "red",
  "blue",
  "orange",
  "yellow",
  "teal",
  "purple",
  "silver",
  "green",
  "teal",
  "black",
  "white",
];


function draw() {
  frameRate(3); //slow down the frame rate, so it isnt as chaotic
  rot += rotSpeed; //update the speed
  
  //cone and sphere used to make flyng objects
  
  for (let i = 0; i < 11; i++) {
    rotateY(rot);

    stroke(random(filling));
    fill(random(filling));
    sphere(20);

    stroke(random(filling));
    translate(-20, (second() % 10) + 1, 0);
    fill(random(filling));
    cone(20, 20, 20);
    sphere(10 + ((second() % 4) + 1));

    translate(40, 0, 0);
    
    if (second() % 5 > 2) {
      fill("#D90368");
      strokeWeight(4);
      stroke("#FFD400");
      
    } else {
      fill(random(filling));
      stroke(random(filling));
    }
    cone(20, 20, 20);
    sphere(10);
  }
}
```

### LiveCodingYoutube Code

```javascript
create(2,2,"roqltGmlMbY") // youtube id is pasted when you click a thumbnail
play(0)
play(all)
speed(1,-2)
speed([0,2],0.15)
speed(3,0.25)
pause()
play([0,3])
cue(2,"RMAd3abn6yY")


loopAt(1,3,2) // loop video 1 from 3 second for 2 seconds
loopAt(2,19,4)
loop([1,2],1,4) // loop video 2 and video 1 from 1 second ago for 4 seconds
cue(3,"aoxKw_nTf8w")
```

### Hydra Code - Good snippet of code to get the modulation

```javascript
s0.initScreen()
s1.initScreen()
s2.initScreen()// not used

src(s0).repeat(()=> (time % 25 + 1)/5).blend(src(s1).scale(2)).diff(o1).modulateScale(o2).out(o0)

src(s1).pixelate(10000,1000).out(o2)

src(s2).scale(0.33).scroll(()=> Math.sin(time % 25)/10).out(o1)
```
