Scroll or pinch to zoom · drag to pan · double-click/tap to reset · hover to move the cobweb

Warmup
Points

The logistic map is one of the simplest equations that produces chaos: xn+1 = r xn(1−xn), a single population-growth-style formula with one parameter r. Starting from some x0 in (0, 1) and iterating repeatedly, the long-term behavior of xn depends entirely on r:

The main plot is a bifurcation diagram: each vertical slice fixes r, discards a warmup number of iterations to let the sequence settle past its transient, then plots the next points values of xn. Darker pixels mean the sequence revisited that (r, x) region more often. Scroll or pinch to zoom in on any region — the branching structure keeps repeating at every scale, the same period-doubling cascade in miniature, which is what makes this a fractal rather than just a chart, and the diagram gets recomputed fresh at the new, narrower r/x range as soon as a gesture settles, so zooming in keeps revealing real detail rather than just enlarging the same pixels. The inset in the lower-left corner is that r's cobweb diagram (r = 3.5 until you hover): the parabola is f(x) = rx(1−x), the diagonal is y = x, and the red zig-zag traces x0 → x1 → x2 → … bouncing between the curve and the diagonal — converging to a point, orbiting a cycle, or filling space chaotically, matching whatever the bifurcation diagram shows at that r. Hover anywhere on the diagram to move both the red guideline and the cobweb to that r.

The whole page was created with Claude Code. These were the most significant prompts that shaped this page:

  1. Create a new fractal page about the logistic map equation, following the layout of the existing fractals.
  2. Make the cobweb diagram always on, and move it into the lower-left corner of the bifurcation diagram instead of below it.
  3. Replace click-to-zoom-in/Zoom Out with PointCloudRenderer2D's scroll/pinch-zoom-to-cursor and drag-to-pan, same as the other fractal pages — unlike those, recompute the bifurcation diagram fresh at the settled view's (r, x) window instead of just re-projecting the same points, since a frame here is cheap enough (a few million iterations) to redo live, unlike Mandelbrot's per-pixel escape-time cost.