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.

Show thread

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..

Show thread
Follow

Haskell implementation of previous toot:
```
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 (2 * p))
where
go 0 p = Sym.Angled p (1 Sym.% 2) (Sym.Angled (p + 1) (1 Sym.% 2) (Sym.Unangled (p + 2)))
go n p = 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]
```

· · Web · 1 · 0 · 0

Bash script to trace all the rays (they have different periods now which complicates things, optimal ray tracing depth generally depends on period; next stage after this will be Newton's method to find the center and that explicitly needs the period):
```
cat rays.txt |
while read ray
do
period=$(( $(echo "$ray" | wc -c) - 4 ))
echo m-exray-in 100 "'${ray}'" 8 "$((2 * 8 * $period))"
done |
parallel -k |
tee -a endpoints.txt
```
note double and single quotes around ${ray}, otherwise the () in the string are interpreted by bash -c within parallel and that breaks everything (syntax error)

Show thread
Sign in to participate in the conversation
post.lurk.org

Welcome to post.lurk.org, an instance for discussions around cultural freedom, experimental, new media art, net and computational culture, and things like that.