Force-Directed Layout with Convex Hull
This example uses D3 v4 to generate 100 random nodes assigned to 9 groups, then applies a force-directed simulation with `d3.forceSimulation`, including link, charge, X/Y, collide, and center forces over 120 ticks. After simulation, a Voronoi partition is computed via `d3.voronoi`, and its polygons are drawn as SVG paths that fill white and briefly turn red on mouseenter. Nodes are rendered as circles colored by category using `d3.schemeCategory20`, with no links generated, focusing purely on spatial clustering and interactive hull highlighting.