mathr / blog / #


mandulia-0.8 released

Updated to work with current Hackage.

zoomasm 3.1 released

Maintenance release compatible with latest miniaudio, plus bugfixes.

Deep zoom theory and practice (again)

Perturbation with rebasing, and bilinear approximation, for efficient rendering of fractal images.

kf-2.15.5 released

Many new features, bugfixes and speed improvements.

Atom domains and Newton basins

A counter-example to a conjecture.

Perturbing Nova

Affine-conjugation to move the critical point to 0 to avoid precision loss.

External ray tracing

In which various initial guesses for Newton's method are tested.

kf-2.15.4 released

Many new features, bugfixes and speed improvements.

Julia morph orbit in the hairs

A fractal music video with both zooming and non-zooming parts.

Old Wood Dish

Analysis of a fractal artwork by JWM.

FaB Co.Lab 2021

Co.Lab Sounds is back again with Fringe Art Bath for their 2021 festival!

kf-2.15.3 released

Many enhancements for speed and comfort.

Legendary Colour Palette

Embedding a 2D image into a 1D palette that gets wrapped back to 2D by fractal spirals.

Deep zoom theory and practice

Perturbation and rescaling for efficient rendering of fractal images.

Wurgo music video and Making Of

Synchronizing fractal zooms to audio with kf-2.15.2 and zoomasm-3.0.

zoomasm 3.0 released

Supporting custom colouring algorithms direct from KF 2.15.2.

kf 2.15.2 released

Design your own custom colouring algorithms in OpenGL GLSL shader fragments.

Optimizing weights for iterated function systems

Optimal in the sense of most uniform distribution of points.

zoomasm 2.1 released

Plenty more bug fixes, plus a new feature. Also belated 2.0 release announcement.

zoomasm 1.1 released

Plenty of bug fixes, plus GUI transparency controls and PPM export without FFmpeg.

kf 2.15 released

OpenCL acceleration, hybrid formula designer, exponential map, and more.

zoomasm 1.0 released

First release of the zoom video assembler.

Optimizing zoom animations again

Finding the optimal zoom ratio when reusing the center portion.

FaB Co.Lab

Co.Lab Sound experimental test bed for collaborative live and sound art at Fringe Arts Bath online festival.

KF 2.14.10 released

Lots of new features, lots of bug fixes, lots of speed improvements.

Fast density estimation

Histograms of histograms to blur separably bucket by bucket.

Crisis (deep zoom)

Not a Mandelbrot set deep zoom, but it might resemble one at first glance with its nested period-doubling crises.

Spider algorithm with a path

Pull back a path from iterates of \(\theta\) to find \(c_{\theta}\).

Slow mating of quadratic Julia sets

Gluing two \(z^2+c\) quadratic Julia sets sometimes gives a \(\frac{z^2+a}{z^2+b}\) rational Julia set.

Ultimate Anti-Buddhagram

Two ways of rendering the 4D Mandelbrot/Julia/Buddhabrot hologram.

Making KF fast again

An extra branch is floated out. Plus SIMD to make it even faster.

EVA London

Conference paper: At the Helm of the Burning Ship

Exhibition photos

Photos of exhibition at Chalton Gallery, by Pau Ros.

IFS fractals in Inkscape

A multiple copy reduction machine via linked images.

Newton's method for periodic cycles

Reject lower periods, and iteratively perturb a known cycle along a path.

Series approximation for the Burning Ship

A small region bouncing around the dynamical plane seldom touches an axis.

Unskewing the Burning Ship

Based on the size estimate for mini-ships, use derivative matrices to calculate optimal viewing transformation.

Trustworthy fractals

An implementation of someone else's paper.

Enumeration of Misiurewicz points

How to determine the number of Misiurewicz points of a given (pre)period in the Mandelbrot Set.

Sounding DIY (Split)

My a/v work Puzzle is part of a group show, 6th-22nd August 2018.


Exploring the fertility of errors and questioning our inherited worldview.

Perturbation algebra

A collection of rules for deriving perturbed iterations.

Burning Ship atom domains

Regions surrounding mini-ships.

The Burning Ship

A fractal like the Mandelbrot set but with absolute values thrown in to the mix.

Iterated function systems with cube maps

Model the whole complex plane via the Riemann sphere as an OpenGL cube map.

Inflector Gadget v0.3.2

Keyframe animation and the return of single precision support with OpenGL 3.3 (OpenGL 4 double precision still an option)

Efficent automated Julia morphing

Nucleus finding, Misiurewicz point finding, and a bit of guesswork, combine for successful O(period) automatic Julia morphing.

A more accurate elliptic variation

Improving image quality by avoiding catastrophic cancellations.

On the precision required for size estimates

Worst-case guess improved by a factor of 8.

Filtered atom domains

Highlighting previously invisible periodic properties in the Mandelbrot set.

Periodicity scan

Finding periodic points in the Mandelbrot set to make annotated images.

Kalles Fraktaler with GMP

Using third-party libraries for acceleration.

Inflector Gadget v0.2

Double precision using OpenGL 4 to avoid postpone ugly artifacts.

Inflector Gadget

Inflection mapping for complex quadratic polynomials.

