Building a fast DNA sequence viewer with Canvas2D
SVG is the obvious choice until your sequence is 200,000 base pairs. Notes on virtualisation, palette caching, and accepting that vector might not be the right primitive for genomes after all.
An open record of components, animations, and small instruments we build for life-science teams. Written when we have something to say, shipped when it's worth keeping.
SVG is the obvious choice until your sequence is 200,000 base pairs. Notes on virtualisation, palette caching, and accepting that vector might not be the right primitive for genomes after all.
Two months of WebGL ball-and-stick rendering taught us where D3 ends and where you reach for the GPU. Notes from rebuilding the molecular rotator from scratch — and what we'd do again.
Building it as a Web Component, why we avoided React for this one, and how we got keyboard navigation right on the first attempt — including focus rings that don't fight the image.
Date, count, identifier, transcript — a typed sorter that knows the difference, in 10kb gzipped. The full story of the API, and a small surprise in how TypeScript's inference handles our column types.
Configurable timing, easing curves, and why teaching tools should ship with attribution-friendly licensing by default. A guided tour of the mitosis animator we use for our internal teaching decks.
Strict schema, forgiving whitespace: how we handle real-world Illumina exports without surprising anyone in production. Plus a small case study on the worst CSV we've ever shipped against.