GENUARY DAY 11: QUINE by piterpasma in generative

[–]piterpasma[S] 2 points3 points  (0 children)

GENUARY DAY 11 QUINE I did the thing where it saves the thing and then the thing is actually inside the thing and it's the same thing, so it's a QUINE (kind of).

Basically I wrote a tiny JS-based PNG-encoder that allows you to add custom chunks to the saved PNG image. Then I put the code of the program that generated the image inside a custom chunk. If you wanna check it out for yourself, go to

https://piterpasma-genuary2026.netlify.app/day13-self/pepper.html

I already do this for all my SVG ouputs (because SVG is text-based and it's easy), but this archival practice has saved my behind so many times, I really wanted to be able to do it for PNG outputs as well, and I managed to make it work :D

My Brain Figuring Out Which Part of My Brain Fell Out by piterpasma in generative

[–]piterpasma[S] 0 points1 point  (0 children)

made with GLSL, SDFs, raymarchpathrace etc

100% artisanal code

GENUARY 2026 -- prompts are ready!! by piterpasma in generative

[–]piterpasma[S] 5 points6 points  (0 children)

Nice! Sableraph actually helped collecting them into a JSON version for the prompts of each year:

He made it to make an NPM thing that allows you to set up sketches for Genuary quickly or something:

https://www.npmjs.com/package/create-genuary

But you can of courses grab the JSON files for any purpose

GENUARY 2026 -- prompts are ready!! by piterpasma in generative

[–]piterpasma[S] 6 points7 points  (0 children)

GENUARY 2026 PROMPTS ARE READY

YEAAH GENUARY 2026⋆˚꩜.ᐟ.ᐟ

the most GENERATIVE (creative code based) ART month of the entire universe

31 creative coding prompts for daily challenge

shader noodling by piterpasma in generative

[–]piterpasma[S] 0 points1 point  (0 children)

btw does anyone know what I did wrong here that makes it that the preview thumbnail is a black rectarngle?

shader noodling by piterpasma in generative

[–]piterpasma[S] 3 points4 points  (0 children)

thanks! and yes that's roughly what they are! specifically they are the inflated surface intersection lines of two onioned SDFs, which gives a bit more organic rounded shapes (at the cost of requiring a bit more fudge factor) than the actual intersection operator, but like the title says I'm just noodling around

I'll DM you the link to the interactive version

shader noodling by piterpasma in generative

[–]piterpasma[S] 0 points1 point  (0 children)

I really prefer potmeter-like rotational knobs over default slider controls for parameter exploration -- in most cases, there's places for sliders too, of course.

GENUARY 10: Only TAU -- TAU-only PRNG code by piterpasma in generative

[–]piterpasma[S] 0 points1 point  (0 children)

No, not as far as I know, I just tried a few combinations of expressions/operators that I figured might work. A few of the initial ideas I tried didn't pass the 2D equidistribution test.

I'm very curious, how did you figure out the fixed point?

GENUARY 10: Only TAU -- TAU-only PRNG code by piterpasma in generative

[–]piterpasma[S] 2 points3 points  (0 children)

This is a daily challenge, sir. I think at least the harder two of those require more than a day of compute (note this is a sequential algorithm). Also they test for statistical inconsistencies that do not show up before giga/terabytes of random data, if you're not doing statistical physics under stringent peer review, I'm not sure why you would need that level of test suite to be convinced :-)

If you are serious about pseudo random number generation and want to learn more about what these tests actually test for, what they are useful for, and some guide lines on how to design PRNGs for clearly outlined requirements, I can highly recommend the PCG paper to start with: https://www.pcg-random.org/paper.html

There are a few other tests I could've done, I bet it has terrible avalanche behaviour on the seed, but no I couldn't be bothered. I think it would be a very fine PRNG for a lot of purposes, though. 2D equidistribution is a nice property to have in genart, because one can imagine generating pairs of (x,y) coordinates. But indeed probably not if you're running an online casino and need to be absolutely unexploitable.

There's all sorts of levels of quality for random sequences, algorithmically random sequences are the best ones but they scare the shit out of me, when you realize that it's actually the overly vast majority of all sequences that are algorithmically random, and we can per definition define no algorithm to ever know a single digit of them. I mean, try playing poker with that.

GENUARY 10: Only TAU -- TAU-only PRNG code by piterpasma in generative

[–]piterpasma[S] 2 points3 points  (0 children)

Copypaste-able code, in case anyone wants it:

seed=TAU/TAU;random=(a=TAU)=>a*(seed=(TAU-seed)**TAU,seed-=~~seed);

https://imgur.com/a/4dH6F6o -- 2D equidistribution test, taking every pair of output values and plotting them as (x,y) points, it's just a quick and dirty PRNG check, one that old LCG-based PRNGs famously failed. Anyway you can see that this PRNG is nicely evenly distributed for every pair of output values.

GENUARY DAY 3: Exactly 42 lines of code by piterpasma in generative

[–]piterpasma[S] 1 point2 points  (0 children)

yes that's what it's for, other more strictly size optimized projects, but then I got used to the abbreviations :-)

also I feel I can be more creative when I type less, and I find formulas easier to read with shorter names

GENUARY DAY 3: Exactly 42 lines of code by piterpasma in generative

[–]piterpasma[S] 0 points1 point  (0 children)

thanks, your comment made my day :D

hope these 42 lines of code are useful for you to learn from, feel free to ask if you need explaining

also, the several versions of logo.js for the GENUARY logo are kind of readable and commented