Version 3. Mandelbrot Metal 3 is available for iPhone and iPad. Explore free with the Infinity Engine and all 156 built-in palettes; choose Pro for expanded creative tools and output. Requires iOS 26 or iPadOS 26 or later.

Color & Palettes

Palettes that Make Fractals Shine

Free includes 156 built-in palettes, including 55 Ultra-Wide ramps with 768 source stops. Pro adds photo-derived and custom palettes with import and export. This guide explains the path from a palette definition to the final fractal color, and how to choose settings deliberately.

Filter by Type

Filter the picker by All, Standard, Ultra-Wide, or Custom. Favorites are kept by palette name and shown ahead of non-favorites.

  • [UW] identifies a source ramp with 768 color stops. It does not select a separate shader or guarantee that every scene needs that density.
  • [C] indicates a palette you imported or created; the app adds this automatically.
Version 3 palette system

Choose a source palette, rasterize its colors into a 256- or 1,024-texel lookup table, and let the renderer sample that table from the escape coordinate. Source stop count, texture width, color space, and fractal-coordinate precision are separate choices.

Curated, High-Contrast Sets

156 hand-tuned gradients cover structural, scientific, painterly, neon, metallic, and natural color families.

Ultra-Wide (768) & Wide LUTs

Standard definitions have varying numbers of source stops; some are precomputed ramps. Each Ultra-Wide definition contains 768 stops. Named and custom sources are rasterized to the selected 256- or 1,024-texel Metal texture. The source is not universally a 512-step table, and the renderer does not force every texture to 1,024 texels.

Import from Any Image · Pro

Sample a horizontal or vertical center line through a photo or artwork, preview the result, and save a custom palette. Crop or rotate the image first to choose the colors that cross that line.

Share Palettes (Import/Export) · Pro

Move your custom palettes between iPhone and iPad or share with others via Files/Messages/Mail.

Exact LUT vs Smooth

Smooth draws a continuous gradient into the texture. Exact LUT assigns the nearest source stop to each texture texel. Metal still uses linear filtering when sampling either texture, so Exact does not mean nearest-neighbor filtering in the shader.

Wide Color (P3)

Choose Display-P3 for supported wide-gamut screens and workflows, or sRGB for broad compatibility.

Favorites & Library

Mark favorites and browse a fast thumbnail grid.

Manage Palettes

More (…) → Manage Palettes: swipe a custom palette toward the leading edge to reveal Delete.

Live Preview

Compare palettes on your current composition. Color changes request a fresh orbit-and-color render, so a demanding deep view can take time to settle.

Source density and visible bands

The strips illustrate dense and sparse color variation. They are not captured app output or a measured comparison. Actual banding depends on the source colors, texture width, interpolation, escape values, contrast, and display.

A wider LUT retains more variation along the gradient. It cannot add detail that was absent from the source or increase the precision of a fractal coordinate.

Color Settings

Hi-res LUT

Enabled selects a one-row texture with 1,024 texels; disabled selects 256. The renderer uploads that actual width. At four bytes per BGRA texel, the raw row is 4 KiB or 1 KiB before resource overhead. A denser table can preserve subtle gradient variation; it is not a universal performance or smoothness guarantee.

Exact LUT and Smooth

Exact LUT chooses the nearest source stop while constructing each texel. Smooth uses a Core Graphics gradient. Both are then linearly sampled in Metal. Try Exact for deliberately stepped color and Smooth for blended transitions. Exact photo import is a separate choice: it controls how many sampled source stops are retained.

Display-P3 and sRGB

Display-P3 can represent colors outside the sRGB gamut and is used during palette construction and color conversion. sRGB is useful for common sharing workflows. A wider gamut does not mean more channel bits or smoother arithmetic. The active Metal LUT and output are BGRA8Unorm; the current implementation does not establish a scene-linear, HDR, or validated ICC round-trip pipeline. Check an exported PNG in its intended destination.

Manage custom palettes

Open More (…) → Manage Palettes to manage your custom library. Use the palette row actions to export or delete an item, and the manager’s Import or Export All controls to transfer files. Built-in palettes are protected. The detailed User Guide covers the current phone and tablet controls.

Keep a palette JSON backup before deleting a custom palette. A bookmark that refers to it by name may need that file when opened on another device.

Share Palettes (Import/Export)

Export one or all of your custom palettes to share with others or move between your devices. Import brings them into your library.

Export a Single Palette

  1. Open More (…) → Manage Palettes.
  2. Swipe right on the palette row to reveal Export.
  3. Choose a share destination (Files, Messages, Mail, etc.).

Export All (Custom) Palettes

  1. In Manage Palettes, tap Export All at the top.
  2. Save or share the exported file.

Import Palettes

  1. In Manage Palettes, tap Import at the top.
  2. Select the palette file you received or previously saved.
What’s Shared: Your palette definitions (name + color ramp/LUT) for custom palettes. Built-in palettes are not exported. On import, duplicate names are auto-numbered (e.g., “Chrome (2)”, “Chrome (3)”). Favorites/ordering are not changed.

