### towards a language for Julia morphing

• 23 Replies
• 1662 Views

0 Members and 1 Guest are viewing this topic.

• 3f
• Posts: 1154

#### towards a language for Julia morphing

« on: November 02, 2017, 10:41:31 PM »
This is a follow-up to Dinkydau's post about a language for Julia morphing in this thread about neural networks and deep learning:

https://fractalforums.org/fractal-mathematics-and-new-theories/28/speeding-up-deep-zooming-using-neural-networks-deep-learning/395/msg2141#msg2141

A natural way of defining which part of an embedded Julia set you want to zoom to is by using wakes.

A hyperbolic component is a disc-like or cardioid-like region of the Mandelbrot set.  Each hyperbolic component has a nucleus where the orbit of 0 returns to 0 after p iterations, p is called its period.   There is a bidirectional mapping between the exterior of the Mandelbrot set and the exterior of the unit disc, external rays are the images under this mapping of straight lines from the unit disc to infinity (that would also pass through the origin if extended).  Each external ray has a corresponding external angle, which is the counterclockwise angle the straight line makes with the positive real axis.  The external angle is usually measured in turns (1 is the whole circle), and expressing it as a binary expansion shows interesting properties.

Rational angle's rays land on the boundary of the Mandelbrot set.  Each hyperbolic component has 2 rays landing on its root.  (The period 1 cardioid can be taken to have rays at angles 0 and 1, all other rays have angles strictly between 0 and 1.) The binary expansion of these rays is periodic with the same period as the period of the hyperbolic component's nucleus.  A wake is defined by the pair of external rays landing on the root of a hyperbolic component - the complex plane is divided into two parts, one containing the origin, and the other containing the hyperbolic component.  The part containing the hyperbolic component is the wake.

