Skip to content

Instantly share code, notes, and snippets.

ArrayList<PVector> points = new ArrayList<PVector>();
void setup() {
size(800, 800, P3D);
}
void draw() {
float thickness = 10;
ArrayList<Float> angles = new ArrayList<Float>();
for (int i = 0; i < points.size() - 1; i++ ) {
// The Nature of Code
// Daniel Shiffman
// http://natureofcode.com
// Boid class
// Methods for Separation, Cohesion, Alignment added
class Boid {
PVector position;
#include "FS.h"
#include "SPIFFS.h"
/* You only need to format SPIFFS the first time you run a
test or else use the SPIFFS plugin to create a partition
https://github.com/me-no-dev/arduino-esp32fs-plugin */
//#define FORMAT_SPIFFS_IF_FAILED false
#define FORMAT_SPIFFS_IF_FAILED true
bool fileExists(fs::FS &fs, const char * filename) {
if(i<2){
s0.initCam(i)
s1.initCam((i+1)%3)
src(s0).mask(src(s0).hue(-.1).chroma().a().thresh(.3,.1)).scale(1,.7).out(o1)
src(s1).mask(src(s0).hue(-.1).chroma().a().thresh(.3,.1)).out(o2)
}else{
osc(20,0.1).modulate(noise(3),0.03).out(o1)
shape().rotate(0,1).out(o2)
}
/*
https://hydra.ojack.xyz/?sketch_id=AlV4FPHWLJISaFVf
*/
osc(4,0,2).modulate(solid(7))
.modulate(solid().layer(src(o1).color(.2,.2,.2))
.layer(src(o2).color(.5,.5,.5))
.layer(o3).sub(gradient()),1)
.out()
/*
https://hydra.ojack.xyz/?code=VyUzRHdpbmRvdyUwQW9zYyg0MCUyQyUyMDAuMSUyQyUyMDAuOCklMEEuc2NhbGUoMSUyQyUwQSUyMCUyMCgpJTNEJTNFVy5zY3JlZW4uYXZhaWxXaWR0aCUyRlcuaW5uZXJXaWR0aCUyQyUwQSUyMCUyMCgpJTNEJTNFVy5zY3JlZW4uYXZhaWxIZWlnaHQlMkZXLmlubmVySGVpZ2h0KSUwQS5tb2R1bGF0ZShzb2xpZCglMEElMjAlMjAoKSUzRCUzRShXLnNjcmVlblgpJTJGVy5zY3JlZW4uYXZhaWxXaWR0aCooVy5zY3JlZW4uYXZhaWxXaWR0aCUyRlcuaW5uZXJXaWR0aCklMkIuNSUyQyUwQSUyMCUyMCgpJTNEJTNFKFcuc2NyZWVuWSklMkZXLnNjcmVlbi5hdmFpbEhlaWdodCooVy5zY3JlZW4uYXZhaWxIZWlnaHQlMkZXLmlubmVySGVpZ2h0KSUyQi41KSUyQzEpJTBBLm91dCgpJTBBJTBBJTBBd3clM0R3aW5kb3cub3BlbiglMjJodHRwcyUzQSUyRiUyRmh5ZHJhLm9qYWNrLnh5eiUyRiUzRmNvZGUlM0RWeVV6UkhkcGJtUnZkeVV3UVc5ell5ZzBNQ1V5UXlVeU1EQXVNU1V5UXlVeU1EQXVPQ2tsTUVFdWMyTmhiR1VvTVNVeVF5VXdRU1V5TUNVeU1DZ3BKVE5FSlRORlZ5NXpZM0psWlc0dVlYWmhhV3hYYVdSMGFDVXlSbGN1YVc1dVpYSlhhV1IwYUNVeVF5VXdRU1V5TUNVeU1DZ3BKVE5FSlRORlZ5NXpZM0psWlc0dVlYWmhhV3hJWldsbmFIUWxNa1pYTG1sdWJtVnlTR1ZwWjJoMEtTVXdRUzV0YjJSMWJHRjBaU2h6YjJ4cFpDZ2xNRUVsTWpBbE1qQW9LU1V6UkNVelJTaFhMbk5qY21WbGJsZ3BKVEpHVnk1elkzSmx
/*
https://hydra.ojack.xyz/?code=VyUzRHdpbmRvdyUwQW9zYyg0MCUyQyUyMDAuMSUyQyUyMDAuOCklMEEuc2NhbGUoMSUyQyUwQSUyMCUyMCgpJTNEJTNFVy5zY3JlZW4uYXZhaWxXaWR0aCUyRlcuaW5uZXJXaWR0aCUyQyUwQSUyMCUyMCgpJTNEJTNFVy5zY3JlZW4uYXZhaWxIZWlnaHQlMkZXLmlubmVySGVpZ2h0KSUwQS5tb2R1bGF0ZShzb2xpZCglMEElMjAlMjAoKSUzRCUzRShXLnNjcmVlblgpJTJGVy5zY3JlZW4uYXZhaWxXaWR0aCooVy5zY3JlZW4uYXZhaWxXaWR0aCUyRlcuaW5uZXJXaWR0aCklMkIuNSUyQyUwQSUyMCUyMCgpJTNEJTNFKFcuc2NyZWVuWSklMkZXLnNjcmVlbi5hdmFpbEhlaWdodCooVy5zY3JlZW4uYXZhaWxIZWlnaHQlMkZXLmlubmVySGVpZ2h0KSUyQi41KSUyQzEpJTBBLm91dCgpJTBBJTBBJTBBd3clM0R3aW5kb3cub3BlbiglMjJodHRwcyUzQSUyRiUyRmh5ZHJhLm9qYWNrLnh5eiUyRiUzRmNvZGUlM0RWeVV6UkhkcGJtUnZkeVV3UVc5ell5ZzBNQ1V5UXlVeU1EQXVNU1V5UXlVeU1EQXVPQ2tsTUVFdWMyTmhiR1VvTVNVeVF5VXdRU1V5TUNVeU1DZ3BKVE5FSlRORlZ5NXpZM0psWlc0dVlYWmhhV3hYYVdSMGFDVXlSbGN1YVc1dVpYSlhhV1IwYUNVeVF5VXdRU1V5TUNVeU1DZ3BKVE5FSlRORlZ5NXpZM0psWlc0dVlYWmhhV3hJWldsbmFIUWxNa1pYTG1sdWJtVnlTR1ZwWjJoMEtTVXdRUzV0YjJSMWJHRjBaU2h6YjJ4cFpDZ2xNRUVsTWpBbE1qQW9LU1V6UkNVelJTaFhMbk5qY21WbGJsZ3BKVEpHVnk1elkzSmx
/*
https://hydra.ojack.xyz/?code=czAuaW5pdEltYWdlKCUyMmh0dHBzJTNBJTJGJTJGd3d3LmtobS5kZSUyRn5uLmhpZWRhJTJGTmFvdG8tSGllZGEuanBnJTIyKSUwQSUwQSUwQXNyYyhvMSkubW9kdWxhdGUoJTBBJTIwJTIwc3JjKHMwKS5icmlnaHRuZXNzKC0uNSklMkMwLjAwMyklMEElMjAlMjAubGF5ZXIoJTBBJTIwJTIwc3JjKHMwKS5tYXNrKHNoYXBlKDQlMkMwLjUlMkMwKS5zY2FsZSgxJTJDLjI0JTJDLjU0KS5zY3JvbGwoLjE5MiUyQy4yNCkpJTBBJTIwJTIwLm1vZHVsYXRlKCUwQSUyMCUyMCUyMCUyMG5vaXNlKDEwMCUyQzApLnJvdGF0ZShNYXRoLlBJJTJGMikudGhyZXNoKC4wJTJDLjUpLmJyaWdodG5lc3MoLS41KS5jb2xvcigxJTJDMCkucGl4ZWxhdGUoMSUyQzEwMCkpJTBBJTIwJTIwKS5vdXQobzEpJTBBJTBBJTJGJTJGJTIwc29saWQoMCUyQzAlMkMwKS5vdXQobzEpJTBBJTBBc3JjKHMwKS5sYXllcihzcmMobzEpLmx1bWEoMC4wMSUyQzApKS5vdXQoKSUwQQ==
*/
s0.initImage("https://www.khm.de/~n.hieda/Naoto-Hieda.jpg")
src(o1).modulate(
src(s0).brightness(-.5),0.003)
.layer(
src(s0).mask(shape(4,0.5,0).scale(1,.24,.54).scroll(.192,.24))
/*
https://hydra.ojack.xyz/?code=ZWwlM0QocyUyQ2IlMkNsKSUzRCUzRXNoYXBlKDk5JTJDcyUyQ2IpJTBBJTIwJTIwLm1vZHVsYXRlKCUwQSUyMCUyMGdyYWRpZW50KCkucGl4ZWxhdGUoMiUyQzIpJTBBJTIwJTIwLmJyaWdodG5lc3MoLS41KS5jb2xvcigwJTJDbCoyKSUwQSUyMCUyMC5sYXllciglMEElMjAlMjBncmFkaWVudCgpLmJyaWdodG5lc3MoLS41KSUwQSUyMCUyMC5jb2xvcigwJTJDMSkubWFzayhzaGFwZSgyJTJDbCUyQzApKSklMkMtMSklMEElMEFlbCguMSUyQy4xJTJDLjc1KSUwQSUyMCUyMC5zY3JvbGwoMCUyQy0wLjA1KSUwQSUyMCUyMC5hZGQoZWwoLjElMkMuMSUyQy4zKS5zY3JvbGwoMC4yJTJDMCkpJTBBJTIwJTIwLmFkZChlbCguMSUyQy4xJTJDLjEpLnJvdGF0ZSgtTWF0aC5QSSUyRjIpLnNjcm9sbCgwLjElMkMtMC4yKSklMEElMjAlMjAuYWRkKGVsKC4xJTJDLjElMkMuMykuc2Nyb2xsKC0wLjIlMkMtMC4xKSklMEElMjAlMjAuYWRkKGVsKC4xJTJDLjElMkMuMSkucm90YXRlKE1hdGguUEklMkYyKS5zY3JvbGwoLTAuMSUyQy0wLjMpKSUwQSUyMCUyMC5vdXQobzEpJTBBJTBBc29saWQoMSUyQy42JTJDMCkubXVsdChvc2MoMzAlMkMwKS5yb3RhdGUoMSkubW9kdWxhdGUob3NjKDIwJTJDMCklMkMuMDMpJTJDMC41KSUwQSUyMCUyMC5sYXllcihzcmMobzEpLm1vZHVsYXRlKGdyYWRpZW50KCkuZygpLmNvbG9yKC0xJTJDMCklMkMuMykucigpLmNvbG9yKDAlMkMwJTJDMCkpJTBBJTJGJTJGJTIwJTIwJTIwLmxheWVyKCU
/*
https://hydra.ojack.xyz/?code=VyUzRHdpbmRvdyUwQW9zYyg1MCUyQzApLnRocmVzaCgpLmthbGVpZCg0KS5yb3RhdGUoTWF0aC5QSSUyRjQpLmxheWVyKHNoYXBlKCkucigpLnJlcGVhdCg0JTJDNCkubXVsdChncmFkaWVudCgpKSklMEEuc2Nyb2xsKC0uNSUyQy0uNSklMEEuc2NhbGUoMSUyQyUwQSUyMCUyMCgpJTNEJTNFVy5zY3JlZW4uYXZhaWxXaWR0aCUyRlcuaW5uZXJXaWR0aCUyQyUwQSUyMCUyMCgpJTNEJTNFVy5zY3JlZW4uYXZhaWxIZWlnaHQlMkZXLmlubmVySGVpZ2h0KSUwQS5tb2R1bGF0ZShzb2xpZCglMEElMjAlMjAoKSUzRCUzRShXLnNjcmVlblgpJTJGVy5zY3JlZW4uYXZhaWxXaWR0aCooVy5zY3JlZW4uYXZhaWxXaWR0aCUyRlcuaW5uZXJXaWR0aCklMkIuNSUyQyUwQSUyMCUyMCgpJTNEJTNFKFcuc2NyZWVuWSklMkZXLnNjcmVlbi5hdmFpbEhlaWdodCooVy5zY3JlZW4uYXZhaWxIZWlnaHQlMkZXLmlubmVySGVpZ2h0KSUyQi41KSUyQzEpJTBBLm91dCgpJTBB
*/
W=window
osc(50,0).thresh().kaleid(4).rotate(Math.PI/4).layer(shape().r().repeat(4,4).mult(gradient()))
.scroll(-.5,-.5)
.scale(1,
()=>W.screen.availWidth/W.innerWidth,
()=>W.screen.availHeight/W.innerHeight)