Mandelbrot Set: escape-time rendering with real-axis symmetry

A classic for a reason: an escape-time Mandelbrot renderer, compiled from real PatLang source to WebAssembly and run live below โ€” every pixel's iteration count is genuine PatLang computation, not a JS reimplementation with PatLang narrating it. Pan by dragging the canvas; zoom by scrolling over it (zooms toward the cursor, not just the centre).

The one classic optimisation this demo doesn't skip: the Mandelbrot set is symmetric about the real axis โ€” a point c and its complex conjugate always have identical escape behaviour, since squaring a complex number and its conjugate produces the same magnitude at every iteration. Whenever the current view is centred exactly on the real axis (cy == 0 โ€” the default view, and where you land after "Reset view"), only the top half of the grid is actually iterated; the bottom half is copied directly from it, for roughly half the work. Panning away from the real axis breaks the exact pixel-for-pixel mirroring a screen row needs (row py's complex-plane offset and row h-1-py's are only exact negatives of each other when the view's own vertical centre is zero), so the fast path is honestly gated on cy == 0 rather than applied unconditionally when it would silently produce a wrong picture off-axis. Watch the timing readout roughly double the moment you pan off the real axis, and roughly halve again the moment you scroll back to a view centred on it.

PatLang source
# Mandelbrot set escape-time renderer, with the classic real-axis
# (y -> -y) symmetry exploited to halve the work: c and its complex
# conjugate always have identical escape behaviour, so whenever the
# current view is centered on the real axis (cy == 0) only the top half
# of the grid is actually iterated -- the bottom half is a direct copy.
# Panning off the real axis (cy != 0) breaks that exact pixel-for-pixel
# mirroring (row py's y-coordinate and row (h-1-py)'s are no longer
# exact negatives of each other once the view's own center is offset),
# so the symmetry fast path is honestly gated on cy == 0 rather than
# applied unconditionally.
#
# argv: [cx, cy, scale, max_iter] (all optional, sane defaults below).
# scale is the complex-plane distance spanned by one pixel -- smaller
# scale = more zoomed in. Output: "GRID" then H lines of W single-char
# palette-bucketed pixels, then "TIME" and the render time in ms.

make a function called mandel_palette returns p
  return "0123456789abcdefghijklmnopqrstuvwxyz"
end

make a function called mandel_bucket takes n, max_iter returns ch
  if n >= max_iter then
    return "."
  else
    let idx = to_num((n * 35) / max_iter)
    return substr(mandel_palette(), idx, 1)
  end
end

# Returns the escape-time iteration count for c = cx + cy*i (capped at
# max_iter for points that never escape the classic |z| > 2 bound).
make a function called mandel_iter takes cx, cy, max_iter returns n
  let x = 0
  let y = 0
  let n = 0
  let escaped = false
  while (n < max_iter) and (not escaped) do
    let x2 = x * x
    let y2 = y * y
    if x2 + y2 > 4 then
      let escaped = true
    else
      let xt = x2 - y2 + cx
      let yt = 2 * x * y + cy
      let x = xt
      let y = yt
      let n = n + 1
    end
  end
  return n
end

make a function called mandel_render_row takes cx, cy, scale, max_iter, w, h, py returns row
  let b = sb_new()
  # Pixel-CENTER sampling (py + 0.5, not py) is what makes row (h-1-py)
  # an exact mirror of row py when cy == 0 -- it's what makes offset(py)
  # and offset(h-1-py) exact negatives of each other for any h, not an
  # approximation that happens to look right.
  let y = cy + (py + 0.5 - h / 2) * scale
  let px = 0
  while px < w do
    let x = cx + (px + 0.5 - w / 2) * scale
    let n = mandel_iter(x, y, max_iter)
    sb_push(b, mandel_bucket(n, max_iter))
    let px = px + 1
  end
  return sb_str(b)
end

