Skip to content
gpu-components
GPUGraph

Force-directed graph

Drag to pan and scroll to zoom while the layout settles in front of you. Hover is deliberately not wired up here — the node positions never leave the GPU, so there is nothing on the CPU to test against.

Clusters
Nodes each

Densely-linked groups with a few bridges between them. The layout starts on a seeded ring and pulls itself apart.

Requesting a GPU device…
dragpanwheelzoom both axes
Simulation
Nodes75
Edges156
Iterations0
Statesettling…

The only component here that animates: it keeps asking the scheduler for frames until the layout converges, then stops on its own.

Interaction
Hovernot supported

Deliberately, and it is the interesting part. Every other component hit-tests on the CPU because its coordinates sit in a typed array. A graph's coordinates move every iteration and live only in GPU memory, so there is nothing on the CPU to test against. This is the case that genuinely needs asynchronous GPU picking: there is no cheap CPU index for node positions that change every frame.

Inspector
GPU Inspector — no runtime connected yet

Repulsion is an exact O(n²) loop, which is the right choice up to roughly 5,000 nodes and the wrong one above it — the component says so through the inspector's warnings pane rather than quietly bogging down. Positions ping-pong between two storage buffers, so a frame reads what the previous one wrote and nothing is allocated inside the loop.