Press
lifescientific.dev/samples
lifescientific.dev — vol. I — issue 03 may 2026 · MIT

Notes & tools
from the lab.

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.

06 essays
06 tools
updated 2d ago

Writing

06 notes

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.

Why we stopped using D3 for molecular plots

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.

An accessible microscopy slider in 200 lines

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.

Type-safe sorting for biological data

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.

Animation primitives for cell-biology demos

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.

Parsing messy sequencer CSVs strictly

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.

Tools we publish

06 live
DNA Sequence Viewerannotated genomic visualisation react · ts mature Molecular Rotator3D ball-and-stick rotation webgl growing Data Sorter Protyped sort for tabular biology typescript mature Microscopy Sliderside-by-side comparator web-comp growing CSV Bio Parsersequencer exports → tidy frames python seed Cell Division Animatorconfigurable mitosis loop canvas seed

— Set in Source Serif & Geist Mono. The cover is a live shader; everything else is published when it has something to say.

Subscribe →