Skip to content
gpu-components
Playground

Check the claim yourself

Everything else on this site argues that the runtime works. These pages let you check — seventeen components, one page each, each running live in your browser on your GPU.

17 live demos · one device per page
GPUTimelineSpans, flame graphs, Gantt and waterfalls. Up to 500,000 spans, pan, zoom, brush-select.The first component, and the one the runtime was designed against.Open demo →GPUHeatmapA dense matrix with a GPU colormap and GPU auto-ranging, zoomable on both axes.The architecture test: could core host a component it was not designed around?Open demo →GPUDataGridRead-only grid with per-cell conditional formatting evaluated in the fragment shader.The flagship, built last, on primitives the others had already paid for.Open demo →GPUScatter250,000 points, one draw call. Zoom, filter and brush are all uniform writes.The clearest demo here: 250,000 points, one draw call, and exact hover with no picking pass.Open demo →GPUGraphForce-directed layout running entirely on the GPU, settling in front of you.The only one that animates, and the only one that cannot hit-test on the CPU.Open demo →GPUImageDiffSplit, onion-skin, difference and heat comparison of two images, with a GPU pixel count.The only one built on sampled textures rather than a storage buffer.Open demo →GPULogViewerHalf a million lines in a GPU ring, streaming appends, and match density over all of them.The first dataset here with a tail — and the component that retired the glyph atlas.Open demo →GPUCandlestick200,000 OHLC bars, revised tick by tick, with a whole-history envelope along the bottom.A second, independent consumer for the streaming ring buffer the log viewer introduced.Open demo →GPUDensityMap200,000 lon/lat points hexbinned on the GPU over Web Mercator — graticule chrome, no tiles.The geospatial density candidate: projection at ingest, atomic hexbin, colormap fill.Open demo →GPUHistogram250,000 values, Freedman–Diaconis bins at ingest, GPU atomic binning into instanced bars.Adaptive layout on the CPU once; the GPU owns the N-wide bin pass and the draw.Open demo →GPUDepGraphSugiyama layered package DAG with orthogonal edges — layout once on the CPU, GPU draw only.Cycles become styled back-edges; no force layout, no continuous animation.Open demo →GPUNetworkTopologyForce-laid service mesh with status, link health, and traffic pulse.Demo-only for now: the layout animation can still stutter in some browsers.Open demo →GPUAnnotationCanvasA Float32 field with a GPU colormap and a host-owned rect/ellipse/point/ruler/polygon overlay.Hybrid interaction: every draw tool emits an event, and the page decides whether to keep it.Open demo →GPUSpreadsheetEditable cells, a dependency-graph formula engine, selection, clipboard, and pivot tables.Formulas stay on the CPU: a dependency graph and topological recalculation, never a shader.Open demo →GPUNodeEditorDrag nodes, drag-to-connect ports, multi-select and delete — all CPU-owned, GPU-drawn.CPU owns the graph, the GPU only draws it — the honest split until node counts get large.Open demo →GPUWhiteboardA procedural dot-grid canvas with instanced shapes and ink, forked from GPUAnnotationCanvas.Pan, zoom and hover today. Drawing tools and multi-select are next.Open demo →GPUPdfViewerA small resident-texture pool composites host-rasterized pages, virtualized and zoomable.A compositor, not a PDF renderer: pages arrive already rasterized and only a few ever hold a texture.Open demo →

One page each, and why

Each page mounts its own GPUProvider, so it holds exactly one GPUDevice for exactly one component. That is the honest arrangement for a demo you are here to look at closely — and it is also why the inspector on each page reports a single device and a single surface.

The claim that one device serves many components on a page is measured rather than demonstrated by decoration: the benchmark harness drives up to 24 components through one runtime and compares the GPU time against the same work split across independent devices. The shared runtime costs meaningfully less from eight components upward. That measurement included one round where the methodology itself turned out to be wrong, which is the only reason the second one is worth trusting.