tagged
#deep-dive
10 scribbles
tree layouts: tidy, radial, hyperbolic, treemap
reingold-tilford in o(n), the polar-coordinate variant, hyperbolic focus+context, and squarified treemaps.
the sugiyama framework: laying out dags in four phases
cycle removal, layer assignment, crossing reduction, coordinate assignment. the pipeline behind dagre, elk, and graphviz dot.
force-directed at scale: barnes-hut and multilevel
the quadtree approximation that turned force-directed from o(n²) to o(n log n), and the coarsening trick that scales it to a million nodes.
force-directed: springs and charges
the spring-and-charge model, the fruchterman-reingold cooling schedule, and why two runs can give two different layouts.
the graph layout series: a survey
what graph layout is, why it's hard, and the seven families that solve it.
motion blur, culling, path caching: how the canvas path handles pressure
five targeted tricks, one for each kind of pressure the renderer faces.
composites, suppression, atomic swap
the second cache that blits whole groups of elements as one image, plus the 250ms suppression window during layout bursts.
the per-element sprite atlas
every node and edge rasterized into an offscreen atlas at 8 zoom levels, with deferred refinement.
three canvas layers: only what's dirty repaints
how cytoscape stacks three canvases and only repaints the dirty ones, plus the hidden buffers behind motion blur.
the render loop: one boolean, never stops
the raf loop that starts once and never stops, and the priority queue that runs work between frames.