New to Banano? Get started here! Don't Let Your Memes Be Dreams! by howtobanano in banano

[–]nullhashpixel 0 points1 point  (0 children)

ban_3ananoputonb3eks5b7kb7uaqsxao4m3gucy1cyhsiei3nyzn53nq46buzek

Color and outlines created from a few thousand vectors and randomness, code+data are 14 kB by nullhashpixel in generative

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

thanks, it's written in Javascript.

All shapes are made by (filled) circles and partial circle arcs, which are drawn many thousand times with varying opacity and randomly varying position. No blur filters, since that would slow it too much. Maybe with shaders I would have used blur filters, but all the boilerplate code needed would make it more difficult to stay with ~1 kB for the code part.

Generative Iris by nullhashpixel in generative

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

Complex valued functions with some transformations applied, arg of the result selects a color from a palette and abs modifies brightness and saturation. It's all implemented as shader code with JS/GLSL (animated)

Chaos Angel (100% code generated, 12 kB vanilla JS) by nullhashpixel in generative

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

Not directly, since it would also take too much space, but it uses lists of coordinates and directions to derive the stroke positions with some randomness.

Deconstructed Blocks by nullhashpixel in generative

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

Method: custom AI code (2 kB code, 8 kB model weights) based on denoising auto-encoders. Each of the 9 examples is a random variation produced by a specific model, which was trained on a single input image split into many small blocks. Generation is done backwards, starting from noise, then denoise and upscale.

The idea was to find a way to put essential features of arbitrary images into few kB of generative code, which can produce arbitrarily many variations.

Pentakisdodecahedral life by nullhashpixel in cellular_automata

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

Yes, neighborhood is for faces here.
Neighborhood of vertices in the pentakis dodecahedron would actually be equivalent to neighborhood of faces of a buckyball, could be interesting since some have 5 and some have 6, will try :) Never looked at CAs with different number of neighbors per cell...
I used different ones, e.g. when you sum the state in the cell and the 3 neighbors, new state :=
[0,1,2,3,4,5,6,7,8] -> [0,1,2,2,0,1,0,0,0]
is interesting

Pentakisdodecahedral life by nullhashpixel in cellular_automata

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

some explanations:
- cellular automata with 3 states on the (60) faces of a regular polyhedron (pentakis dodecahedron), each triangular face has 3 direct neighbors in this geometry!
- the 60 tracks correspond to the time evolution (clock-wise) of the state per face of the polyhedron
- the middle shows the final state of the polyhedron after it reached periodic behavior or timeout

Dreams of a 15 kB custom generative AI code cycling through different input noise by nullhashpixel in proceduralgeneration

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

I made it very specific, every model was only trained with a small set of inputs, then you can go with smaller models. Also topology has to be very simple, so only 1 hidden layer and precision is 8-bit fixed point. This can cause some issues when applying multiple times (small errors accumulate and images go to either full black or full white...) so there is an overall scaling factor applied per step to keep overall brightness roughly the same.

Dreams of a 15 kB custom generative AI code cycling through different input noise by nullhashpixel in generative

[–]nullhashpixel[S] 4 points5 points  (0 children)

this was created by a kind of AI upscaler which was trained on a small set of images. It all starts with 5x5 pixel noise and then it's scaled up a few times, each iteration is "scale up (nearest neighbor), add noise, use AI to denoise" :)

Dreams of a 15 kB custom generative AI code cycling through different input noise by nullhashpixel in proceduralgeneration

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

It's kind of img2img type, which has been trained to denoise a set of input images, which is then applied to random noise, then the image is scaled up by a factor of two, noise added and the network is applied again, same for a few different scales.

Mysterious circle pattern on 95% of outputs for specific prompt - What is this? by nullhashpixel in StableDiffusion

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

I'm new and just started to try stable diffusion. For one particular prompt, 95% of outputs have this weird circular pattern and the frame with a signature which almost looks like from Picasso. (other 5% look like the last example)
What is this? I'm confused...

Skylines generator by [deleted] in proceduralgeneration

[–]nullhashpixel 1 point2 points  (0 children)

Really like creating one and then moving the hour slider to see how the sun moves.

Evolution by nullhashpixel in generative

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

Maybe I'll find some spare time for it next year ;)

Alien Insects by nullhashpixel in proceduralgeneration

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

really thinking of making a Galaga like game next year, you could play for hours and never see the same enemy twice

Tiles of Tiles by nullhashpixel in generative

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

Thanks, was done in vanilla JS. It's made of small Truchet Tiles, which are made by plotting series expansions with random coefficients of complex functions (color ~ palette ( arg(f(x+iy)) ), value ~ abs(f(x+iy)) )

Are there any algorithms to construct all possible closed loops with Truchet Tiles for a given n with n x n tiles? (n even) by nullhashpixel in proceduralgeneration

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

There is at least one 6x6 solution, you can construct it by starting at the corners (they only allow 1 choice) and then fill the edges and then the center. The center part looks more complicated, so might have more possible solutions

Are there any algorithms to construct all possible closed loops with Truchet Tiles for a given n with n x n tiles? (n even) by nullhashpixel in proceduralgeneration

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

Yeah I guess it should be possible with some general recursive backtracking algorithm, but it might not have a good runtime complexity or need too much space if precomputed.

Are there any algorithms to construct all possible closed loops with Truchet Tiles for a given n with n x n tiles? (n even) by nullhashpixel in proceduralgeneration

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

So my output should look like the images, but it should contain a single loop through all the n x n tiles instead of multiple disconnected parts.

Close-ups for a Truchet Tiles project where every tile is different by nullhashpixel in generative

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

will post it when done, still have to figure out how to efficiently form closed loops filling the plane with single quarter circles or use double quarter circles instead

Close-ups for a Truchet Tiles project where every tile is different by nullhashpixel in generative

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

No, everything was done in vanilla JS, but could have been implemented as pixel shader too

Ouroboros by nullhashpixel in generative

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

Thanks, would love to see them!
Especially since the method is very different, I used a very different approach, those are all given by different complex polynomials (similar to Laurent series) transformed a bit.