An interactive web app that builds intuition for jet
Drag the subjet axes around a randomly generated jet, switch between 1-/2-/3-prong jet topologies (QCD, W/Z, top), and watch
Live demo: https://nollde.github.io/substructure/
- Particles plotted on the
$(\eta, \phi)$ plane, sized by$p_T$ and colored by their nearest subjet axis. - Yellow ✕ markers for the
$N$ subjet axes — drag them anywhere;$\tau_N$ updates continuously. - Axes initialize at the locally optimal positions (pT-weighted Lloyd's algorithm with farthest-point seeding) so dragging always moves away from the optimum.
- Live values:
$\tau_1$ ,$\tau_2$ ,$\tau_3$ at their optima, plus$\tau_N$ for the current draggable configuration.
It's a single static HTML file with no build step:
open index.html…or serve it:
python3 -m http.server 8000- Vanilla JS, single file — no framework, no bundler.
- MathJax (CDN) for inline LaTeX rendering.
- pT-weighted Lloyd's algorithm with multi-restart for finding optimal axes.
Concept & Direction: Dennis Noll Coding: Claude Code
