Risto A. Paju
@algoristo.bsky.social
41 followers 34 following 49 posts
Algorithmic artist http://algoristo.com/
Posts Media Videos Starter Packs
algoristo.bsky.social
Another blow-up view of the Apollonian spheres, now dropping on a concave surface to gather all the jetsam together. This is what I had in mind when writing the first drop demo, and the model just needed a bit of refinement for the differently sized balls.
algoristo.bsky.social
New demo just dropped! Testing a basic elastic model with blocks of FCC, BCC and diamond lattice.

#particlesimulation #elasticcollision #hookeslaw #bodycenteredcubic #facecenteredcubic #diamondlattice #lattice #crystalstructure #3dgraphics #pythoncode #numpy #opengl
algoristo.bsky.social
Deforming Apollonian spheres, again using some interesting math that Bluesky doesn't want me to explain in this limited space.
algoristo.bsky.social
Making Apollonian gaskets usually follows a key rule of iterated function systems: each iteration should make the thing smaller. With inversions, this means going from the outside to the inside of inverting circles.

However, it's possible to make valid gaskets using a lopsided configuration, where
algoristo.bsky.social
Another look at Apollonian spheres, cutting out the top half and showing a few iteration steps.

#apollonianspheres #apolloniangasket #iteratedfunctionsystem #inversion #sphereinversion
algoristo.bsky.social
New implementation of the Apollonian Gasket iteration
algoristo.bsky.social
2D circle inversion fractals on the spherical surface. This was a fun offshoot of my recent Apollonian endeavours, again using the Riemann sphere mapping to go from 3D to 2D for the iterations.
algoristo.bsky.social
Apollonian gaskets via circle inversion.

For more explanation, you should see my posts on Instagram, Youtube, Facebook or Mathstodon where the posting limits are more sensible.
algoristo.bsky.social
Different views of iterating the Apollonian gasket
algoristo.bsky.social
Is it that time of the year yet?

#pumpkincarving #sierpinskitriangle
algoristo.bsky.social
Truncated octahedron Apollonian gasket
algoristo.bsky.social
Another style for regular 2D Apollonian gaskets

#apolloniancircles #apolloniangasket #relief #emblem #geometricart #fractal #fractalart #raymarching #pythoncode #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati
algoristo.bsky.social
Apollonian gaskets based on Platonic solids. The vertices of a tetrahedron/octahedron/icosahedron are used for the centre positions of the initial circles.
algoristo.bsky.social
Riemann sphere mappings of Apollonian gaskets.

Since my 2D gaskets are fitted to the unit circle, they cover exactly half of the Riemann sphere, as seen in the first part. My lazy solution to covering the entire sphere was a simple copy-paste, and the result doesn't seem too bad.
algoristo.bsky.social
Another look at the Apollonian gasket. This shows that the process doesn't use simple inversion, since that would distort the image within each disc.

#apolloniancircles #apolloniangasket #geometricart #fractal #fractalart #biblicallyaccurateangels #weirdart #creepyart #horrorart
algoristo.bsky.social
Back to basics: I made an Apollonian gasket generator based on Descartes' theorem, as explained on Wikipedia. The method involves some nontrivial details on the choice of +/- signs, which I had to figure out on my own.

#gasketcase
algoristo.bsky.social
Testing the Gosper curve in my variable iteration halftoning setup. So far I've only used the Hilbert curve this way, and things get a bit coarser with the Gosper, so it was harder to find images that make nice results. So here we are with the old Venus again.

#halftoneart #gospercurve
algoristo.bsky.social
Riemersma-like dithering using a Gosper curve and a boustrophedon on a hex lattice
algoristo.bsky.social
Riemersma-like dithering with various space-filling curves
algoristo.bsky.social
Yet another optimized Voronoi tiling. Instead of the equal-sum partitions, this uses regular dithering to find the Voronoi seed points, and the tile areas are inversely proportional to the colour values.
algoristo.bsky.social
I wanted to make the optimized tiling look more organic, and I've already played with Voronoi diagrams quite a lot. But this turned out a bit more messy than expected.

As before, there's a roughly uniform tiling with an equal number of cells for comparison.
algoristo.bsky.social
Another visual refinement to a recent demo: adding seams to the optimized tiling scheme. While it breaks the mosaic illusion to some extent, I think it makes the tile sizing idea much clearer. As before, there's a uniform variant with the same number of tiles for comparison.
algoristo.bsky.social
How it was supposed to look like in the first place: rounded with Bezier curves.

#beziercurve #hilbertcurve #planefillingcurve #spacefillingcurve #lineart #linedrawing #singlelinedrawing #pythoncode #opengl #geometryshader #algorithmicart #algorist #laskutaide #ittaide #kuavataide #iterati
algoristo.bsky.social
The recent stipplings and partitionings reminded me of this demo from about 2 years ago. In short, it's a Hilbert curve where the iteration level varies by the colour value. I wanted to make some small changes, but I ended up rewriting it completely.