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.

The inversion circle centres come from a tetrakis hexahedron and a triakis icosahedron, so the circles form approximations of a truncated octahedron and a truncated dodecahedron.

#apolloniancircles #apolloniangasket #inversion #circleinversion #riemannsphere #geometricart #fractal #fractalart #pythoncode #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati

The set of polyhedra that can be converted into Apollonian gaskets via sphere-plane mapping is quite limited. The face polygons should be regular, the edge midpoints should all lie on the same sphere, and the vertices should be 3-fold. There are some Platonic solids that work, and I've showed all of these earlier. It turns out that Archimedean solids with 3-fold vertices work too. So here's a truncated octahedron, also showing a progressive view of the gasket iteration.

#apolloniancircles #apolloniangasket #riemannsphere #archimedeansolid #truncatedoctahedron #geometricart #fractal #fractalart #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. These are Riemann-sphere-mapped to the complex plane, where the gasket is iterated for more circles, and the result is mapped back onto the sphere. It's a little roundabout, but it works for me, and the heaviest part by far is drawing the visuals.

#apolloniancircles #apolloniangasket #riemannsphere #complexmath #platonicsolid #geometricart #fractal #fractalart #pythoncode #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati

Riemann sphere mappings of Apollonian gaskets. After the 2D gaskets, I'd been thinking of some kind of 3D versions for a while, but the final inspiration came from Antti Immonen's sculptures I saw on Friday at the opening of his exhibition here in Jyväskylä. As a real-life sculptor who incorporates fractals and other math ideas in his works, he's a pretty rare specimen at least by national standards.

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.

#apolloniancircles #apolloniangasket #riemannsphere #complexmath #geometricart #fractal #fractalart #pythoncode #opengl #algorithmicart #algorist #mathart #laskutaide #ittaide #kuavataide #iterati

Working on my #FractalFlame renderer.

Better #DensityEstimation, doing it with linear histograms instead of logarithmic makes it work with "keep doubling" batch sizes instead of having to do it every small constant batch size. This sped up one test from 18s to 12s.

Also proper #BézierCurve interpolation of the #MoebiusTransformation via #Slerp of multiplier and two fixed points on the #RiemannSphere, remembering that additional #ControlPoints are needed and the curve passes through only every third point. The additional points are generated from approximated derivatives at the points where the curve passes through. Animation speed is normalized: parameter found by binary search in a precomputed array of approximate arc lengths.

Also #AutoWhiteBalance copy/pasted from GIMP, only the first frame is analysed and the resulting bounds are applied to all frames, to avoid strobing from independent frames (better would be to analyse the whole video, but storage is probably a bit of an issue for that).

Also #MotionBlur by accumulating discrete subframes of 1-sample-per-pixel each into the histogram, I think the video has 256 samples per pixel total.