Christmas Lights
I had made this C# poem about Christmas, and lights shorting. It is human readable.
/* . * * *. * . * .. . __ * . * . */
using System.Linq;//ing tiny bulbs in circuit;
class icSceneOf : ChristmasStringLights
{
string ingALiveWire, inMyHand = "&& pray that it all lights";
dynamic lights, ladder = "&& the still of a winter's night";
short detected;
static short edNowNoLights;
class icWinterStringLights : ChristmasStringLights {
// (I'm whispering to myself, pleading) :
(Light, Light, short) PleaseLight() {
Light[] inMyHands = {new Light()};
this.PleaseLight();
Light.Hum(); //!
Light.Sing(); //!
short? detected;
// so
foreach(Light? thatIs in inMyHands) {
string.Join('*', new Light().ToString());
inMyHands.Where(eachLight => eachLight.ToString() is "unlit");
if(Light.Hum() && Light.Sing()) {
continue;
}
}
new Light();
int erwovenLights; // Now sing!
int winedWithMe; // I sing!
dynamic humming;
dynamic bright;
// at last, altogether we
return (new Light(), new Unlight(), 0);
// fuck, whole house dark
}
}
}
class Light {
public override string ToString() {
return "-*-";
}
public static bool Hum() { return true ;}
public static bool Sing() { return true ;}
}
class Unlight : Light { }
class ChristmasStringLights {}
/* . * * *. * . * .. . __ * . * . */
Infinite falling Astronaut
https://jsbin.com/cosowabubu/1/edit?html,css,js,output
Riley Sketch
function setup() { createCanvas(900, 900); for (let i = 0; i < 40; i++) { if (i > 10 && i < 26) { wavesarr.push(new Wave(i * 50, map(i * 55, 0, 2200, 0, 255) - random(i))); } else { wavesarr.push(new Wave(i * 50, random(30, 40))); } } } function draw() { background(240, 234, 214); wavesarr.forEach(wave => { wave.calculate(); wave.render(); }); } class Wave { constructor(h, a) { this.alpha = a ?? 150; this.xspacing = 5; this.w; this.theta = 0.0; this.amplitude = 40.0; this.period = 350.0 + random(3); this.dx; this.yvalues; this.h = h; this.w = width + 16; this.dx = (TWO_PI / this.period) * this.xspacing; //this.dx = (TWO_PI / this.period) * this.xspacing + random(10); this.yvalues = new Array(floor(this.w / this.xspacing + random(10))); } render() { noStroke(); fill(0, 0, 0, this.alpha); for (let x = 0; x < this.yvalues.length; x++) { ellipse(x * this.xspacing, this.h / 2 + this.yvalues[x], 12, 12); } } calculate() { this.theta += 0.02; let x = this.theta; for (let i = 0; i < this.yvalues.length; i++) { this.yvalues[i] = sin(x) * this.amplitude; x += this.dx; } } }
Row Expanding Canvas
let baseRows = 1;
function setup() {
createCanvas(600, 600);
noStroke();
frameRate(10);
}
function draw() {
background(0);
let totalRows = baseRows;
let unitSize = height / totalRows;
for (let y = 0; y < totalRows; y++) {
let startX = 0;
let firstColor = (y % 2 === 0) ? color(20, 60, 60) : color(30, 90, 90);
let secondColor = (y % 2 === 0) ? color(30, 90, 90) : color(20, 60, 60);
let extension = y + 1;
fill(firstColor);
rect(startX, y * unitSize, extension * unitSize, unitSize);
startX += extension * unitSize;
let tgl = false;
while (startX < width) {
fill(tgl ? firstColor : secondColor);
rect(startX, y * unitSize, unitSize, unitSize);
startX += unitSize;
tgl = !tgl;
}
}
baseRows += 1; // Increase complexity over time
if(baseRows === 200) {
baseRows = 1;
}
}
Note
Curious thing about this. On my display, an emergent apparent moire pattern appears from the the application of actually existent squares. It’s a strange effect, feeling hyperdimensional, despite being a simple sketch.