Visualizations
095 / 500

095 · Math

Root Braids

Loop a quintic's coefficients and its roots braid, swap and refuse to come home.

The roots of z^5 + c4 z^4 + ... + c0 are tracked continuously as the coefficients move: every frame Durand-Kerner iteration restarts from the previous roots, and the step is halved recursively whenever a root would travel more than a quarter of the gap to its neighbor, so roots never swap identities by accident. When the coefficients return home the roots return as a set but possibly permuted, and the braid strip records how their strands crossed (height is the real part, the strand with the larger imaginary part passes in front). The scripted loops follow Arnold's topological proof that the quintic has no formula in radicals: a commutator of two swaps leaves the square root of the discriminant back home but the roots in a 3-cycle, and a commutator of commutators brings a nested cube root home as well while the roots stay permuted. Because the alternating group A5 is perfect, this continues at every depth, so no formula built from arithmetic and nested radicals can follow the five roots.

Try it. Drag any coefficient in the panel and bring it back to its dashed ring (it snaps home) to see which permutation you made, or drag a root directly to reshape the polynomial. Buttons or keys 1 to 4 play a swap, a commutator, a commutator of commutators and a loop of c0 around the origin; Space pauses and R resets. Left alone it tours all four.

  • Durand-Kerner continuation
  • Braid monodromy
  • Arnold's proof of Abel-Ruffini
  • Branch tracking of radicals

View the source · one module, plus a small shared runtime for sizing, the animation loop and input

Build your own

Paste this into Claude Code, Codex or any coding agent to get a simple version running, then take it wherever you like.

Build an interactive "root braids" toy with JavaScript and the HTML canvas element: drag the coefficients of a polynomial and watch its roots move and swap places. Put everything in a single index.html file with no libraries or build step, so I can open it directly in a browser.

Start simple:
- Use a cubic p(z) = z^3 + a z^2 + b z + c with complex coefficients. Pick three starting roots, expand them into a, b, c, and keep the roots in an array.
- Split the canvas in two: a small panel on the right shows a, b, c as draggable dots, and the main area shows the roots as large colored, numbered dots.
- When a coefficient moves, update the roots with Durand-Kerner iteration started from the previous roots: repeat r_i = r_i - p(r_i) / product over j != i of (r_i - r_j) a dozen times. Starting from the old roots keeps each root's identity, so root 1 stays root 1.
- If any root would move more than about a quarter of the distance to its nearest neighbor, split the coefficient change in half and do two smaller steps. This is what keeps roots from swapping identity by accident.
- Draw a fading trail behind each root and a dashed ring where each coefficient started.

Once that works, make it beautiful:
- When a dragged coefficient comes back near its ring, snap it exactly home, then match each root to the nearest starting position and show the permutation in cycle notation, like (1 2).
- Add a button that animates a loop automatically: pick two roots, rotate them half a turn around their midpoint, and recompute the coefficients from the moving roots. Then play the loop with the tracker above and watch the two roots trade places.
- Add a braid strip along the bottom: plot each root's real part against time as a colored strand, so crossings show up as a braid.

Explain the key ideas in short code comments. When you're done, tell me how to open it and suggest three directions I could take it next, such as going to degree five, playing a commutator A B A^-1 B^-1 of two swap loops, or tracking the square root of the discriminant along the path to see that it comes home even when the roots do not.
PreviousFoucault PendulumA museum pendulum ploughs a rosette into sand as the Earth turns beneath it. NextPetri FractalsBacterial colonies branch into fractals on starved agar, in a backlit petri dish.

Related visualizations

  • Newton BasinsFractals Drag the roots of a polynomial and Newton's method paints a fractal.
  • Indra's PearlsFractals Limit sets of Kleinian groups, strung as glowing necklaces of nested circles and pearls.
  • Knot Table3D Prime knots up to seven crossings, relaxed as tubes, with live Alexander polynomials.
  • Road to ChaosMath The logistic map's bifurcations, Mandelbrot bulbs and a cobweb, linked in one picture.
  • Apollonian GasketFractals An endless packing of kissing circles, each engraved with its exact integer curvature.
  • Music of the PrimesMath Riemann's explicit formula rebuilds the prime staircase from 500 zeta zeros.
  • Catalan BijectionsMath One Catalan object drawn five ways at once, linked piece by piece as it morphs.
  • Wood Wide WebNature Roots and fungal hyphae weave a soil network that shuttles carbon to shaded seedlings.
  • Collatz CoralGenerative art Thousands of Collatz sequences grow backward from 1 into a swaying coral.

Use ← and → to move between demos. While the canvas has focus, keys go to the demo instead.

← More from Emergent Mind Labs