working on another fractal animation, this time a julia morph orbiting in the hairs of an island. no clue yet if it will turn out any good...

current progress:

- found the angled internal address for one exemplar by tracing a ray outwards in mandelbrot-perturbator-gtk

- found a pattern for the external angles of the prefix, by tracing a few more rays outwards (much shallower) and comparing the binary strings

- wrote some haskell to combine the prefixes with the suffix of the examplar address, and compute one of the corresponding external angle pairs

- now tracing the rays to end-points in parallel:

```

cat rays.txt | parallel -k m-exray-in 100 "{}" 8 $((2 * 8 * 1378)) | tee -a endpoints.txt

```

- a total of 256 rays on 16 threads, ETA about 1h30 wall-clock (plus the 20mins done already)

...and results are in: it doesn't work as an animation at all, frames are seemingly unconnected. I guess pasting a different prefix onto an angled internal address does not do anything useful structurally, even though it happened to give valid addresses in this instance.

The first 3 prefixes were 1 1/2 2 1/2 3 followed by:

- 1/10 28

- 1/8 24 1/2 28

- 1/7 21 1/2 28

where the first is what I designed, and the other 2 are extrapolated. I think the change of /10 to /8 and /7 messed up the structural assumptions of the suffix, which was

1/2 56 1/2 57 1/2 58 1/3 144 1/2 145 1/2 146 1/3 320 ... 1378

In particular the influencing island had period 3 and the influencing angle was n/10, so 3*10=30 aligned nicely with the repeated structure of p->2p+30 in the angled internal addresses; while the non-n/10 addresses are forced/unrelated so don't look as good...

Show thread

The structure of the first frame was created by going one step along into one of the neighbouring double spirals; if the angle is n/10 this affects the period by p->2p+30. If the angle is say n/8, I suspect the period would change by p->2p+24; for angle n/7 by p->2p+21, etc. So maybe I can rescue this animation concept after all:

0. calculate external angle of prefix as .({011,100}^8 0111) (256 locations)

1. calculate angled internal address of prefix from external angle of prefix

2. extract the angle at 1 1/2 2 1/2 3 n/q

3. build the suffix by repetitions of (p-2) 1/2 (p-1) 1/2 p 1/3 2p+3q-2 1/2 2p+3q-1 1/2 2p+3q 1/3 ...

Not sure if this will be sufficient, as some of the hairs come off grandchild bulbs with more than one non-1/2 angle..

Follow

Haskell code corresponding to description above:

```

main = writeFile "rays.txt" . unlines . map (\prefix ->

let Just addressPrefix@(Sym.Angled 1 _ (Sym.Angled 2 _ (Sym.Angled 3 pq _))) = (Sym.angledAddress . Sym.rational) =<< Txt.parse prefix

addressSuffix (Sym.Angled p t a) = Sym.Angled p t (addressSuffix a)

addressSuffix (Sym.Unangled p) = Sym.Angled p (1 Sym.% 2) (go 4 p0)

where

p0 | m < 28 = 28 + m

| m > 28 = 2 * p

go 0 p | m < 28 = Sym.Unangled p

go n p | m < 28 = Sym.Angled p (1 Sym.% 3) (go (n - 1) (2 * p + m))

go 0 p | m > 28 = Sym.Angled p (1 Sym.% 2) (Sym.Angled (p + 1) (1 Sym.% 2) (Sym.Unangled (p + 2)))

go n p | m > 28 = Sym.Angled p (1 Sym.% 2) (Sym.Angled (p + 1) (1 Sym.% 2) (Sym.Angled (p + 2) (1 Sym.% 3) (go (n - 1) (2 * (p + 2) + m - 2))))

m = 3 * fromIntegral (Sym.denominator pq)

address = addressSuffix addressPrefix

Just ray = Txt.plain . Sym.binary . fst <$> Sym.addressAngles address

in ray) $ prefixes

where

lo = "011"

hi = "100"

prefixes = (".(" ++) . (++ "0111)") . concat <$> replicateM 8 [lo, hi]

```