Spend a month making one beautiful thing per day, given a bunch of prompts. A month late, but as they say, ’the second best time is now'.
Let’s do it!
20) Art Deco
Wikipedia: Art Deco
let params = {
starCount: 10,
starPoints: 20,
starInnerRadius: 2,
starInnerRadiusFlux: 4,
starOuterRadius: 16,
starOuterRadiusFlux: 4,
}
const MAN_DANCING = '🕺';
const WOMAN_DANCING = '💃';
function setup() {
createCanvas(400, 400);
frameRate(1);
}
function draw() {
background(0);
translate(200, 200);
withPush(() => {
let r1 = params.starInnerRadius;
let r2 = params.starOuterRadius;
let r1dMax = params.starInnerRadiusFlux;
let r2dMax = params.starOuterRadiusFlux;
for (let i = 0; i < params.starCount / 2; i++) {
let x0 = random(width / 2);
let y = random(-height / 2, height / 2);
for (let x of [-x0, x0]) {
stroke("#EEBC1D");
noFill();
for (let j = 0; j < params.starPoints; j++) {
let a = random(TWO_PI);
let r1d = random(r1dMax);
let r2d = random(r2dMax);
let x1 = x + (r1 + r1d) * cos(a);
let y1 = y + (r1 + r2d) * sin(a);
let x2 = x + (r2 + r2d) * cos(a);
let y2 = y + (r2 + r2d) * sin(a);
line(x1, y1, x2, y2);
}
}
}
});
withPush(() => {
doArtDeco(drawRandomBuilding);
});
withPush(() => {
doArtDeco(drawTitleBackground);
noStroke();
fill("black");
textFont("sans-serif");
textAlign(CENTER);
textSize(38);
scale(0.5, 2);
translate(0, 15);
text("GENUARY 2023.20 ART DECO", 0, 0);
});
}
function doArtDeco(thunk) {
withPush(() => {
noStroke();
noFill();
stroke("#EEBC1D");
scale(1.1);
thunk();
scale(0.98, 0.95);
thunk();
scale(0.98, 0.95);
noStroke();
fill("black");
thunk();
fill("#EEBC1D");
scale(0.98, 0.95);
thunk();
fill("black");
scale(0.98, 0.95);
thunk();
fill("#EEBC1D");
scale(0.98, 0.95);
thunk();
});
}
function drawRandomBuilding() {
let h = 400;
let w = 100;
for (let level = 0; level < 3; level++) {
rect(0, -h/4, w, h);
rect(0, -h/4, -w, h);
h *= 1.0 + random(0.2);
w *= 1.0 - random(0.2);
}
circle(0, h, 50);
}
function drawTitleBackground() {
rectMode(CENTER);
rect(0, 0, 300, 100);
rect(0, 0, 325, 50);
withPush(() => {
translate(0, -50);
circle(0, 0, 50);
});
withPush(() => {
translate(0, 50);
withPush(() => {
shearX(1);
translate(-50, 0);
rect(0, 0, 100, 50);
});
withPush(() => {
shearX(-1);
translate(50, 0);
rect(0, 0, 100, 50);
});
})
}
function withPush(thunk) {
push();
thunk();
pop();
}
Posts in Genuary 2023:
- Genuary 2023.01: Perfect loop
- Genuary 2023.02: Made in 10 minutes
- Genuary 2023.03: Glitch art
- Genuary 2023.04: Intersections
- Genuary 2023.05: Debug view
- Genuary 2023.06: Steal like an artist
- Genuary 2023.07: Sample a color palette
- Genuary 2023.08: Signed Distance Functions
- Genuary 2023.09: Plants
- Genuary 2023.10: Generative Music
- Genuary 2023.11: Suprematism
- Genuary 2023.12: Tessellation
- Genuary 2023.13: Something you've always wanted to learn
- Genuary 2023.14: Asemic Writing
- Genuary 2023.15: Sine Waves
- Genuary 2023.16: Reflections of a Reflection
- Genuary 2023.17: A grid inside a grid inside a grid
- Genuary 2023.18: Definitely not a grid
- Genuary 2023.19: Black and white
- Genuary 2023.20: Art Deco
- Genuary 2023.21: Persian Carpet
- Genuary 2023.22: Shadows
- Genuary 2023.23: Moiré
- Genuary 2023.24: Textile
- Genuary 2023.25: Yayoi Kusama
- Genuary 2023.26: My kid could have made that
- Genuary 2023.27: In the style of Hilma Af Klint
- Genuary 2023.28: Generative poetry
- Genuary 2023.29: Maximalism
- Genuary 2023.30: Minimalism
- Genuary 2023.31: Break a previous image