In an embedded Julia set there is one nucleus of the next higher (in increments of the parent island's period) period either side of the wake - one further out towards the tips, the other further in towards the origin (and thus the main body of the Mandelbrot set).  The attached images illustrate this, I verified that this binary division property holds for two embedded Julias.

This isn't quite the whole story though: here out really means going beyond the tip of the antenna of the minibrot.  When zooming in (the blue image attached) to 4-fold symmetry (in the middle of this embedded Julia set) you can also go left and right.  An elegant way of handling this is via internal angles: right turns out to be in the wake of the period 3P bulb at 1/3, and left the period 3P bulb at 2/3 of a period P cardioid.  So out could be renamed "1/2", and this can be formalized to give angled internal addresses, see this paper: https://arxiv.org/abs/math/9411238  The only wart is that "in" isn't used in angled internal addresses, so they can sometimes end up with a somewhat unintuitive formulation: 1 1/2 2 1/2 3 1/2 4 out would be 1 1/2 2 1/2 3 1/2 4 1/2 5, but 1 1/2 2 1/2 3 1/2 4 in would be 1 1/2 2 1/2 3 1/2 5.

Finally, I have an online web app that allows you to explore external angles and angled internal addresses, among other things: https://mathr.co.uk/mandelbrot/web/

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #1 on: November 03, 2017, 06:27:31 AM »
Tree

Dinkydau's rule: INIT skip

My wake-based rules for this example with a 3-fold spiral, starting from the embeded Julia set with P=89, influencing parent island p=3, new period replacing P in parentheses:

first step: either OIII (P+4*p) or IOIO (P+4*p)
later steps: either L (2*P+p) or R (2*P+p)
« Last Edit: November 05, 2017, 05:29:10 PM by claude, Reason: clarification of rules »

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #2 on: November 05, 2017, 06:42:19 PM »
Tree (longer arms)

Dinkydau's rule: INIT skip^(armLength)

Wake rule for armlength 2 (period at center P, period of influencing island p=3, threefold spirals in Julia set):
first step: OIIIO (P+5*p) or IOIOO (P+5*p)
later steps: LO (2*P+2*p) or RO (2*P+2*p)

Conjectured wake rule for armlength L (period at center P, period of influencing island p)
first step: ?
later steps: L(O^{L-1}) (2*P+L*p) or R(O^{L-1}) (2*P+L*p)

Example angled internal address: $$1_\frac{1}{2}\to 2_\frac{1}{2}\to 3_\frac{1}{3}\to 9_\frac{5}{6}\to 46_\frac{1}{2}\to 47_\frac{1}{2}\to 53_\frac{1}{2}\to 56_\frac{1}{2}\to 59_\frac{1}{3}\to 121_\frac{1}{2}\to 124_\frac{1}{3}\to 251_\frac{1}{2}\to 254_\frac{1}{3}\to 511_\frac{1}{2}\to 514$$
Example expanded wake rule IOIOORORORO

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #3 on: November 06, 2017, 10:30:21 PM »
This short program succesfully navigates from the center of an embedded Julia set to a nucleus 2 spirals out in the direction you would take to make a tree.

Code: [Select]
#include <stdio.h>#include <mandelbrot-numerics.h>int main(){  int n = 64;  double _Complex c = -1.7687402565964134e+00 + I * 3.0387357058642636e-03;  int p = 3; // influencing island  int P = 56; // focus period  int arms = 2; // number of spiral arms  // period 56 nucleus at center  m_d_nucleus(&c, c, P, n);  // a  m_d_misiurewicz(&c, c, P + 1, p, n);  // b  m_d_nucleus(&c, c, P = P + arms * p, n);  // c  m_d_misiurewicz(&c, c, P + 1, p, n);  // d  m_d_nucleus(&c, c, P = P + p, n);  // e  m_d_misiurewicz(&c, c, P + 1, p, n);  // f  m_d_nucleus(&c, c, P = P + p, n);  // period 68 nucleus two spirals out  printf("%.18f %.18f 1e-8\n", creal(c), cimag(c));  return 0;}
Unfortunately I think the structures at the next level of zooming are too symmetrical (in terms of periods and preperiods), I don't know if it will be possible to continue automating this further.

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #4 on: November 07, 2017, 09:40:47 PM »
An example showing the "symmetry trap" in morphed Julias: the symmetry means that Newton's method can't be used because the (fractal) boundary of basins of attraction (not shown) will pass through the p314 nucleus at the center, so it could converge to anywhere or not at all.  The symmetry can be broken at the minibrot (tracing internal rays to 1/3 or 2/3 bulb), but this doesn't help much because it isn't far enough out from the nucleus to make a difference.

It seems the "symmetry breaking" of Misiurewicz spirals preperiod does happen only at the ends of the branches of the tree, rather than at the middle as we'd hope for.  There are 6 p631 nuclei near the center (second image), to continue tree morphing we want to find one of the 2 nearest the p314 nucleus at the core (at which point we can go further out alternating Misiurewicz centers and periodic centers).

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #5 on: November 08, 2017, 02:41:42 AM »
I've been experimenting with "atom domain coordinates", ie, the coordinates of a point within the surrounding atom domain(s).  You can calculate them like this:

Code: [Select]
Complex c = input point, can be any point (interior, exterior, boundary, ...)Complex w = 0 + 0 i;Complex z = 0 + 0 i;Real m = 1.0 / 0.0;Integer q = 0;for (Integer p = 1; p <= maxiters; ++p){  z = z * z + c  if (|z| < m)  {    if (q > 0)    {      Complex a = z / w;      print "atom domain coordinate at ",  p, "/", q, " is ", a    }    q = p;    w = z;    m = |z|  }}
I added it to m-describe, an example program from my mandelbrot-numerics package.  Here's an example, with the input location being a few iterations into a Julia morphing tree with length 2 arms:

Code: [Select]
$m-describe usage: m-describe precision maxperiod maxiters re im$ m-describe 500 5000 5000 -1.76867066906848192224252477592312859554915536014224030961298269776882020312701117e+00 2.4840742198029977618741239999091519936572287964924356728807904024291900405787396e-03the input point was -1.76867066906848192224252477592312859554915536014224030961298269776882020312701117e+00 + +2.4840742198029977618741239999091519936572287964924356728807904024291900405787396000000000000000000000000000000000000000000000000000000000000000000000006e-03 ithe point didn't escape after 5000 iterationsnearby hyperbolic components to the input point:- a period 1 cardioid  with nucleus at +0e+00 + +0e+00 i  the component has size 1.00000e+00 and is pointing west  the atom domain has size 0.00000e+00  the atom domain coordinates of the input point are -nan + -nan i  the atom domain coordinates in polar form are nan to the east  the nucleus is 1.76867e+00 to the east of the input point  the input point is exterior to this component at  radius 1.84160e+00 and angle 0.499848902720760879 (in turns)  the multiplier is -1.84160e+00 + +1.74836e-03 i  a point in the attractor is -9.20807e-01 + +8.74192e-04 i  external angles of this component are:  .(0)  .(1)- a period 2 circle  with nucleus at -1e+00 + +0e+00 i  the component has size 5.00000e-01 and is pointing west  the atom domain has size 1.00000e+00  the atom domain coordinates of the input point are -0.76867 + +0.0024841 i  the atom domain coordinates in polar form are 0.76867 to the west  the nucleus is 7.68675e-01 to the east of the input point  the input point is exterior to this component at  radius 3.07470e+00 and angle 0.499485668790666693 (in turns)  the multiplier is -3.07468e+00 + +9.93630e-03 i  a point in the attractor is -1.50931e+00 + +1.2306e-03 i- a period 3 cardioid  with nucleus at -1.754878e+00 + +4.5372764e-364 i  the component has size 1.90355e-02 and is pointing west  the atom domain has size 2.34487e-01  the atom domain coordinates of the input point are +0.058585 + -0.010507 i  the atom domain coordinates in polar form are 0.05952 to the east  the nucleus is 1.40149e-02 to the east of the input point  the input point is exterior to this component at  radius 1.02191e+00 and angle 0.477971503530559616 (in turns)  the multiplier is -1.01214e+00 + +1.40990e-01 i  a point in the attractor is +5.3106517e-02 + -7.2012171e-03 i  external angles of this component are:  .(011)  .(100)- a period 6 circle  with nucleus at -1.772893e+00 + -4.72499e-374 i  the component has size 8.69223e-03 and is pointing west  the atom domain has size 1.73807e-02  the atom domain coordinates of the input point are +0.24229 + +0.14137 i  the atom domain coordinates in polar form are 0.28052 to the east-north-east  the nucleus is 4.89876e-03 to the west-south-west of the input point  the input point is exterior to this component at  radius 1.12275e+00 and angle 0.084270757649362940 (in turns)  the multiplier is +9.69009e-01 + +5.67094e-01 i  a point in the attractor is +2.3723982e-02 + +2.7205482e-02 i  external angles of this component are:  .(011100)  .(100011)- a period 80 cardioid  with nucleus at -1.7686706698108863e+00 + +2.4840735062534114e-03 i  the component has size 7.21591e-12 and is pointing south-west  the atom domain has size 3.62531e-08  the atom domain coordinates of the input point are -0.025277 + +0.013125 i  the atom domain coordinates in polar form are 0.028482 to the west-north-west  the nucleus is 1.02972e-09 to the south-west of the input point  the input point is exterior to this component at  radius 2.38752e+01 and angle 0.245963380531733472 (in turns)  the multiplier is +6.05477e-01 + +2.38675e+01 i  a point in the attractor is -1.0235014217905391e-05 + -5.2956444099435658e-05 i  external angles of this component are:  .(01110001110001110001110001110001110001110001110001110001110001101110011100100100)  .(01110001110001110001110001110001110001110001110001110001110001101110100011011011)- a period 166 cardioid  with nucleus at -1.76867066906848750322441e+00 + +2.48407421979660354746963e-03 i  the component has size 1.20396e-18 and is pointing south-west  the atom domain has size 4.21030e-13  the atom domain coordinates of the input point are +0.020152 + +0.00054259 i  the atom domain coordinates in polar form are 0.020159 to the east  the nucleus is 8.48725e-15 to the south-west of the input point  the input point is exterior to this component at  radius 1.67922e+02 and angle 0.248950892799198020 (in turns)  the multiplier is +1.10689e+00 + +1.67919e+02 i  a point in the attractor is -1.72337859654754347419464e-08 + -1.54263675741792196004477e-07 i  external angles of this component are:  .(0111000111000111000111000111000111000111000111000111000111000110111010001101101101110001110001110001110001110001110001110001110001110001110001101110011100100100100100)  .(0111000111000111000111000111000111000111000111000111000111000110111010001101101101110001110001110001110001110001110001110001110001110001110001101110100011011011011011)- a period 338 cardioid  with nucleus at -1.768670669068481922242635021582513e+00 + +2.484074219802997761711363756288075e-03 i  the component has size 7.95203e-29 and is pointing south-south-west  the atom domain has size 6.89777e-20  the atom domain coordinates of the input point are +0.0028476 + +0.00011552 i  the atom domain coordinates in polar form are 0.00285 to the east  the nucleus is 1.96583e-22 to the south-west of the input point  the input point is exterior to this component at  radius 3.14461e+03 and angle 0.246574763576136752 (in turns)  the multiplier is +6.76713e+01 + +3.14389e+03 i  a point in the attractor is -1.051010271500737387396129344322317e-12 + -2.360116503751827799783730751067726e-11 i- a period 682 cardioid  with nucleus at -1.7686706690684819222425247759231288733015276862538e+00 + +2.4840742198029977618741239999085180582980312949536e-03 i  the component has size 4.25928e-44 and is pointing south-south-west  the atom domain has size 4.54963e-30  the atom domain coordinates of the input point are +0.00015184 + +9.2413e-06 i  the atom domain coordinates in polar form are 0.00015213 to the east  the nucleus is 6.92113e-34 to the south-south-west of the input point  the input point is exterior to this component at  radius 2.54947e+05 and angle 0.741784126755611117 (in turns)  the multiplier is -1.31550e+04 + -2.54608e+05 i  a point in the attractor is -2.0838160382258966671023786214932757442312418656921e-18 + +4.4278759379197717549026479411875780959270259291627e-17 i- a period 1370 cardioid  with nucleus at -1.768670669068481922242524775923128595549155360142240944937436234373603487e+00 + +2.484074219802997761874123999909151993657228796487908305600068771245981356e-03 i  the component has size 5.27888e-67 and is pointing south  the atom domain has size 2.43658e-45  the atom domain coordinates of the input point are +1.8685e-06 + +1.7083e-07 i  the atom domain coordinates in polar form are 1.8763e-06 to the east  the nucleus is 4.57173e-51 to the south of the input point  the input point is exterior to this component at  radius 1.86123e+08 and angle 0.734527631427225325 (in turns)  the multiplier is -1.80656e+07 + -1.85244e+08 i  a point in the attractor is -2.082063826779991026326953547993162661502629995309235944161531538400280308e-26 + +1.120085610296564224963257366763582370252733869174041191996999937492463002e-25 i- a period 2746 cardioid  with nucleus at -1.7686706690684819222425247759231285955491553601422403096129826977688202031270204377813893275645781753847073e+00 + +2.4840742198029977618741239999091519936572287964924356728807904024291900405671811051318681359309725545660552e-03 i  the component has size 2.30326e-101 and is pointing south-east  the atom domain has size 3.01982e-68  the atom domain coordinates of the input point are +3.3829e-10 + -3.5532e-10 i  the atom domain coordinates in polar form are 4.906e-10 to the south-east  the nucleus is 1.48152e-77 to the south-west of the input point  the input point is exterior to this component at  radius 1.60403e+12 and angle 0.648307704153266884 (in turns)  the multiplier is -9.56569e+11 + -1.28759e+12 i  a point in the attractor is +5.4689924802562002186177141105459235753771144847589438147523377057995195313831690235485364042715917062665656e-40 + +6.4623687912078992911092289020611645088648491060458579157716156674594712946648961321818382697951351961478722e-39 i
I extracted the atom domain radius from the above (note also that they are all "east", which means towards 1+0i), and did some maths:

Code: [Select]
\$ ghciPrelude> l = [0.020159,  0.00285, 0.00015213, 1.8763e-06] -- radius of atom domain coordinates, relative to parent atomsPrelude> m = map (logBase 2) lPrelude> n = zipWith (/) m (tail m)Prelude> n -- tends to limit of 2/3, probably[0.6661798286887533,0.666657512188633,0.6666643361398812]
This means it should be possible to estimate the atom domain coordinate of the next in the series: it should be approximately 2^(3/2 * log2(1.8763e-06)) = pow(1.8763e-06, 1.5) = 2.5701e-09.

There should be a period 2746 * 2 + 3 * 2 = 5498 nucleus at atom domain coordinate 2.5701e-09 + 0 i in the (2746 / 1370) atom domain of the period 2746 nucleus.

Final step (my next task for tonight) will be implementing a Newton's method iteration to go from atom domain coordinate to parameter plane coordinate, if this is possible then automated Julia morphing in O(period) may be possible after all! (recall that automated Julia morphing in O(period^2) is possible by calculating with patterns of external angles in binary notation, then tracing external rays, but this is too slow to be practical).

UPDATE  I've now implemented it, but it doesn't work completely as intended - the first nucleus is found correctly from the atom coordinate guess, but then the Misiurewicz step to find the neighbouring spiral shoots off into nowhere-land (and it's actually reached a 5495p1 instead of the desired 5496p3 ) See attached...

UPDATE 2 I've got it working, at least in one test - the key was remembering that there is a Misiurewicz point at the tip of the embedded Julia set, and this particular one has much lower preperiod so its basin of attraction is much bigger.  The path for the success image was period 2746 nucleus -> atom domain coordinate guess -> 5454p3 Misiurewicz point -> period 5498 nucleus (the desired location).  Next step is investigating the patterns of (pre)periods for the required tip Misiurewicz points at each level of Julia morphing.
« Last Edit: November 08, 2017, 06:09:49 AM by claude, Reason: update 2 (some success) »

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #6 on: November 08, 2017, 07:09:01 AM »
Here is a parameter file for m-perturbator-gtk (all the "1000" specify the bits of precision required to load the long numbers).  In the attached image I deleted a couple of annotations because they were overlapping.

Code: [Select]
size 1280 720view 1000 -1.7686706690684819222425247759231285955491553601422403096129826977688202031270412040418170042248909893898953961914249212714212001674752563530713893578422376437313552349728458283121162832163166940448331006411624727444765435919434115458564782228718715348642063458201407792159500754523973581287283413580442e+00 2.48407421980299776187412399990915199365722879649243567288079040242919004064196388421468727794759644848538692342994649388151633813707546923601664167590854124622835737158321433751594156647846374328172377802991208265558881662411052239207698578039076087494973300118792871530460398929205927526911476532532103e-03 3e-114text 1000 -1.7686706690684819222425247759231285955491553601422403096129826977688202031270412040418170042248909893898953961914249212714212001674752563530713893578422376437313552349728458283121162832163166940448331006411624727444765435919434115458564782228718715348642063458201407792159500754523973581287283413580442e+00 2.48407421980299776187412399990915199365722879649243567288079040242919004064196388421468727794759644848538692342994649388151633813707546923601664167590854124622835737158321433751594156647846374328172377802991208265558881662411052239207698578039076087494973300118792871530460398929205927526911476532532103e-03 5498text 1000 -1.76867066906848192224252477592312859554915536014224030961298269776882020312704120404181700422489098938989539619142502937376873603073613925917330500058999354161401660373973164213520914737098394197499962444630350601651080654458386014044232732121039116089455566419098161137811805444587818692475455463821136e+00 2.48407421980299776187412399990915199365722879649243567288079040242919004064196388421468727794759644848538692343007986180299690260150708254518869407694786525317033201653971582150509348263344215647871749484619990902482057430132992084675356097362131086028677246878607674626688040511824183927789522268686137e-03 GUESStext 1000 -1.7686706690684819222425247759231285955491553601422403096129826977688202031270412040418170042248909893898953961914250634943817179791830200866612359639354841487775226794268798318964901331356999545114616805089325645004311383924204084740985927774886920086133495160524268639350903295742868745912389150519751e+00 2.48407421980299776187412399990915199365722879649243567288079040242919004064196388421468727794759644848538692343006127701731085447116124041977745998079012820266296248238317328294134549892488835117358545582266876135534697510147913636567421125007425010714954125954901648395272163203390177569064612704989713e-03 10952p3text 1000 -1.76867066906848192224252477592312859554915536014224030961298269776882020312704120404181700422489098938989539619142505427345784660532310067782256697724649692263468896992729894547401593554452647026036100516334003250853688714912809597338070650311846362834150528559650181024496661965877839319506975468597546e+00 2.48407421980299776187412399990915199365722879649243567288079040242919004064196388421468727794759644848538692343005504323937385645828166288017403015922407358491316449620412555149609347725219337012069107754808408999604799315880906935986920084181624200653469057039897895091047565665021268510381048496443326e-03 11002
Here is a table I made when investigating this "2 spirals out tree morphing".  "n" is the number of morphings, "M_n" is the (pre)period of the Misiurewicz point at the tip, "P_n" is the period of the new nucleus two spirals out, and "D_n" is the difference between this period and the preperiod of "M_n":

Code: [Select]
n          M_n          P_n    D_n0            -           68      -  // center of embedded Julia set1         72p3           80      8  // two spirals out in 1/3 direction2        152p3          166     143        318p3          338     204        656p3          682     265       1338p3         1370     326       2708p3         2746     387       5454p3         5498     44n  (P_n-D_n)p3  2*P_{n-1}+6  2+6*n  // conjectured relationship8      10952p3        11002     50  // additional data point constructed by conjectured relationship and verified graphically

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #7 on: November 08, 2017, 02:53:10 PM »
this code version: https://code.mathr.co.uk/mandelbrot-numerics/blob/8b579bca2060517d1e8bc37e26a1b2080be0d121:/c/bin/m-ejs-tree-morph.c

generated these coordinates for a level 13 Julia morphed tree, in about 72 minutes of single-core computation time (not parallelized):

Code: [Select]
-1.7652558203467454984419306742768796875976849019152801609837891438991037166553927075037968624630418363357792627750020704678878206353101678202549458916214133664294373229935984686323619224621261167952625135519259669198248890924166817331496587780817018506932776887237347476640134341088502110842190932280841570803432176243218537728869853231438621995691365470100717834175569351317988554742995396818046190462881599507729791172404046590454894240994335822743117687130042158145834905367292039055732844718334890002930197308674242084037159772791278729002740786795872323400257875388708834186813826636942415683059222789743569148854265242356397786775792120869746496824779113242182456232223239843929682766042137740528912439148013402938283788671431318288982312148303891628381046331426843720021168699372691084252596501364076357645444537712215996842276149399871547801057561541018624583160279066472979051617244167330955949323016020069044497047785312245224544992333372580125988960129820919718925382114429830321889161985951554302139690218434631961781814847680415228119487198235024522575156159582109989814309902836050104050538774819416830050837106163956725180024404021416860343608841706764743121101508211572319313810427359242646933403582572552702217910204561964158236858422511571998935448669177437896647309815817314366079081493137783855900035515354551534594287150270230024847103161509734412349429081026669735352203248423580981283408766939811823765591181878616422881826816534120855008662345799108503787572923334670817087134749627088934262700257030057879383435211784330952340154731971250422982746869019346823482949034467818911971026603744674294648904715746015405778938414498803411350215938486517529398624437145226669088579908309345257942153304019994088208692194570512170069159346991202412623343448837873745131654057948232211670135589928799750154372807649084906321604076628842672250962004913294201176622048565605085129806991599591195346093655348646030829237613464740378360288909525856499200438722883846465571964722696551642454033641123216889566300801667511671613396891143012529890341393767537458744336759662380241418625812095095834058460768849454072929035594400534576525628180343988276186642026622806612781723506878639153015047624568670599476773323509306183237525661515735966921117527866036789000125378326428662570773652759541507116622498175883426777171428859629160280005532213430493740195406120151447018745667914068130630911583064331039220370111296628837058341921176025611487827995294059411946734092735215788526114384614461312756139531726760373452510355397569972074912351819635532091046010532419870290565417990025808678089839935754621028290297477821483943078991326038993175649788811361930621171006383644816118719370882854000508246964135731259628516346339501897678210682942222723054932607722147359166968474073099364362590626787030342852426478791192272319581444707156639772011507244724621916415695159248494268540587623809902526158616890582059309391156926312802422179587906679206238444351244693456608617138352638537742703376061034196956956174093377554697702715253867e+001.0448650091472766200036073377716705506778145585706732657787402576158863212575805831264845978732720635981367205892257456599395259824678992895437000631639090380782651931410342021404287120356719331265154338796265547332324190866482966906442288439072704787637035733331126289893554315930040267090041435471095807620080703623373202319988283043548764378845477288480585486999976833286016412658871232194135510724105419895087119353574180821197151997884433310199504034220023069376091827176560639514781356505685034406596361147110452296587621031671676269252875230375309367885407143045217918300842065722362014365386494501732621858085041789033402885997949185611659839724351803905537179483597979911184313901719431323747690751864864651284358955906691131165304145293250333873575912674799233865528970402146259897824288937418177456573857851506016136592937867315172192455184897992504356626632871415625324496454391911115584008887309616020487089560155748370861552275044839830126158359017180852362543157550614820086764636454110031086277348983562979772260988213831882106327487796390655793124082066499509608727796039373581962168919342644811850981036527387713946053844390744989996765908292186563455684243809292400491283797186950581216057987221408625484789535256899234008000232672117797135905266607658428071322793146218840080376653798255493094208955564559810497849132626111052690262610725659306859765848783944073588259590950906103918164471812448135825493026119683214796349523914763111500425441268604724703816737970675605655402494414713241535016342866327101387260951212259082825124085529799525535086224351392639923628059980849808680743673117555609968656675280042269037175427964063134399888377179420551301091138455542651667775069490256922463466472315414412401979586636401853844000673429185902877205040397409374610314941243404522211798923418342784659082814181026094216579001010986508074686882108867557758926728739534547184144203734529703290957893699487568450562704413918244426420337649551140637080058612164120350000787963378184396365625594142257781607012207640607587954190206117325784832886458355213675617496188620534219680258479190356181210846009621099745749742701742606154829156893978765217835798013201841357441388487751088701806787583881961424402371791837508592763896425241570872729534837596230996762645939575732822735299621351067150541304737602749550799485492057281051727611420481363334333148341516042505841150467537625051014559344431289167693265880854297305048013896287984697784916756454794714343254254099939674506141819973906287011832757354158633097556129727548720771516583365942975225439873252969674873488158516908894362615859751433975401429077865097001652891487486167529227197906976346367522783477047567803194036278379822474927920957459711032912646084988440473374892440678026868622466524157454331825304802151577921487165114163202007050329323923638722129683070079578302067771596267724521809400737345474962712054994207206561244804384843779351605902136436489482800535268760726440128102264689291654293742406898437415923476850282332928832047140036483345892827915947751e-028.4597089580121456e-3028
Then m-perturbator-gtk (patched with a high iteration count, need to make it runtime adjustable..) took 20 minutes of wall clock time (80mins of CPU time on my quad core) to generate the attached image.

Success is reported, some hopefully minor cleanups needed to help get the first morphing level correct without hard-coded coordinates, plus some restructuring of library code to use less memory (recomputation will most likely be cheaper than caching, and make high iterations/precisions possible - I couldn't go to level 14 without running out of RAM+SWAP).

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #8 on: November 09, 2017, 10:22:50 PM »
https://mathr.co.uk/blog/2017-11-09_efficent_automated_julia_morphing.html new blog post about efficient automated Julia morphing of tree structures

• 3f
• Posts: 1730

#### Re: towards a language for Julia morphing

« Reply #9 on: November 10, 2017, 11:01:12 PM »
Astounding! I will need to study some more before I can understand all you did.
Can you post the final location of the trees for study purposes?

• 3f
• Posts: 1730

#### Re: towards a language for Julia morphing

« Reply #10 on: November 11, 2017, 04:23:52 AM »
Can you explain the meaning of the "atom domain coordinates"? p is the lowest iteration where |z_n| has the smallest minimum, and q where it has the one-but-smallest minimum and a=z_p/z_q. I understand the significance of p, but not the q and a.

I find using p(center) with this method and then finding location with Newton to get the reference orbit is almost as good as using the box method.

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #11 on: November 11, 2017, 04:06:32 PM »
Here are the coordinates of the 3 final views from the blog post:

Code: [Select]
Re: -1.765255999389876234461152788785797644984633297655685666807481695846225912749655788093382329902715252392041460635885215850563792707279422539272781989295044035426373000613583591812021412405839940885783437366123652481019380496979520083898930887713503041323571033603267228732673881697627769631428767123079395338351895929545805513311149873254735634309800137254227353398493256006860933209587567509764016267722040584438664806755046349843252626021333596704283019326356534015635940495176966999611978220530750450843633573332991709349235725836809717722489976855541370575297961999390728282862817643005070619283157278020063873338224185426911490249877871908715519769993172252374558860975947234420276611064476299388955501971748803106758767381698583971521419007502885315003960294562814779263086726297113472688640615919829005087413164109846911484778894071443404207869354099285048615521762074034505836870947172378060240956429316941809279123903549550327029007782712281749575380777227931092513014420477603320842219507859388471588902556506644329990910025966552275591407511770349035698103048527900063511604586989139281327400796651831374014415874764104370850858243013446412786439409651408822678063344800555306026968024498510934693190422966557520631929166353413622008884499560829402106681948196630088824317691984795766138303632912992140378394615510869590625990629073655058086918587992753373740466601362189075260075092061125838210244661114514701715337150589505397345587038201678298365407376620696933488764136981991980060516898714009726310706660397417599955993972465017811936070000026197616180830154468707445269557078391169219677153128499108333799155793024949654929510004716713790847107481720949091397456795973874107586921950585997685121649089247292045270419452553512843753157137069770620169965146471923792787e+00Im: 1.044855173759870674509925260569062551429582184208774112687506685850702402862283633251801154021431699012118823719316553366249215187305353563731256464782007523642329777996610912423719422186335432822174265261206951043095844546756817888515248393784875534390880838697702428976170919396835291945394881167837612550632611599687865385075656734298905884071345216222487396786628676472777183728115086508724368712951744305368978034370190295242615713155170991153665925196554510896640820273213133136604547582375711715838288501092636776887401593694251212475188429866300624917005570979959648771291244739463462884185104210449685535729891795631266859943509493206019805375276334206034833533896170718455401730859682774525721906460414333828868645101441144512368412857590109126593191857811707164639189395898151033082699073911820942597151771028763883801440932176590915620749220343531119848827579210200210691074438526221609609348573487340983087427564867537849859997911932478276831737662313717298693308828671193674190049375398371330919241363626687034352372508103545149724972722283882538503547320750157108747909357188716252054779778431698378697648551043508705009471034427842008494018171325427749773325817756575155154200558889125286276620795430524186769574578246010147441017328014669317224772841063005418774343964301158827595281143255139291724770936371602621421355940837080566447014987099335498492636466686676011006565917816457409789008126413893573450474814467928796678892257062772853099029056566481638332571586066262669713490205851995240540080919480010705588581153532304654316332998742045682203727628098014556827357845733285124035202815687505255648370099627938499814465702663632883193267481741278043512480106138861479574749353964459094813836497773939122886913988386993501350253541777549310744654183438967295739e-02Size: 7.3795267990768293e-890Re: -1.94155104121873378203047938571832949953800790497421144495597534628430592490209066959439643437203221163112358284903719574194748627377326185150424256159428131081454076169698980481990762205758229053330655962255192249264295448349666763524853356254993279295552243694260013318360095278128600260345103696397735905803327687937263643290075090616726294424646400400821408890663821326069680602610440449611671801277209634048941500349007736671903513997119360053234197272760768109924147803385765637960387836195491285340567257081014298855531543620905695942685163179557571250242314096980703089588475890903701782585424586775060446023439192492491159750881339693415126180602576034570844904799885107164726052552070199266542552770399799431941345333619418110352529646892519827815166394376407062622517474399733458555183111298518822886393320107908206043055378199068221262871369475543745410614982030977507495013033651302762823315788926605158077757551226598146109853129999504762347313560677574980517086791394484077338082222478233084869452139603337996027677955531393284517763179946654702795550207172259873960831737577630516698134769569285884193021055251074141535663313773644022200549727950068978468639281448864129052263499711605283399996421136331733418755726880049140365018544734899430174628053830179470604304085618015346449901508318946567776406229999625725432009195689621392769903356356797682892949647622513995756727219433566142807672561658481336145899658665495892522232847677829217821232537791251298703229280351798586290405624127338035383757548994940216565479728670850684011916627863775710578227112658658965695792236937221645975610721329134674696047280845159073800065971903544362220993011570267954121757323431017017860714884735491116726860480376007015181441828416340208703289034774696673289748256210842845507180999119584007954857154558820118801032201672578239492204714156712792384888075489481441984215216648171159635384001609369966387147595361625008780587229761774752724930867516550339940604219512985739009565052521395282341190125372151228190751184050054627614e+00Im: 1.08484266852452040360404596281488548527030895482151153627254118232584721740647063810449172520843705099892882594510025299324436389594673287254261590666413087694306351395021124079039159942005033079705717891921868079625037712827882810705653562283132403850267189109821475268441926931801092650883026387632110969089034148845505111830740257090444632068708697473241062336017988705836121879671747355471051205057230143872006851352738677674630371357585812170943770318539292963056280901771020718180816633094856557637898058679676105328684830435113721463590724578107945986615949577770396539461487539002019955062337793074267458217047576940676581753172917488088732675980577754238996234161605269827931913834904947317210410945621550954794018303582278317875876499559895340550122140913565283145317655457594104077900133920739916828632502075858894669258627301411782184227847099338757727194662244844789107460071134406810501856398549657841289545413729752544666725829081096767200890533750651280806660670820240564037301777066589214089517285451083531980499163241680352157498098928699625386405312063265515623917790633166040681870479246920695840782379226182905901081461443133958007885654341610068547135954747223111417841001483508696095522600014278957524010013814551852686081374161373874245336782953117309143033106447293127398387037629138235862615786062910264237129858381165156804113140497981166193039929861360229365852546137109244584279048843260476927487244720445543316810916366298706896494767618171447248796596290007885565902837505117941890643283157857390243989062341420326333488612238225759532700066963628035161604761018073322977838089656049371477012299600215994137822175995506413726924624836632136795546953756016203451571895931233001511916065488803809027958140808973402520337800547819403219067968472641497806811793287806405318335920832126178125899501410783781306430307102041411134753307934986745335369665692854885956469193001151973276543223232037361192403262193613397432572778374347778975091124386375831391389029762394700969555124185640619946296422176635524117e-04Size: 1.4816104776129905e-1016Re: -1.6067157454437623523429980656232571446371336569832246607529447676984302390957765479076903775657207875094850463706280006978428300696353907039693847600219139736713041509165337971577573472833119564841819618472043731557349529464557477075208034033837919032208409169581487271622551483419550902918746186844853338496600134173533227849759840195923058159690271152933062858722970092686938142718886195408878255636072026319589205866788151197760834100454057181850090146356916156806125074269902532935824126128711694808899616288211436518193740161282133759208371728495162700422815764813429673118084608605936889940633652601771281577760522190559554260167404085937621518715e-01Im: 1.0369425716116291171688106641088455988538567298124323080597903890054138172127708543024909014955338074002178250818737097944716605548909996311034876508441714228244078222420638636408073445850546946976971476583353238902945581912155462907695065826318848338789529151847288915828593504988849176913597129353591778847015303039106385284417320874250010080465099863061393148577694563724920289926745626373988078036253702529472221489193455291408110312951617714103957933672838332634307273128826206552366681515754487328172319103099834879869907292614689988598817247526653722608866519013770036651421739479700020476331806875306239644967362430544801308267016512021304364863e+00Size: 7.2521159463153008e-319
"Atom domain coordinates" are coordinates relative to the atom domain. with magnitude 1 on the boundary (where |z_q| =|z_p|).  'q' is the period of the "parent" island, 'a' is the atom domain coordinate.  (Be careful in embedded Julia sets where neighbouring atom domains can overlap without one being the "parent" of the other.)  See also https://mathr.co.uk/blog/2013-12-10_atom_domain_size_estimation.html

• 3f
• Posts: 1154

#### Re: towards a language for Julia morphing

« Reply #12 on: November 11, 2017, 04:15:03 PM »
I find using p(center) with this method and then finding location with Newton to get the reference orbit is almost as good as using the box method.

Yes, it works fine in many cases, but when "passing by" Julia sets towards the outer filaments, for example,. the box period can find the next deeper center before the atom domain period does (the atom domain may be smaller than a pixel for quite some time).

• 3f
• Posts: 1730

#### Re: towards a language for Julia morphing

« Reply #13 on: November 11, 2017, 06:56:53 PM »

• 3f
• Posts: 1730

#### Re: towards a language for Julia morphing

« Reply #14 on: November 13, 2017, 07:36:23 AM »
Here's a zoom movie of the computer generated tree-zoom.
http://persianney.com/fractal/v/kClaudeAI.html

### Similar Topics

###### 3D Julia

Started by trafassel on Fractal Image Gallery

0 Replies
88 Views
August 22, 2018, 07:13:30 PM
by trafassel
###### A Julia set

Started by Matplotlib on Other

13 Replies
420 Views
March 03, 2018, 06:09:26 AM
by SCORPION
###### Julia set

Started by Adam Majewski on Programming

13 Replies
609 Views
January 23, 2019, 09:25:53 AM
by claude
###### Julia set potential map.

Started by birational on Fractal Image Gallery

4 Replies
148 Views
September 17, 2018, 09:28:28 PM