new blog post summarizing the recent stuff on mating Julia sets that I've been playing with

mathr.co.uk/blog/2020-01-16_sl

Uploaded my code to visualize slow mating of quadratic polynomial Julia sets:
code.mathr.co.uk/mating

600 lines of C99, using OpenMP for parallelism. Some options are compile-time only for now (edit source to reconfigure).

Blog post coming soon...

Did try rotating the Riemann sphere so that the centers of the Julia sets are left and right in the frame instead of surrounding the top and bottom poles. But it didn't look as good, mainly because there was too much fine detail near the poles that got all smeary.

I had two bugs that cancelled each other out. The test for hemispheres should be |z| > 1.

To draw the filled-in Julia sets, calculate w = R z or w = R / z depending on hemisphere, and iterate w = w^2 + c (choice of c is hemisphere dependent) until escape or maximum iterations reached. Count the previous (z^2+a)/(z^2+b) stuff in the iteration count too.

Colour unescaped pixel by hue = arg(z - a) where a = (1-sqrt(1-4c))/2 is a fixed point (center of multiple arms).

To draw filaments in the Julia sets themselves (not just the interior) I think I need to compute derivatives w.r.t. screen-space. I have some dual-complex-number library code ready to go.

I might have the colours switched on that one, not sure. Using more colours would help diagnose the different periods.

I did one experiment with arg(z) and that eventually showed dynamics of components as they got pinched, but was very noisy near the equator, and wasn't consistent between adjacent frames (massive strobing).

Didn't yet figure out how to draw the Julia sets in the halves.

Here's airplane (period 3 island, black) vs kokopelli (north period 4 island, white).

Code is about 300 lines of C99 (uses _Complex).

I think I solved it!

Animated slow mating of p=-1+0i with q=-0.122+0.75i via inverting the pullback, which gives a series of functions like (az^2+b)/(cz^2+d); starting from the pixel coordinates in equirectangular projection I compute the initial z and apply all the collected functions in reverse order, colouring white if the final output |z| > R for some large R.

Next step will be trying to draw the Julia sets in the halves of the sphere.

Attempt at escape-time Apollonian gasket via circle inversions.

1/3 mated with 1/2->1/2-> towards Feigenbaum point.

Bit glitchy, some misconvergence in the slow mating algorithm perhaps, I guess when it is near parabolic? Not sure...

1/3 mated with 2/5 Julia plane and the corresponding nearby parameter planes. Equirectangular projection of the whole complex sphere.

"Airplane" mated with "Rabbit", animated.

The "Airplane" Julia set's parameter is at the nucleus of the period 3 island in the Mandelbrot set.

The "Rabbit" Julia set's parameter is moving around a circle inside the 1/3 bulb in the Mandelbrot set (radius = 0.707 relative to 1.0 at its boundary).

Mated Julia sets of 1/3 and 2/3 child bulbs of north period 4 island.

Worked on improving colour schemes a bit. Now the FragM quadratic polynomial mating visualisation of the final parameters (two complex numbers defining a rational function) has extra controls for period of each Julia set, and sliders for hue and brightness control (both center and range, the spread is done according to the periods).

I added "hot pixel" detection to the FragM buffer shader (out of gamut pixels are displayed bright red when activated) so I could manually reduce the overall exposure until pixels were no longer clipped in the linear-to-sRGB conversion. I divide by Rec.709 luma after HSV(hue,1,1) to RGB conversion, then multiply by the desired brightness, blues often get clipped if the exposure isn't reduced.

Cheritat's paper in the volume (as opposed to the preprint on arxiv) says

> The method for producing such a picture is interesting and will be explained in a forthcoming article; it does not work by computing the conformal map, but instead by pulling-back Julia sets by a series of rational maps.

"On The Notions of Mating"
Petersen, Carsten Lunde; Meyer, Daniel

Text in image description. The referenced "paper by Cheritat in this volume" is where I started this quest.

A remark in one of Arnaud Chéritat's papers on (paraphrased: "the actual algorithm to draw this stuff is in another paper in the present volume") after some digging led me to:
numdam.org/issues/AFST_2012_6_
Annales de la Faculté des sciences de Toulouse : Mathématiques Serie 6 : Volume 21 (2012) no. S5
Numéro Spécial à l’occasion du “Workshop on polynomial matings” 8-11 juin 2011, Toulouse

claude boosted

Apologies, I posted 2 days ago that the Call For Proposal for was open. Turns out we are not quite fully ready yet to accept your proposals. We do encourage you to start writing them already and will come back to you once the submission form is open. Thank you

math.univ-toulouse.fr/~cherita trying to figure out how these slow mating of quadratic Julia sets videos were made. Also "slow tuning" is pretty cool.

Show more
post.lurk.org

Hometown is adapted from Mastodon, a decentralized social network with no ads, no corporate surveillance, and ethical design.