Tip: Use Export All to back up your custom palette library or to sync between iPhone and iPad.

Palette Gallery (Partial)

Browse a few built-in samples. Toggle Smooth vs Exact LUT to see rendering differences. See below for a complete sortable list of the available palettes.

Mode: Smooth

Note: Palette names are unique. If you add a duplicate (e.g., “Chrome”), it becomes “Chrome (2)”, “Chrome (3)”, etc.

Built-in Palette List (Complete)

Showing 156 palettes. Only Name and Type are shown. Click a column header to sort.

Name Type
EmberFire / Heat
FireFire / Heat
Fire & IceFire / Heat
Hot MetalFire / Heat
LavaFire / Heat
Solar FlareFire / Heat
AmethystGem / Jewel
CitrineGem / Jewel
CoralGem / Jewel
EmeraldGem / Jewel
JadeGem / Jewel
RubyGem / Jewel
SapphireGem / Jewel
Carbon FiberMetallic / Glossy
ChromeMetallic / Glossy
Chrome (2)Metallic / Glossy
Chrome GlossyMetallic / Glossy
Cold SteelMetallic / Glossy
CoolPastel / Soft
CopperMetallic / Glossy
Copper (2)Metallic / Glossy
Copper GlowMetallic / Glossy
CybersteelMetallic / Glossy
GoldMetallic / Glossy
Gold (2)Metallic / Glossy
IridescentMetallic / Glossy
Metallic SilverMetallic / Glossy
Oil SlickMetallic / Glossy
Oil Slick (2)Metallic / Glossy
Polished GoldMetallic / Glossy
Silver (2)Metallic / Glossy
Binary StripeMonochrome / Utility
IcefireMonochrome / Utility
Mono Ramp HighMonochrome / Utility
Mono Ramp InvertedMonochrome / Utility
Noir EdgeMonochrome / Utility
Retro CRTMonochrome / Utility
Royal HCMonochrome / Utility
Sci-Fi RadarMonochrome / Utility
ArcticNatural / Atmospheric
AuroraNatural / Atmospheric
Aurora BladeNatural / Atmospheric
Aurora BorealisNatural / Atmospheric
Deep Ocean HCNatural / Atmospheric
Desert Dusk HCNatural / Atmospheric
GlacierNatural / Atmospheric
MidnightNatural / Atmospheric
OceanNatural / Atmospheric
PeacockNatural / Atmospheric
Polar NeonNatural / Atmospheric
SunsetNatural / Atmospheric
Sunset GlowNatural / Atmospheric
TwilightNatural / Atmospheric
Pastel BreezePastel / Soft
Rainbow HardRainbow / Cyclic
Rainbow SharpRainbow / Cyclic
Rainbow SmoothRainbow / Cyclic
Smooth Rainbow (Cyclic)Rainbow / Cyclic
GrayscaleScientific / Utility
Heatmap High ContrastScientific / Utility
HSVScientific / Utility
HSV HardScientific / Utility
HSV Thin BandsScientific / Utility
InfernoScientific / Utility
Inferno HardScientific / Utility
Inferno+ (Gold)Scientific / Utility
MagmaScientific / Utility
Magma+ (Warm)Scientific / Utility
PlasmaScientific / Utility
Plasma HardScientific / Utility
TurboScientific / Utility
ViridisScientific / Utility
Viridis+ (Boosted)Scientific / Utility
Sea Shells [UW]Ultra-Wide 768 Step
Dresses [UW]Ultra-Wide 768 Step
Eucalyptus [UW]Ultra-Wide 768 Step
Hurst Pool [UW]Ultra-Wide 768 Step
Guitar Player [UW]Ultra-Wide 768 Step
Arenal [UW]Ultra-Wide 768 Step
Bananas [UW]Ultra-Wide 768 Step
Beach Sunset [UW]Ultra-Wide 768 Step
Bridge [UW]Ultra-Wide 768 Step
Begonias [UW]Ultra-Wide 768 Step
Blown Glass [UW]Ultra-Wide 768 Step
Bromeliads [UW]Ultra-Wide 768 Step
Calf. Sunset [UW]Ultra-Wide 768 Step
Chihuly [UW]Ultra-Wide 768 Step
Car Show [UW]Ultra-Wide 768 Step
Dragonfly [UW]Ultra-Wide 768 Step
Gaia [UW]Ultra-Wide 768 Step
Colorful Hats [UW]Ultra-Wide 768 Step
Crab Nebula [UW]Ultra-Wide 768 Step
Golden Sunset [UW]Ultra-Wide 768 Step
Late Sunset [UW]Ultra-Wide 768 Step
Lake [UW]Ultra-Wide 768 Step
Blueberries [UW]Ultra-Wide 768 Step
Blue Heron [UW]Ultra-Wide 768 Step
State Street [UW]Ultra-Wide 768 Step
Macaw [UW]Ultra-Wide 768 Step
Misty Woods [UW]Ultra-Wide 768 Step
Marquis [UW]Ultra-Wide 768 Step
Moonstone [UW]Ultra-Wide 768 Step
Mt. Dora [UW]Ultra-Wide 768 Step
Naples Sunset [UW]Ultra-Wide 768 Step
Orchid [UW]Ultra-Wide 768 Step
Abstract [UW]Ultra-Wide 768 Step
Bookstore [UW]Ultra-Wide 768 Step
Cambria [UW]Ultra-Wide 768 Step
Crazy Patterns [UW]Ultra-Wide 768 Step
Jupiter [UW]Ultra-Wide 768 Step
Jubilant Days [UW]Ultra-Wide 768 Step
Jade [UW]Ultra-Wide 768 Step
Monet Flowers [UW]Ultra-Wide 768 Step
Mashup [UW]Ultra-Wide 768 Step
Plants [UW]Ultra-Wide 768 Step
Galaxy Quest [UW]Ultra-Wide 768 Step
Pedal Board [UW]Ultra-Wide 768 Step
Paul Klee [UW]Ultra-Wide 768 Step
Rain Clouds [UW]Ultra-Wide 768 Step
Rainy Day [UW]Ultra-Wide 768 Step
Redrum [UW]Ultra-Wide 768 Step
Roji-en [UW]Ultra-Wide 768 Step
Sarchi [UW]Ultra-Wide 768 Step
Spectrum [UW]Ultra-Wide 768 Step
Seurat [UW]Ultra-Wide 768 Step
Starry Night [UW]Ultra-Wide 768 Step
Volcanic Sky [UW]Ultra-Wide 768 Step
Volcano [UW]Ultra-Wide 768 Step
Acid DreamVivid / Artistic
Blue-Orange PunchVivid / Artistic
CandyVivid / Artistic
Cosmic FireVivid / Artistic
Cosmic PopVivid / Artistic
CyberpunkVivid / Artistic
Electric BlueVivid / Artistic
Electric JungleVivid / Artistic
Electric LimeVivid / Artistic
Electric SunsetVivid / Artistic
HypernovaVivid / Artistic
Laser LinesVivid / Artistic
Laser PopVivid / Artistic
Magenta StormVivid / Artistic
Miami LightsVivid / Artistic
Miami NightsVivid / Artistic
NeonVivid / Artistic
Photon FluxVivid / Artistic
Solar NeonVivid / Artistic
Teal-Magenta PunchVivid / Artistic
Tokyo NightsVivid / Artistic
Tropical HeatVivid / Artistic
Tropical PunchVivid / Artistic
UltravioletVivid / Artistic
Ultraviolet BlazeVivid / Artistic
Vaporwave EdgeVivid / Artistic
VibrantVivid / Artistic
Vivid NeonVivid / Artistic