make a function called mandel_render takes cx, cy, scale, max_iter, w, h returns done
  let use_symmetry = cy == 0
  let half_h = h / 2
  let rows = []
  let py = 0
  while py < h do
    let need_compute = true
    if use_symmetry and (py >= half_h) then
      let need_compute = false
    end
    if need_compute then
      let row = mandel_render_row(cx, cy, scale, max_iter, w, h, py)
      let rows = list_push(rows, row)
    else
      let mirror_idx = h - 1 - py
      let rows = list_push(rows, rows[mirror_idx])
    end
    let py = py + 1
  end
  print("GRID")
  let i = 0
  while i < h do
    print(rows[i])
    let i = i + 1
  end
  return true
end

let cli_args = argv()
let cx = -0.5
let cy = 0
let scale = 0.0125
let max_iter = 80
if cli_args.length > 0 then
  let cx = to_num(cli_args[0])
end
if cli_args.length > 1 then
  let cy = to_num(cli_args[1])
end
if cli_args.length > 2 then
  let scale = to_num(cli_args[2])
end
if cli_args.length > 3 then
  let max_iter = to_num(cli_args[3])
end

let t0 = now_ms()
mandel_render(cx, cy, scale, max_iter, 240, 240)
let t1 = now_ms()
print("TIME")
print(t1 - t0)

Interpreted run on the build machine (pat --ir-run, default view):

