Risto A. Paju
@algoristo.bsky.social
Algorithmic artist
http://algoristo.com/
http://algoristo.com/
Sierpinski triangles on an icosahedron, inspired by Ghee Beom Kim
#sierpinskitriangle #icosahedron #geometricart #fractal #fractalart #iteratedfunctionsystem #3dgraphics #raymarching #pythoncode #numpy #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati
#sierpinskitriangle #icosahedron #geometricart #fractal #fractalart #iteratedfunctionsystem #3dgraphics #raymarching #pythoncode #numpy #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati
October 22, 2025 at 10:53 PM
Sierpinski triangles on an icosahedron, inspired by Ghee Beom Kim
#sierpinskitriangle #icosahedron #geometricart #fractal #fractalart #iteratedfunctionsystem #3dgraphics #raymarching #pythoncode #numpy #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati
#sierpinskitriangle #icosahedron #geometricart #fractal #fractalart #iteratedfunctionsystem #3dgraphics #raymarching #pythoncode #numpy #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati
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.
September 30, 2025 at 10:41 AM
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.
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
#particlesimulation #elasticcollision #hookeslaw #bodycenteredcubic #facecenteredcubic #diamondlattice #lattice #crystalstructure #3dgraphics #pythoncode #numpy #opengl
September 28, 2025 at 2:04 PM
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
#particlesimulation #elasticcollision #hookeslaw #bodycenteredcubic #facecenteredcubic #diamondlattice #lattice #crystalstructure #3dgraphics #pythoncode #numpy #opengl
Deforming Apollonian spheres, again using some interesting math that Bluesky doesn't want me to explain in this limited space.
September 24, 2025 at 4:14 PM
Deforming Apollonian spheres, again using some interesting math that Bluesky doesn't want me to explain in this limited space.
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
However, it's possible to make valid gaskets using a lopsided configuration, where
September 23, 2025 at 12:53 PM
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
However, it's possible to make valid gaskets using a lopsided configuration, where
Another look at Apollonian spheres, cutting out the top half and showing a few iteration steps.
#apollonianspheres #apolloniangasket #iteratedfunctionsystem #inversion #sphereinversion
#apollonianspheres #apolloniangasket #iteratedfunctionsystem #inversion #sphereinversion
September 21, 2025 at 6:16 PM
Another look at Apollonian spheres, cutting out the top half and showing a few iteration steps.
#apollonianspheres #apolloniangasket #iteratedfunctionsystem #inversion #sphereinversion
#apollonianspheres #apolloniangasket #iteratedfunctionsystem #inversion #sphereinversion
Apollonian spheres
September 18, 2025 at 9:28 PM
Apollonian spheres
New implementation of the Apollonian Gasket iteration
September 16, 2025 at 1:44 PM
New implementation of the Apollonian Gasket iteration
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.
September 13, 2025 at 2:04 PM
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.
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.
For more explanation, you should see my posts on Instagram, Youtube, Facebook or Mathstodon where the posting limits are more sensible.
September 12, 2025 at 12:29 PM
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.
For more explanation, you should see my posts on Instagram, Youtube, Facebook or Mathstodon where the posting limits are more sensible.
Different views of iterating the Apollonian gasket
September 10, 2025 at 6:42 PM
Different views of iterating the Apollonian gasket
September 9, 2025 at 5:44 PM
Truncated octahedron Apollonian gasket
September 8, 2025 at 10:29 PM
Truncated octahedron Apollonian gasket
Another style for regular 2D Apollonian gaskets
#apolloniancircles #apolloniangasket #relief #emblem #geometricart #fractal #fractalart #raymarching #pythoncode #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati
#apolloniancircles #apolloniangasket #relief #emblem #geometricart #fractal #fractalart #raymarching #pythoncode #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati
September 5, 2025 at 11:47 AM
Another style for regular 2D Apollonian gaskets
#apolloniancircles #apolloniangasket #relief #emblem #geometricart #fractal #fractalart #raymarching #pythoncode #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati
#apolloniancircles #apolloniangasket #relief #emblem #geometricart #fractal #fractalart #raymarching #pythoncode #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati
Apollonian gaskets based on Platonic solids. The vertices of a tetrahedron/octahedron/icosahedron are used for the centre positions of the initial circles.
September 2, 2025 at 5:30 PM
Apollonian gaskets based on Platonic solids. The vertices of a tetrahedron/octahedron/icosahedron are used for the centre positions of the initial circles.
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.
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.
August 31, 2025 at 11:08 PM
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.
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.
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
#apolloniancircles #apolloniangasket #geometricart #fractal #fractalart #biblicallyaccurateangels #weirdart #creepyart #horrorart
August 24, 2025 at 4:25 PM
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
#apolloniancircles #apolloniangasket #geometricart #fractal #fractalart #biblicallyaccurateangels #weirdart #creepyart #horrorart
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
#gasketcase
August 23, 2025 at 5:37 PM
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
#gasketcase
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
#halftoneart #gospercurve
May 19, 2025 at 10:53 AM
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
#halftoneart #gospercurve
Riemersma-like dithering using a Gosper curve and a boustrophedon on a hex lattice
May 15, 2025 at 11:24 AM
Riemersma-like dithering using a Gosper curve and a boustrophedon on a hex lattice
Riemersma-like dithering with various space-filling curves
May 10, 2025 at 5:49 PM
Riemersma-like dithering with various space-filling curves
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.
May 6, 2025 at 6:52 PM
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.
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.
As before, there's a roughly uniform tiling with an equal number of cells for comparison.
May 2, 2025 at 3:54 PM
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.
As before, there's a roughly uniform tiling with an equal number of cells for comparison.
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.
April 29, 2025 at 9:50 AM
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.
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
#beziercurve #hilbertcurve #planefillingcurve #spacefillingcurve #lineart #linedrawing #singlelinedrawing #pythoncode #opengl #geometryshader #algorithmicart #algorist #laskutaide #ittaide #kuavataide #iterati
April 27, 2025 at 7:23 PM
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
#beziercurve #hilbertcurve #planefillingcurve #spacefillingcurve #lineart #linedrawing #singlelinedrawing #pythoncode #opengl #geometryshader #algorithmicart #algorist #laskutaide #ittaide #kuavataide #iterati