Monotone at MADATAC 08

January 12th to February 5th, Centro Conde Duque, Madrid, Spain.

Deriving the size estimate

How they did it, as far as I can tell.

Monotone at Mozilla Festival

Black-and-white flame fractals synchronized with rich ambient drones.

Puzzle on Raspberry Pi

Experimental OpenGL driver used by Pd and Gem with PdLua seems to work mostly fine.

Fractal dimension of Julia sets

A familiar picture emerges.

PI in the Mandelbrot Set

Notes on a conjecture of Aaron Klebanoff.

Vector Buddhabrot

Tracing the boundaries of hyperbolic components.

Collatz fractal

Piecewise integer recurrence translated to complex function.

Lyapunov atom domains for negative multibrot sets

Additive blending reveals many things.

Fractal Channel Hopping

Infinite fractal television zoom

mightymandel v16

Sliced rendering, improved glitch correction, reduced video memory usage, and more.

mightymandel v15

Big bad bugs been debugged, and nifty features added.

mightymandel v14

Lots of changes in a short space of time.

mightymandel v12 - now twice as fast!

Sometimes simple approaches are better.

mightymandel updates galore

Automatic glitch correction, zoom sequence rendering, tiled rendering for high resolution or anti-aliasing, ...

Automatically finding external angles

Trace a number of probe points in the atom domain.

Making seasonal cards with Snowglobe

Combining saved flake images using command line tools.

Exponential mapping with Kalles Fraktaler

From many raw 2fold zoom images to one long strip.

Faking distance estimate colouring

A modified bump-mapping approach.

Adaptive super-sampling using distance estimate

Subdivide only near the boundary.

Navigating in the hairs

Around embedded Julia sets in the Mandelbrot set.

Practical interior distance rendering

Using Newton's method.

Resurrecting Spiders

Fixing code from 1992.

Perturbation glitches

Rebasing from a reference point.

Mandelbrot Notebook

Handwritten notes on various properties.

Ultimate Anti-Buddhabrot

An xmas present for someone special.

Stretching cusps

Conformal mapping using Möbius transformations.

Crystalline Cortex (revival)

Rewritten in portable C.

Atom domain size estimation

A series of approximations result in a simple formula.

Islands in the hairs

Exploring external angles.

Distance estimation for IFS fractals

Derived from continuous escape time.

Patterns of periods in the Mandelbrot set

Structures in the hairs.

Distance estimation for Newton fractals

Derived from distance estimation for Julia sets.

A roadmap for distributed Mandelbrot set rendering

Some notes on various aspects of design and potential implementation.

Interior coordinates in the Mandelbrot set

another representation function

Navigating by spokes in the Mandelbrot set

cutting and pasting binary digits of external angles

Preperiodic Mandelbrot set Newton basins

finding tuned branch points

Mandelbrot set Newton basins

speeding up external ray tracing

Dancing Angels

Dancing Angels

Modified Atom Domains

Modified Atom Domains

Netbehaviour Mailing List Fractal

Netbehaviour Mailing List Fractal

Haskell IRC Fractal

Haskell IRC Fractal

Fractal Juggling

Fractal Juggling


Mandelbrot Set explorer using OpenGL 4

New website, new beginnings.





The Sky Cracked Open

The Sky Cracked Open

Poincaré half-plane metric for zoom animation

Poincaré half-plane metric for zoom animation

ruff-0.3 and gruff-0.3 released

ruff-0.3 and gruff-0.3 released

ruff-0.2 and gruff-0.2 released

ruff-0.2 and gruff-0.2 released

emndl-0.1 released

emndl-0.1 released

Exponential mapping and OpenMP

Exponential mapping and OpenMP

Features up to period 5

26 images of the Mandelbrot Set

Abstract Mandelbrot tree

abstract Mandelbrot tree

Lavaurs' Algorithm

Lavaurs' Algorithm

Circular wavefronts

Following distance estimates.

Distance estimation

distance estimation

gmndl-0.3 released

gmndl-0.3 released

gmndl-0.2 released

gmndl-0.2 released

gmndl-0.1 released

gmndl-0.1 released



Mandulia at AngloHaskell 2010

Lots to think about.

Optimizing zoom animations

Optimizing zoom animations

mandulia-0.7 released

Now hopefully more easily installable.

mandulia-0.5 released

mandulia-0.5 released

mandulia-0.4 released

mandulia-0.4 released



GPU Julia Sets

GPU Julia Sets

King James Hyperfuck

King James Hyperfuck

Cathedral Algorithms Video

Cathedral Algorithms Video



Puzzle 1

Puzzle 1

fl4m6e in Haskell

fl4m6e in Haskell

fl4m6e proof of concept

fl4m6e proof of concept

Crystalline Cortex

Clock #1

Clock #2

Clock #1

Clock #1

Clock #1

GraphGrow realtime preview

GraphGrow realtime preview



The mathematics of GraphGrow

No algorithm to check open set condition.

GraphGrow: SVG + JavaScript

GraphGrow SVG JavaScript

PostScript experiments

PostScript experiments



ANSI Text Cellular Automata

ANSI Text Cellular Automata