GRID
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222221111111111111111111111111111100000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222211111111111111111111111111111000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111122235333222222222111111111111111111111111111110000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111112222336333532222222211111111111111111111111111111100000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111122222233445332222222221111111111111111111111111111110000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222233344332222222222111111111111111111111111111111100000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222223345333222222222211111111111111111111111111111110000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222223355443222222222221111111111111111111111111111111100000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222223348753332222222222111111111111111111111111111111110000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222223348.54333333333322211111111111111111111111111111111100000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222233856d8433333335332221111111111111111111111111111111110000000000000000000000000000000000000000000
000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222223334456433333346432221111111111111111111111111111111111100000000000000000000000000000000000000000
000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222233333457644445964332222111111111111111111111111111111111110000000000000000000000000000000000000000
000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222233333357754567b56332222211111111111111111111111111111111111000000000000000000000000000000000000000
000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222333333345976a85433332222221111111111111111111111111111111111100000000000000000000000000000000000000
000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222223333333445677654333332222222111111111111111111111111111111111111000000000000000000000000000000000000
0000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222233333334445c6544333332222222211111111111111111111111111111111111100000000000000000000000000000000000
0000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222333333334458a8544333332222222221111111111111111111111111111111111110000000000000000000000000000000000
0000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222223333333345567o8544333333222222222111111111111111111111111111111111111000000000000000000000000000000000
0000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222233333333457778c7659333333222222222211111111111111111111111111111111111100000000000000000000000000000000
000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222223333333458a99hna7b6433333322222222222111111111111111111111111111111111110000000000000000000000000000000
00000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222223334a4444567as..fk99443333322222222222211111111111111111111111111111111111000000000000000000000000000000
000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222333347l54456a.....b75444334432222222222221111111111111111111111111111111111100000000000000000000000000000
000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222223344967f55c878g....b76544586932222222222222211111111111111111111111111111111110000000000000000000000000000
0000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222335679b98767sai.r..ua88655796333222222222222221111111111111111111111111111111111000000000000000000000000000
00000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222223334756bb8c9.q.......gd766a75433322222222222222211111111111111111111111111111111100000000000000000000000000
000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222333334458.gof...........9b788a533322222222222222221111111111111111111111111111111110000000000000000000000000
000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222223333334457h..............dha.75533332222222222222222211111111111111111111111111111111000000000000000000000000
0000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222333333344569.................hc4433332222222222222222221111111111111111111111111111111100000000000000000000000
0000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222223333333345879f................854333333222222222222222222211111111111111111111111111111100000000000000000000000
0000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222233333333345e9ot...............d765333333322222222222222222221111111111111111111111111111110000000000000000000000
00000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222233333333333498.x................f996333333332222222222222222222111111111111111111111111111111000000000000000000000
000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222223333333333334569..................sa5333333333222222222222222222211111111111111111111111111111100000000000000000000
00000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222333333333333334445bb................e754433333333322222222222222222221111111111111111111111111111100000000000000000000
00000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222223333333333333333333333334445bm...............nbg54433333333332222222222222222222211111111111111111111111111110000000000000000000
0000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222233333334333333333333333334444568e...............f754443333333333222222222222333322211111111111111111111111111111000000000000000000
0000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222334333335a5333333333333344444556dl..............h7554444333334333332222222233337332221111111111111111111111111111100000000000000000
0000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111112222222222223a874484467543333334755h44445555678.............n7665554444444e533333333333333335592222111111111111111111111111111100000000000000000
000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111122222222222223337aa5767.74433333447aa7555n76667789f..........l87766556e544468753333333333333335743222211111111111111111111111111110000000000000000
00000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222333457978p765444334457ehl767.p78.8w.abdi......pdbabd8g.7ev7556ohk7433333333333334b533222221111111111111111111111111111000000000000000
000000000000000111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222223333467df87655m444447ob..c79..wd.r..................g..9o.b6689def73333333333334b.733322221111111111111111111111111111000000000000000
00000000000000111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222223333457faied77lo6545567d..o9h..m........................k..a87.r.w77433333443334457c33332222111111111111111111111111111100000000000000
0000000000000011111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222333359m77fogb9aoa655668....................................r.a...ei5444444o6854445a643442222111111111111111111111111111100000000000000
0000000000000111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222333357667e...tn.9766l.8b.........................................e7654444579sb55567767b62222211111111111111111111111111110000000000000
0000000000001111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222223333334557do.....h.78k...........................................la8acv55557ga77jb78d75332222211111111111111111111111111111000000000000
0000000000001111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222223333334477al......b8.e.............................................h.vc558ea.x.acbfb774332222221111111111111111111111111111000000000000
000000000001111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222333333347jv.......b...................................................8767l.......i7676532222221111111111111111111111111111100000000000
00000000000111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222333333334ee........l....................................................q79.........f545332222221111111111111111111111111111100000000000
0000000000111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222233333334469ah.....s......................................................ab.......g75443322222222111111111111111111111111111110000000000
00000000001111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222223333333444569s............................................................pd........76533322222222111111111111111111111111111110000000000
000000000111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222333333344445678adi..................................................................wa9a33322222222111111111111111111111111111111000000000
00000000011111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222233333444445577......................................................................eh8433322222222111111111111111111111111111111000000000
00000000111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222333334ag5556ef9.....................................................................gh54333322222222211111111111111111111111111111100000000
0000000011111111111111111111111111111111111111111111111111122222222222222222222222222222222222222223333454j7b6567..h..................................................................dt.7544333322222222211111111111111111111111111111100000000
00000000111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222333337b8.l88977a.....................................................................976544333332222222211111111111111111111111111111100000000
000000011111111111111111111111111111111111111111111111122222222222222222222222222222222222222222333333346a.hnc.a9.......................................................................8j544333333222222211111111111111111111111111111110000000
00000001111111111111111111111111111111111111111111111222333222222222222222222222222222222222223333333334c9cl....c........................................................................m656333333222222211111111111111111111111111111110000000
000000111111111111111111111111111111111111111111111222233433322222222222222222222222222222233333333333345e8e.............................................................................a8k8433333322222211111111111111111111111111111111000000
00000011111111111111111111111111111111111111111111222223394333222222222222222222222222233333333333333334456w.............................................................................h..h433333332222211111111111111111111111111111111000000
00000011111111111111111111111111111111111111111122222223334653333333333333333333333333333333333333333334456c................................................................................b443333473222211111111111111111111111111111111000000
0000011111111111111111111111111111111111111111122222222333474333333333333333353333333333333333333333334455679d............................................................................na65544445a3222221111111111111111111111111111111100000
00000111111111111111111111111111111111111111122222222222335.63333333333333333a43333333333333333333333345a77.f...............................................................................7679545ci3322221111111111111111111111111111111100000
000001111111111111111111111111111111111111112222222222223347443333333333333345c433333333333333333333345b.88.................................................................................8baja56n43322221111111111111111111111111111111100000
00001111111111111111111111111111111111111122222222222222348754333333333333348754333333333333333333334gf.efhf................................................................................c...a99757322221111111111111111111111111111111110000
0000111111111111111111111111111111111111122222222222222334588444334443333344e65443333333333333333333459.x........................................................................................jje64322221111111111111111111111111111111110000
0000111111111111111111111111111111111111222222222222222333467554844f54333345978654334443333333333334456d........................................................................................hh8763222221111111111111111111111111111111110000
0001111111111111111111111111111111111112222222222222222333356aaa97577444444567a97544459443333333334445678c......................................................................................a65r33222221111111111111111111111111111111111000
0001111111111111111111111111111111111122222222222222223333344557eb7d75f5444556bee8555e7544333333344445.9e....................................................................................djf.54333222221111111111111111111111111111111111000
000111111111111111111111111111111111122222222222222222333333444699haa7a65555678b.9667a7544433334444457hnf.....................................................................................e6543333222221111111111111111111111111111111111000
000111111111111111111111111111111112222222222222222223333333344567am.ac767767sst.y7678ib5554444444445ck.......................................................................................87433332222221111111111111111111111111111111111000
001111111111111111111111111111111122222222222222222233333333344568f..s.c77tl8av..k9989cv66e544444445579.........................................................................................443332222221111111111111111111111111111111111100
00111111111111111111111111111111122222222222222222223333333334557ej....d99d.nf...h..b..f7ad6544444556ia.......................................................................................a6544332222221111111111111111111111111111111111100
0011111111111111111111111111111122222222222222222223333333333497dd.....hc............s...9di65555555b..r......................................................................................b7655c32222221111111111111111111111111111111111100
001111111111111111111111111111122222222222222222223333333333445779j....l.................fsfaf5555567a........................................................................................l.v69h32222221111111111111111111111111111111111100
00111111111111111111111111111122222222222222222222333333333444566ec........................kbb6555667nk.........................................................................................p99432222221111111111111111111111111111111111100
011111111111111111111111111111222222222222222222233333333444455678ae..........................976666q...........................................................................................od9432222221111111111111111111111111111111111110
011111111111111111111111111112222222222222222222333333334b555e67d.............................e766677e........................................................................................a8n74332222221111111111111111111111111111111111110
0111111111111111111111111111222222222222222222233333333346b67898g..............................b7777i.........................................................................................d6433332222221111111111111111111111111111111111110
011111111111111111111111111222222222222222222333333333334567c.fi................................9777a.........................................................................................85433322222221111111111111111111111111111111111110
011111111111111111111111112222222222222222223344333333344456od..................................h888b..........................................................................................7643322222221111111111111111111111111111111111110
01111111111111111111111112222222222222222233335k4433333444567ry..................................a99d..........................................................................................a933222222221111111111111111111111111111111111110
0111111111111111111111112222222222222222233333575444334444668bk..................................kaap.........................................................................................or633222222221111111111111111111111111111111111110
11111111111111111111111222222222222222233333334665444555557e......................................baq.........................................................................................54333222222221111111111111111111111111111111111111
111111111111111111111122222222222222223333333345865556755667......................................qc.........................................................................................p73332222222221111111111111111111111111111111111111
1111111111111111111122222222222222223333333333445ae656967679o......................................e..........................................................................................73332222222221111111111111111111111111111111111111
11111122222211111122222222222222222333333333334457a778b8b779j......................................g........................................................................................7533322222222221111111111111111111111111111111111111
11122222222222222223332222222222233333333333334457c.deg..a9a.......................................k........................................................................................k433322222222221111111111111111111111111111111111111
11222222222222223353333333222222333333333333345557ik......cb...............................................................................................................................h4333322222222221111111111111111111111111111111111111
1222222222222233335333333333333333333333444445b669a........f..............................................................................................................................743333322222222221111111111111111111111111111111111111
12222222222223333344333333333433333333345754456b89e......................................................................................................................................f433333222222222221111111111111111111111111111111111111
2222223333223333356s5433333346444444434458566678ngp....................................................................................................................................l64433333222222222221111111111111111111111111111111111111
223333333334334347e.754444445765555555666g8787lc......................................................................................................................................7654333333222222222221111111111111111111111111111111111111
223333333334334347e.754444445765555555666g8787lc......................................................................................................................................7654333333222222222221111111111111111111111111111111111111
2222223333223333356s5433333346444444434458566678ngp....................................................................................................................................l64433333222222222221111111111111111111111111111111111111
12222222222223333344333333333433333333345754456b89e......................................................................................................................................f433333222222222221111111111111111111111111111111111111
1222222222222233335333333333333333333333444445b669a........f..............................................................................................................................743333322222222221111111111111111111111111111111111111
11222222222222223353333333222222333333333333345557ik......cb...............................................................................................................................h4333322222222221111111111111111111111111111111111111
11122222222222222223332222222222233333333333334457c.deg..a9a.......................................k........................................................................................k433322222222221111111111111111111111111111111111111
11111122222211111122222222222222222333333333334457a778b8b779j......................................g........................................................................................7533322222222221111111111111111111111111111111111111
1111111111111111111122222222222222223333333333445ae656967679o......................................e..........................................................................................73332222222221111111111111111111111111111111111111
111111111111111111111122222222222222223333333345865556755667......................................qc.........................................................................................p73332222222221111111111111111111111111111111111111
11111111111111111111111222222222222222233333334665444555557e......................................baq.........................................................................................54333222222221111111111111111111111111111111111111
0111111111111111111111112222222222222222233333575444334444668bk..................................kaap.........................................................................................or633222222221111111111111111111111111111111111110
01111111111111111111111112222222222222222233335k4433333444567ry..................................a99d..........................................................................................a933222222221111111111111111111111111111111111110
011111111111111111111111112222222222222222223344333333344456od..................................h888b..........................................................................................7643322222221111111111111111111111111111111111110
011111111111111111111111111222222222222222222333333333334567c.fi................................9777a.........................................................................................85433322222221111111111111111111111111111111111110
0111111111111111111111111111222222222222222222233333333346b67898g..............................b7777i.........................................................................................d6433332222221111111111111111111111111111111111110
011111111111111111111111111112222222222222222222333333334b555e67d.............................e766677e........................................................................................a8n74332222221111111111111111111111111111111111110
011111111111111111111111111111222222222222222222233333333444455678ae..........................976666q...........................................................................................od9432222221111111111111111111111111111111111110
00111111111111111111111111111122222222222222222222333333333444566ec........................kbb6555667nk.........................................................................................p99432222221111111111111111111111111111111111100
001111111111111111111111111111122222222222222222223333333333445779j....l.................fsfaf5555567a........................................................................................l.v69h32222221111111111111111111111111111111111100
0011111111111111111111111111111122222222222222222223333333333497dd.....hc............s...9di65555555b..r......................................................................................b7655c32222221111111111111111111111111111111111100
00111111111111111111111111111111122222222222222222223333333334557ej....d99d.nf...h..b..f7ad6544444556ia.......................................................................................a6544332222221111111111111111111111111111111111100
001111111111111111111111111111111122222222222222222233333333344568f..s.c77tl8av..k9989cv66e544444445579.........................................................................................443332222221111111111111111111111111111111111100
000111111111111111111111111111111112222222222222222223333333344567am.ac767767sst.y7678ib5554444444445ck.......................................................................................87433332222221111111111111111111111111111111111000
000111111111111111111111111111111111122222222222222222333333444699haa7a65555678b.9667a7544433334444457hnf.....................................................................................e6543333222221111111111111111111111111111111111000
0001111111111111111111111111111111111122222222222222223333344557eb7d75f5444556bee8555e7544333333344445.9e....................................................................................djf.54333222221111111111111111111111111111111111000
0001111111111111111111111111111111111112222222222222222333356aaa97577444444567a97544459443333333334445678c......................................................................................a65r33222221111111111111111111111111111111111000
0000111111111111111111111111111111111111222222222222222333467554844f54333345978654334443333333333334456d........................................................................................hh8763222221111111111111111111111111111111110000
0000111111111111111111111111111111111111122222222222222334588444334443333344e65443333333333333333333459.x........................................................................................jje64322221111111111111111111111111111111110000
00001111111111111111111111111111111111111122222222222222348754333333333333348754333333333333333333334gf.efhf................................................................................c...a99757322221111111111111111111111111111111110000
000001111111111111111111111111111111111111112222222222223347443333333333333345c433333333333333333333345b.88.................................................................................8baja56n43322221111111111111111111111111111111100000
00000111111111111111111111111111111111111111122222222222335.63333333333333333a43333333333333333333333345a77.f...............................................................................7679545ci3322221111111111111111111111111111111100000
0000011111111111111111111111111111111111111111122222222333474333333333333333353333333333333333333333334455679d............................................................................na65544445a3222221111111111111111111111111111111100000
00000011111111111111111111111111111111111111111122222223334653333333333333333333333333333333333333333334456c................................................................................b443333473222211111111111111111111111111111111000000
00000011111111111111111111111111111111111111111111222223394333222222222222222222222222233333333333333334456w.............................................................................h..h433333332222211111111111111111111111111111111000000
000000111111111111111111111111111111111111111111111222233433322222222222222222222222222222233333333333345e8e.............................................................................a8k8433333322222211111111111111111111111111111111000000
00000001111111111111111111111111111111111111111111111222333222222222222222222222222222222222223333333334c9cl....c........................................................................m656333333222222211111111111111111111111111111110000000
000000011111111111111111111111111111111111111111111111122222222222222222222222222222222222222222333333346a.hnc.a9.......................................................................8j544333333222222211111111111111111111111111111110000000
00000000111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222333337b8.l88977a.....................................................................976544333332222222211111111111111111111111111111100000000
0000000011111111111111111111111111111111111111111111111111122222222222222222222222222222222222222223333454j7b6567..h..................................................................dt.7544333322222222211111111111111111111111111111100000000
00000000111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222333334ag5556ef9.....................................................................gh54333322222222211111111111111111111111111111100000000
00000000011111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222233333444445577......................................................................eh8433322222222111111111111111111111111111111000000000
000000000111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222333333344445678adi..................................................................wa9a33322222222111111111111111111111111111111000000000
00000000001111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222223333333444569s............................................................pd........76533322222222111111111111111111111111111110000000000
0000000000111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222233333334469ah.....s......................................................ab.......g75443322222222111111111111111111111111111110000000000
00000000000111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222333333334ee........l....................................................q79.........f545332222221111111111111111111111111111100000000000
000000000001111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222333333347jv.......b...................................................8767l.......i7676532222221111111111111111111111111111100000000000
0000000000001111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222223333334477al......b8.e.............................................h.vc558ea.x.acbfb774332222221111111111111111111111111111000000000000
0000000000001111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222223333334557do.....h.78k...........................................la8acv55557ga77jb78d75332222211111111111111111111111111111000000000000
0000000000000111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222333357667e...tn.9766l.8b.........................................e7654444579sb55567767b62222211111111111111111111111111110000000000000
0000000000000011111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222333359m77fogb9aoa655668....................................r.a...ei5444444o6854445a643442222111111111111111111111111111100000000000000
00000000000000111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222223333457faied77lo6545567d..o9h..m........................k..a87.r.w77433333443334457c33332222111111111111111111111111111100000000000000
000000000000000111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222223333467df87655m444447ob..c79..wd.r..................g..9o.b6689def73333333333334b.733322221111111111111111111111111111000000000000000
00000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222333457978p765444334457ehl767.p78.8w.abdi......pdbabd8g.7ev7556ohk7433333333333334b533222221111111111111111111111111111000000000000000
000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111122222222222223337aa5767.74433333447aa7555n76667789f..........l87766556e544468753333333333333335743222211111111111111111111111111110000000000000000
0000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111112222222222223a874484467543333334755h44445555678.............n7665554444444e533333333333333335592222111111111111111111111111111100000000000000000
0000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222334333335a5333333333333344444556dl..............h7554444333334333332222222233337332221111111111111111111111111111100000000000000000
0000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222233333334333333333333333334444568e...............f754443333333333222222222222333322211111111111111111111111111111000000000000000000
00000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222223333333333333333333333334445bm...............nbg54433333333332222222222222222222211111111111111111111111111110000000000000000000
00000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222333333333333334445bb................e754433333333322222222222222222221111111111111111111111111111100000000000000000000
000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222223333333333334569..................sa5333333333222222222222222222211111111111111111111111111111100000000000000000000
00000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222233333333333498.x................f996333333332222222222222222222111111111111111111111111111111000000000000000000000
0000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222233333333345e9ot...............d765333333322222222222222222221111111111111111111111111111110000000000000000000000
0000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222223333333345879f................854333333222222222222222222211111111111111111111111111111100000000000000000000000
0000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222333333344569.................hc4433332222222222222222221111111111111111111111111111111100000000000000000000000
000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222223333334457h..............dha.75533332222222222222222211111111111111111111111111111111000000000000000000000000
000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222333334458.gof...........9b788a533322222222222222221111111111111111111111111111111110000000000000000000000000
00000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222223334756bb8c9.q.......gd766a75433322222222222222211111111111111111111111111111111100000000000000000000000000
0000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222335679b98767sai.r..ua88655796333222222222222221111111111111111111111111111111111000000000000000000000000000
000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222223344967f55c878g....b76544586932222222222222211111111111111111111111111111111110000000000000000000000000000
000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222333347l54456a.....b75444334432222222222221111111111111111111111111111111111100000000000000000000000000000
00000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222223334a4444567as..fk99443333322222222222211111111111111111111111111111111111000000000000000000000000000000
000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222223333333458a99hna7b6433333322222222222111111111111111111111111111111111110000000000000000000000000000000
0000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222233333333457778c7659333333222222222211111111111111111111111111111111111100000000000000000000000000000000
0000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222223333333345567o8544333333222222222111111111111111111111111111111111111000000000000000000000000000000000
0000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222333333334458a8544333332222222221111111111111111111111111111111111110000000000000000000000000000000000
0000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222233333334445c6544333332222222211111111111111111111111111111111111100000000000000000000000000000000000
000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222223333333445677654333332222222111111111111111111111111111111111111000000000000000000000000000000000000
000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222333333345976a85433332222221111111111111111111111111111111111100000000000000000000000000000000000000
000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222233333357754567b56332222211111111111111111111111111111111111000000000000000000000000000000000000000
000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222233333457644445964332222111111111111111111111111111111111110000000000000000000000000000000000000000
000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222223334456433333346432221111111111111111111111111111111111100000000000000000000000000000000000000000
0000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222233856d8433333335332221111111111111111111111111111111110000000000000000000000000000000000000000000
000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222223348.54333333333322211111111111111111111111111111111100000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222223348753332222222222111111111111111111111111111111110000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222223355443222222222221111111111111111111111111111111100000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222223345333222222222211111111111111111111111111111110000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222233344332222222222111111111111111111111111111111100000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111122222233445332222222221111111111111111111111111111110000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111112222336333532222222211111111111111111111111111111100000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111122235333222222222111111111111111111111111111110000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222211111111111111111111111111111000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222221111111111111111111111111111100000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
TIME
651

Max iterations: 80

View

Drag to pan. Scroll to zoom (toward the cursor). Symmetry engages automatically whenever the view is centred on the real axis.

starting...