Photo Fractals

Christopher Nicolai | moc.scilednam@sirhc

Interactive color camera fractal. Tap, drag, pinch, and tilt to explore Mandelbrot and Julia sets. Use photos as source material for iterative conformal mapping. Realtime WebGL fractal photography on your phone's GPU. Make your own fractal photos free online.

See also: Michael Rule's Perceptron (Rapid Fractal Rendering with Conformal Mapping and Video Feedback)

Photo Fractals

This is a camera crossed with a fractal explorer (Mandelbrot and Julia sets; Newton fractals).
Swirl the fractal with your finger, or using your phone's tilt sensor.
Add Wolfram-Reynolds radial cellular automata on top.
High-res prints available on request.

Basics

Press 📷 to choose a video source.
Press 🌈 to switch between image colors or color table rendering.
There are four rendering modes:
A: The pixel z0 = x + yi takes the average color of source pixels at z0, z1, z2, ..., zn.
B: The pixel zn = x + yi takes the average color of source pixels at zn, zn-1, zn-2, ..., z0. For each zi, there are two solutions for zi-1. We pick the one nearest to zi.
C: The image is first made into black and white, by thresholding or dithering. Then for each pixel z0 we find the escape iteration number by finding the first zi which is on a white pixel. We use that number as an index into the color table.
D: We ignore the image. Pixels are colored by how quickly they converge (| zi - zi-1 < .1 |).

Touch

Press 🌀 then drag along the picture to change the fractal (Julia coordinate).
Press 🕂 to pan and pinch-zoom.
Press CA then tap the picture to start a radial cellular automaton.

Gallery

Press # to browse saved pics, or upload your own to the shared gallery
Speed Dial pics are saved to your device, and not uploaded.

Tilt

Press 🏄 to control the picture by tilting your phone.
🏂 starts tilting; the slider controls sensitivity.
📲 lets you connect other tilting phones.
The menu has a choice of variables to tilt; by default, the Julia c coordinate.
recenters.

🎨 Colors

In 🌈 mode A, B: adjusts brightness, hue, etc.
In 🌈 mode C, D: custom color table.
+, -: add or remove handles.
Pick a handle to adjust Position, Transition type, Hue, Saturation, and Value (brightness).
📌 saves as a favorite.

Fractal controls

Iterations: max iterations per pixel.
Colors: number of times the color wheel is repeated between 0 and max iterations.
Reset:
🌌 returns to the full Mandelbrot set.
🕸 resets the geometry (distortion matrix and tiling).
📷 clears the photo.
z' =: iteration function in terms of z, the previous iteration, c, the start pixel, and real variables p, q, and r. The expression is interpreted by the Wolfram Cloud, so transcendental functions e.g. Sin[z] are allowed.
p, q, r: sliders which can be used as variables in the iteration function.

🕸 Geometry

Adjusts c at each point by an amount proportional to z0.
c' = c + Distortion × z0, where Distortion is the 2x2 matrix:
Stretch1Skew1
Stretch2Skew2
To produce a Tile effect, we can quantize before (row 1: real and imaginary) and/or after (row 2) multiplying by Distortion.

🌎 Map

Shows the Julia coordinate and zoom region.
█ zoom area
█ target Julia coord
█ actual Julia coord

📠 High-res prints

Email @ for a download code.

🎡 Animation

Rhythmically varies the Julia coordinate.

CA Cellular Automata

Generates radial patterns based on Wolfram's elementary cellular automaton rules.
The automata are developed in all four directions according to the scheme by Daniel Reynolds (SCANTRON).
The seed is a 3x3 square which presents 3 seed cell in each direction. To present the same seed in all directions, we repeat [a] [b] around the perimeter, where [a] and [b] are user-configurable. In the traditional downward direction, we can start the seed row with [a] (bind left) or [b] (bind right). Offset 0 sets a cell based on the three cells directly above it.
If you have modified the fractal geometry (stretch, skew), active cells morph to show the fractal without distortion.

Credits

Christopher Nicolai: camera concept, programming, UI design, remote sensors.
Daniel Reynolds (SCANTRON): cellular automaton concept.
Benoit Mandelbrot: Julia set visualizations by escape iteration number (🌈 mode C).
Gaston Julia: discovered z = z2 + c.
Michael Rule: developed a similar fractal camera, which he described via conformal mapping

Loading...

your contentment will return shortly...
Outdated browser: Your web browser is too old. Please use an up-to-date, modern browser such as Firefox, Chrome, Safari, Edge, or Opera.
📷
Christopher Nicolai mandelics.com
🌄
🎨
P:
T:
H:
S:
V:
Brightness:
Contrast:
Saturation:
Hue:
📌
Iterations:
Colors:
z'=
p:
q:
r:
🕸
Stretch:
Skew:
Tile:
🌎
🎡
Strength:
BPM:
Meter:
Phase:
📠
Width:
Height:
Code:
email me for a code
Remote: #
Remote: #
Size:
Rule: Seed:
Offset: Bind:
Speed:
Fade:
Tune your phone to mandelics.com/tilt#joker to join in