This project is discontinued - it's a demo. All data is fake and resets on refresh.
Coregraph
Tom Becker
5 days ago
WebGL + instanced rendering for nodes, plus a quadtree for hit-testing, is exactly right. Do not try to make SVG scale, you will lose. Render edges as a single buffered geometry, not per-edge objects.
Add a quadtree and your O(n) mousemove becomes O(log n). That alone makes hover feel instant at 50k. Rebuild the tree on layout settle, not every frame.
For layout, run the force simulation in a web worker (or precompute on the Rust side since you already have one) and only stream positions to the renderer. Blocking the main thread for 30s is what is killing your UX, not the draw.
Sigma.js / a WebGL graph lib might save you the two weeks if your interactions are standard. Roll your own only if picking/styling needs are unusual.