A 2-D Coulombic-potential (log kernel) Fast Multipole Method demo, originally written in Java by Yang Wang for UMIACS course CMSC 878R / AMSC 698R (Fast Multipole Methods, Nail Gumerov and Ramani Duraiswami), first as a 2003 class project ("Java Implementation and Simulation of the Fast Multipole Method for 2-D Coulombic Potential Problems") and extended by 2005 into three Java WebStart demos, all still named on the original page one level up (../index.htm). Ported to plain JavaScript (no dependencies, no build step) 26 Sep 2026.
../index.htm
Regular tree ("Regular Multilevel FMM," fmmdemo.zip): a single uniform-depth quadtree, chosen so every leaf holds at most the cluster threshold's worth of points, following Greengard & Rokhlin, "A fast algorithm for particle simulations," J. Comput. Phys. 73(2):325-348 (1987).
fmmdemo.zip
Adaptive (Cheng-Greengard-Rokhlin) ("Another Adaptive Multilevel FMM," fmmdemo-adaptive2.zip): per-branch quadrant subdivision with four classical interaction lists, following Cheng, Greengard & Rokhlin, "A fast adaptive multipole algorithm in three dimensions," J. Comput. Phys. 155:468-498 (1999).
fmmdemo-adaptive2.zip
Adaptive (Gumerov-Duraiswami) ("Adaptive Multilevel FMM," fmmdemo-adaptive.zip): a pruned D-tree of variable-depth target boxes plus a companion C-forest supplying the multipole expansions the D-tree needs, following N. Gumerov and R. Duraiswami, Fast Multipole Methods for the Helmholtz Equation in Three Dimensions, pp. 265-283, Elsevier Science, Oxford, 2005, Ch. 6 SS6. Its source was missing from the internal course archive (only compiled classes survived there) and was first reconstructed by decompiling those classes; the real source then turned up in fmmdemo-adaptive.zip on this very page and confirmed the reconstruction exactly (see NOTES.md).
fmmdemo-adaptive.zip