How a palette colors the fractal

The orbit calculation supplies a smooth escape coordinate. Normalization and contrast remap it into a palette position. A named gradient then provides color through its lookup texture; the HSV, Fire, and Ocean shader branches can also generate color procedurally.

The orbit and color calculation share the primary compute pass. There is no persistent escape-value texture for palette-only recoloring. With 3D Look enabled, a separate relief pass shades that color using neighboring height samples.

Under supersampling, each subpixel performs its own orbit and palette lookup before the stored color components are averaged. The eight-bit normalized pipeline does not make this a scene-linear light average.

From a photograph to a portable palette

Gradient Import samples the center row or column of an RGBA8 working image. The current LUT-width setting supplies the sample count: 1,024 by default, or 256 with the lower-resolution setting. This is center-line sampling, not automatic extraction of the most common colors in the whole photograph.

The Version 3 defaults are Display-P3, saturation 1.12, gamma 0.95, and enabled 1.2× value stretch. Processing adjusts HSV value with gamma, multiplies saturation, optionally stretches value around its midpoint, and converts back to RGB. These controls change the sampled palette creatively; they do not change the renderer’s light model.

Compact import retains 64 evenly spaced anchors. Exact import retains all sampled stops. You can still choose Exact LUT or Smooth later when constructing the rendering texture.

Three files with different jobs

  • Portable palette JSON v1 carries a name, color-space label, and normalized color stops. It remains compatible with the supported 2.x and 3.x sharing path.
  • Local palette storage v2 preserves the color-space label on this device; legacy bare arrays are read as sRGB.
  • Bookmark JSON v7 preserves the composition and palette reference. Current export names a custom palette, so send its palette JSON too when the receiving device does not already have it.

The Photo2Palette command-line utility uses the same Version 3 defaults and can export JSON or developer Swift data. It also accepts explicit source and anchor counts. Its file output is a palette definition, not a pre-rendered fractal or an HDR image.

Palette sources and photo samples are saved as stops, rasterized into a 256- or 1024-texel texture, then linearly sampled by Metal before optional relief shading.
The source definition stays separate from the texture used for this render.

Continue with the rendering pipeline or the technical white paper.