Skip to content

Viewer prototypes

These are the project’s working prototypes, built from playground/ and published with this site. They are development artefacts rather than polished demos: they exist to exercise the engine end to end.

  • Image viewer (1a) — one HTJ2K image streamed per-chunk under camera control, with the decision-view inset showing which chunks the view demanded.
  • Multi-image scene editor — several images co-registered in one scene, each with an editable 3D transform (gizmo + numeric panel) and layer blending. See the write-up.
  • Volume viewer (3D) — raymarched volumetric HTJ2K: z-slab bricks streamed under a degrade-to-fit budget, with an auto-ranged transfer function.
  • Operation-graph composer — the React Flow composer for the in-GPU operation graph.
  • Datasource decision view — the view-driven multiscale datasource against synthetic data: level selection, chunk residency, and the volume raymarch A/B.
  • HsPf — spatial selection/migration — the spatial GPU example.
  • Cell-type spatial statistics — MuSpAn-style TCM, cross-PCF and the N-way association matrix over cell centroids, as a coordinated view: hover the matrix to link every panel to a cell-type pair. Γ is rendered as two additive GPU passes rather than a neighbour search (the derivation lives in docs/cell-stats.md in the repo), with the exact CPU oracle one button away. Reads a SpatialData store, a CSV export, or a built-in fixture.
  • Transcript co-location modes — the same Gram form over transcript density instead of cells: pan and zoom a Morton-tiled Xenium store over its H&E (sd.js’s WebGPU view), and the co-location matrix and mode map recompute for the part in view, from tiles fetched once and cached. Gene sets and the panel’s negative controls are channels; plain-language notes sit beside the maths.