Prompt: Black on black.
(I deliberately skipped Prompt 3, "Exactly 42 lines of code." which seemed both too constricting and not constricting enough.)
Prompt: Black on black.
(I deliberately skipped Prompt 3, "Exactly 42 lines of code." which seemed both too constricting and not constricting enough.)
A black on black non-intersecting "line" rendered in black and white in cross-eyed stereo.
#genuary #genuary2025 #genuary4 #genuary14 #genuary25
#AlgorithmicArt #CreativeCoding
#Processing #glsl #shaders
#Genuary4 prompt:
Black On Black
https://openprocessing.org/sketch/2500404
I didn't really want to do something too dark, and I recalled how crows are pure black but have some iridescence in their feathers. Then a photographer I follow, @studiochris serendipitously posted a great photo of a crow (https://sfba.social/@studiochris/113773172447656669), so I had to try making a generative system from it. It's still pretty abstracted, but it has some fun details.
Code at: https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_01_04
More sketch-a-day: https://abav.lugaralgum.com/sketch-a-day
If you like this, support my work: https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724 #Processing #Python #py5 #CreativeCoding #genuary2025 #genuary4
Geneuary 2025 Prompt for Day 4: "Black on black."
https://www.patreon.com/posts/genuary-2025-day-118332400
https://ko-fi.com/Post/InkyDays-January-2025-X7X018BMT2
#Genuary4
"Black on Black"
Black triangles are drawn on top of each other, and on top of a black background using XNOR logic
Code: https://codeberg.org/TomLarrow/creative-coding-experiments/src/branch/main/x_0100/x_0151
I probably could have done this easier other ways, but it let me dive into using logic gates in Numpy
Prompt: Black on black.
Sorry, not sorry. This interpretation just seemed like the most natural thing to do.
Made with #PyScript:
https://ambv.pyscriptapps.com/genuary-prompt-4/latest/
#genuary4 prompt: black on black
The very black image is what I actually coded in Facet. The other image shows that if you increase the brightness and contrast of the first image, there are 10 different layers of black squares in it. They are the 10 darkest blacks, layered on top of each other.
Genuary 2025, day 4: Black on black.
#genuary #genuary2025 #genuary4
#genuary4 #genuary2025 #genuary #python
# "Black on black."
# To view: "ffplay -framerate 60 -loop 0 b%04d.png"
import numpy as n,PIL.Image as I
W=720
y,x,_=n.mgrid[:W,:W,:3]/W-.5
r=(x*x+y*y)**.5
c=60*9
w=200
m=0.97
s1=m/(c+w)
s2=m/c
for i in range(c):
j=(i+300)%c
a=(-j*s2)%m
b=((-j-w)*s1)%m
g=1/(a-b+1e-6)
l=1-(r-b)*g
f=((r<a)&(r>b))*l
I.fromarray((255*f).astype('B')).save(f"b{i:04d}.png”)
#genuary4 - "Black on black"
An elliptical black hole on a black background. As coloured particles get created and shot across the canvas they are pulled into the hole and their brightness sucked out of them.
"Pixelosis"
Since #genuary4 prompt is "pixels" the best way to show them is by serious upscaling of sprites. Here's a #winter Outrun-like #tweetcart
#genuary4 #genuary #pico8 #generative #codeart #sizecoding #pixelart
for i=0,999do
x=rnd(i/40)-i/90c=3if(i>799)x/=9c=1
sset(x+9,i/30,c+i%4)end::_::?"\^1\^cc\^!5f11█░3
"
for i=2,63do line(0,i+64,127,i+64,(28/i+t())%2+6)end
j=t()*4for k=40,1,-1do
i=k-j%1x=(cos((k+j\1)/9)+.3)*4^6z=i*9+9s=600/z
sspr(0,0,32,40,x/z+64-2*s,64-3*s,4*s,6*s)end
goto _
#genuary4 Pixels
https://editor.p5js.org/chrisamaphone/sketches/NxFcdGb2g
went with 90s nostalgia for lite-brites. could play around with this for rendering various grid animations like CAs, but right now it just randomly replaces a pixel on each iteration (color -> empty, empty -> random color).
probably the most interesting part was deciding what colorspace to use for the circular gradients. i went with HSL, but then that meant white had to be a special case
#Genuary4 Pixels. I just couldn't resist the temptation. Optimizing it to render in real-time was a struggle, but I really like the end result. (I hope I'm your first of the year, please tell me I am)
For #genuary4 "Pixels" a generator for the traditional embroidery of Siwa Oasis
The symbols are hand drawn at 32 or 16 pixel squares in the TIC-80's "sprite sheet" and then picked for re-use with `math.random`; a couple of values in the palette map are also swapped at random. Generates one image per run, video shows hitting Ctrl-R over and over
Nothing needs to be algorithmically complex, swooshily involved, or technically impressive, as long as you like it, #genuary
$('gen4')
.iter(12, () => {
this.append(_.noise(2048)
.scale(0.5, 1)
.saheach(Math.pow(2, i))
.dup(Math.pow(2, i) - 1))
})
.saveimg('gen4' + rf(), [_.iter(12, () => {
this.append(_.noise(2048)
.scale(0.5, 1)
.saheach(Math.pow(2, i))
.dup(Math.pow(2, i) - 1))
}), _.iter(12, () => {
this.append(_.noise(2048)
.scale(0.5, 1)
.saheach(Math.pow(2, i))
.dup(Math.pow(2, i) - 1))
}), _.iter(12, () => {
this.append(_.noise(2048)
.scale(0.5, 1)
.saheach(Math.pow(2, i))
.dup(Math.pow(2, i) - 1))
})], 2048, 2048)
.once();
Genuary 2023 prompt "Intersections" ...
#genuary4: Intersections
I'm falling behind, and I'm too busy to catch up! But I'm also still having fun, so I'll find a way to do some more prompts soon :)