# µFraktaler

µFraktaler is my WIP (as of 2022) Mandelbrot set software for deep zooming on small machines. 100% own code, apart from Amiga OS 2.04 ROM APIs.

It uses high precision fixed point for reference orbit, low precision software floating point for pixel differences from the orbit (perturbation), bilinear approximation for acceleration. Derivatives are calculated for distance estimation.

Colouring is based on binary decomposition (whether the imaginary part of final Z value was positive or negative, and whether the iteration count was odd or even) and log2(de) colouring of boundary.

The boundary is hard to see in incomplete images. Future plans include adjusting the palette at the start of each progressive interlacing pass to make the boundary visible earlier.

Other ideas include drawing on external rays and other annotations: for technical reasons, there are 7 palette indices that are not used by the fractal among the 32 colours available - 4 for the window decorations, 3 for the mouse cursor sprite.

# 1 Video

STROBE WARNING

640x512p60 MP4 (47MB), 20m30s, no sound

A short session of uFraktaler navigation (keyboard controlled), with a full render of the final frame at the end (maybe skippable, included for completeness).

FS-UAE emulates as-fast-as-possible with A4000/040 model, set up with 2+8MB RAM. It uses 100% of one host CPU core (AMD Ryzen 2700X). With accurate emulation of A500+ (for example), it will surely be much slower.

There is plenty of room for optimisation in my C++ code still. Executable AmigaOS binary is about 42kB, as compiled by a 2021 version of amiga-gcc with -Os.