Making Fractal Wallpapers

A degree-four Julia set in yellow, orange, and pale green on deep blue: a four-armed cross of filigree around a small dark center, with spirals curling off its edges.

New here? Start here for a short tour of the whole project.

This site covers two things: rendering escape-time fractals quickly, and automatically searching them for the locations and rendering choices that make beautiful wallpapers. A feature-rich fractal explorer lets you browse the wallpaper galleries, explore their local neighborhoods, and navigate to new and potentially very deep areas of each fractal.

The core rendering code is in fractal-wallpapers and the explorer code lives in fractals. To browse the finished wallpapers, open the Gallery tab in the explorer, or get them at full size from the wallpaper packs.

Contents

  1. Overview

    The project is a pipeline with three parts: find locations worth drawing, draw and judge many candidate wallpapers at each one, and curate a wallpaper gallery from everything found. Here, we walk through all three at a high level before later sections take each one in turn.

  2. Escape-time fractals

    Every picture on this site comes from iterating a short formula on the complex plane and counting how long each point takes to escape. Here, we introduce the four families the project draws: the Mandelbrot set, the multibrots, Julia sets, and the Phoenix fractal.

  3. Rendering fundamentals

    A fractal starts as a grid of integer escape counts, and coloring those directly gives visible bands. Here, we show how the smooth escape count avoids the step-wise field that integer counts produce, what the iteration cap and the sample count each control, and how the palette's range is fitted to each frame.

  4. Rendering modes

    The escape count is only one thing you can measure about an orbit. This section catalogs the rendering modes the project uses: measurements taken along the orbit's path, orbit traps, blends of two renderings, and modes that paint directly while the iteration runs.

  5. Finding good locations

    Most views of a fractal make a mediocre wallpaper. Here, we show how the search finds the good ones: cheap structural tests that reject most candidates, and a guided walk that descends toward miniature copies of the set and reframes what it finds.

  6. Training judges

    Deciding what looks good is the job of four small networks trained on my ratings: one scores a location, one scores a finished wallpaper, one picks a palette, and one decides which wallpapers are good enough for a gallery. Here, we show the four-point scale they learn from, what each judge sees, and how each network is designed and trained.

  7. Color palettes

    Color palettes are a core mechanism for rendering escape-time fractals. Here, we show how we created a diverse set of roughly 1,000 dramatic color palettes, and how we apply them to the fields from rendering modes to give many options for coloring each wallpaper.

  8. Finding good wallpapers

    A good location still has to be drawn well. Here, we show how the pipeline draws many candidate wallpapers at each location, across rendering modes and palettes, and keeps the ones the wallpaper judge scores highest.

  9. Gallery curation

    The thousand highest-scoring pictures would make a poor gallery, full of near-duplicates in the same few colors. Here, we show how a gallery is chosen as a whole from everything above a quality bar, with one picture per location, a test that keeps near-duplicates out, and limits that stop any one color, palette, or rendering mode from dominating.

  10. Full pipeline

    The three parts (finding good locations, finding good wallpapers, and curating galleries) are really one loop. Here, we show how they connect through two growing stores and how a gallery's gaps tell the next search what to look for.

  11. Fractal atlases

    Each fractal family is a big place, and the good wallpapers are scattered across it. Here, we map each family with the locations the pipeline found marked on it, and each mark can be opened and manipulated in the explorer.

  12. Deep zoom rendering

    Past a certain depth, ordinary double-precision arithmetic can no longer tell neighboring pixels apart, which creates glaring visual artifacts. Using higher-precision math everywhere makes rendering orders of magnitude slower, but we show how perturbation makes it possible to render the beautiful deeper areas of these fractals comparatively fast.

  13. Other artistic techniques

    Fractal artists use many techniques not currently used in the galleries or supported by the explorer. This section surveys some of them, including Julia morphing, exponential-map zooms, and slope shading.

  14. Fractal math

    A lot of beautiful mathematics sits behind these fractals. Here, we collect some favorite results, especially the ones that turn directly into tools for making pictures.

Wallpaper packs

The finished wallpapers, ready to download at full size.

Explorer

Draw these fractals yourself, with the same renderer the wallpapers were made with, running in your browser. Every view has a shareable link, and every gallery image can be manipulated and its local area explored.