2026-03 – 2026-08 · unprovisioned
GenomeCanvas
Protein visualization with typed interface commands
Fifty-four human proteins in a Three.js scene: fifty-two real AlphaFold structures and two labelled fallbacks, with an AI guide that moves the interface before it speaks.
Explore the fixture in three dimensions
GenomeCanvas combines a Three.js protein scene with a small knowledge graph: . Backbone ribbons use the structures' confidence scores, and a detail view opens Mol*. The viewer is loaded separately, contributing to the recorded main JavaScript bundle; it still requires a runtime download.
The fixture contains . The two fallback structures are labelled substitutes, so their presence is visible instead of implying that every fixture has a real prediction.
The interface moves before it speaks
Ask for the proteins involved in a disease and the backend streams typed UI commands ahead of any prose: the universe dims, the graph re-roots and the camera re-frames before the first sentence arrives. The local grounded answer path works without a model key. Its recorded model calls: . Optional Claude narration makes external model calls. Grounding and typed commands constrain the workflow; they do not guarantee that generated prose is semantically correct.
Honest about where it stands
The deployment is configured but not provisioned, so the code is the artifact rather than a verified service URL. Visual neighbors in reduced-dimensional coordinates are spatial proximity, not proof of shared biological function or clinical utility. The data is a small fixture, and this update did not reproduce the project's tests or establish new scientific results.
How it was built
- Time:
- Built in phases between March and August 2026.
- Tools:
- Claude Code, Codex
- Mine:
- Specifying the workflow, keeping fixtures behind a repository interface, sending typed interface commands ahead of prose, reviewing the model fallback, and checking whether end-to-end tests actually reached the backend.
- How "not broken" was decided:
- Tests across three runners — backend, component and end-to-end.