Desktop Required

This application is designed for desktop or tablet screens.

Please use a larger screen for the best experience.

Mode

Scene

Resolution & sampling

Resolution
Sampling
detail
quality
Advanced Options

Fractal

Formula & parameters

Presets
Julia Mode
Enable Julia
Formula Type
Parameters
2.0
10.0
0
0
Advanced Options

Color

Line color & adjustments

Base Color
33°
83%
47%
Adjustments
100%
1.00
1.00
0.00
Invert
0

Post-Processing

Enhancement & effects

Symmetry
Tone Mapping
1.00
Exposure
2.00
1.0x
Bloom
Enable bloom
0.50
0.50
16
Microcontrast
Enable microcontrast
0.30
4

Debug

Test & inspect functions

Test Point
Run
Output
Run a function to inspect it.
Validate
Advanced Options
Tip: Adjust Exposure, Contrast, Gamma & Depth Boost in Quick Controls window for better image quality.
And don't forget to try different symmetry options for interesting designs.
100%
Ready
RENDER STATS
Threads auto
Time: 0.0s
Progress: 0%
Total hits: 0
Samples: 0
Hits/s: 0
WORKERS
QUICK CONTROLS
Adjustments
1.00
2.00
1.00
1.0x
33°
Symmetry
Actions

Learn

What you're actually making

What is a Fractal?

A fractal is a pattern that repeats at every scale. Zoom into a coastline on a map — it looks the same at any level. Fractals work the same way: simple math rules, infinite complexity.

The Mandelbrot set takes a point (x, y), plugs it into z = z² + c, and repeats. If the numbers stay small, the point is "inside." If they blow up, it's "outside" — and the path it takes before blowing up is what we trace.

Buddhabrot

Instead of coloring each point, we trace the escape paths of thousands of random points and plot where they go. Points that visit the same spot more often get brighter. This is why we need samples — more samples = more paths traced = smoother image.

Julia Sets

Every point in the Mandelbrot set has a matching Julia set. The Mandelbrot set is basically a map of all possible Julia sets. Turn on Julia mode, pick a point, and you'll see the fractal that point "belongs to."

Points inside the Mandelbrot set make connected Julia sets. Points outside make dust.

Formula Types

  • Mandelbrot — the classic. z² + c
  • Powerzⁿ + c. Higher power = more arms, more symmetry
  • Burning Ship — uses absolute values. Makes flame-like shapes
  • Tricorn — flips the imaginary part. 3-fold symmetric patterns
  • Celtic — absolute value on the real part only. Knotted look
  • Sine — uses sin(z) instead of . Organic, biological patterns

Filter vs Tracer

Filter decides if a point is interesting — should we trace it? Returns true/false.

Tracer runs the actual iteration and emits (x, y) positions along the path. These are the dots you see in the final image.

You can write your own — try changing the escape radius, adding sine waves, or flipping signs halfway through.

Guide

How to get good results

Iterations vs Samples

Iterations = detail depth. How many steps each point is allowed to take before giving up. More iterations = more detail in complex areas. Going from 8k to 20k reveals tiny spirals and filaments. Past 50k usually gives diminishing returns unless you're zoomed way in.

Samples = image quality. How many random starting points we trace. More samples = smoother, less noisy image. Think of it like exposure time on a camera. Low = grainy. High = clean.

Rule of thumb: crank samples, adjust iterations based on how complex your fractal is.

Adaptive Sampling

Instead of tracing every area equally, adaptive mode does a quick low-res pass first. Areas with lots of activity get more detail. Empty areas get skipped. Saves a ton of time.

  • Variance threshold — how "busy" an area needs to be before it gets extra passes. Lower = more sensitive, slower, cleaner.
  • Passes — how many extra times to re-trace busy areas. More passes = smoother but slower.
  • Hit density — what percentage of points in a chunk must hit before it triggers refinement.
  • Chunk size — how big each area is. Smaller chunks = more precise allocation but more overhead.

Render Stats

The stats panel (top right, toggle with the Stats button) shows what's going on:

  • Time — how long the render has been running.
  • Progress — percentage of cells completed.
  • Total hits — how many path points were recorded. More = denser image.
  • Workers — each thread. Shows if it's running, done, or idle. The speed stat tells you how fast each thread is.

Threads

Set to "auto" to use all available CPU cores. You can limit it if you want to keep your computer usable while rendering. Each thread works on a chunk of the image independently.

Effects & Symmetry

The FX tab has tone mapping, bloom, microcontrast, and vignette. These don't change the render — they're post-processing, so you can tweak them instantly without re-rendering.

  • Bloom — makes bright areas glow. Crank intensity and radius for dreamy looks. Threshold controls what counts as "bright."
  • Microcontrast — sharpens fine detail without touching the overall image. Like a local contrast boost. Works great on filaments.
  • Tone mapping — ACES is punchy and cinematic. Reinhard is softer. Filmic is balanced. Try them all.

Symmetry is where things get wild. Horizontal and vertical flip the render. 4-way combines both — every quadrant mirrors the others. Alternative 4-way does horizontal first, then vertical, which gives a different feel. Try symmetry on a Burning Ship or Celtic fractal — instant mandala.

The Quick Controls panel (press Q) has gamma, exposure, contrast, and hue — tweak these while watching the render update live. Hue shifts the color without re-rendering.

Quick Tips

  • Start with Med quality to find a composition, then go High/Ultra for the final render.
  • Use adaptive sampling — it's almost always faster.
  • Bloom + microcontrast is the easiest way to make renders look pro.
  • Save presets you like. Presets save the formula, not the effects.
  • The Debugger tab lets you test your filter/tracer on a single point before committing to a full render.