catscan
A three.js digital twin of a conceptual holographic body scanner, built from the spec's own numbers, with an audited spec and an FDTD solver held to its acceptance tests.
Key metrics
Architecture
The scanner is generated from the spec's Appendix B numbers (0.50 m bore, 1.20 m active length, 48 × 24 = 1,152 RF tiles, 12 staves) and rendered with three.js. Physics runs offline and ships only its outputs, following the heart deploy pattern. A 2-D TMz FDTD kernel on MLX is the first rung of the solver ladder, gated by dispersion, energy-conservation and Courant-stability tests, and every job goes through an idempotent local sweep runner keyed on the hash of its spec.
Case study
catscan
A 3-D digital twin of a conceptual holographic body scanner, sized for a domestic cat. It shows the instrument and the cat inside it, and is built to show what a reconstruction can and cannot recover.
The instrument
- No moving parts. A 1.20 m × 0.50 m bore lined with 48 azimuth × 24 axial = 1,152 RF tiles. No gantry, no swept focus.
- Coded speckle. A master seed deterministically generates the temporal codes and spatial weights, which produce known pseudo-random 3-D speckle fields through the bore. The cat's tissue perturbs those fields, and a nonlinear Maxwell inversion solves for its dielectric properties.
- Three bands, three jobs. 0.3–4 GHz for deep tomography, 4–12 GHz exploratory, and 58–63.5 / 76–81 GHz for fur and surface geometry only.
The spec's own decision gate sets the product's priorities: the result that matters is the singular spectrum, the Fisher-information map and the posterior uncertainty, not a pretty picture of a cat. Regions with no information stay visibly uncertain instead of being filled in by a learned prior.
What's built
- Illustrative speckle figures. One bore cross-section's incident speckle, computed live from the equations on the page, beside the ring of per-element phase weights (0°, 180°, ±90°, or listening) that produced it. Step to the next epoch and a different weight set gives a different speckle, and a companion figure measures how different. These are illustrative simulations, not measured scans.
- The scanner, to spec. Bore, tile grid, staves and cradle generated from the spec's Appendix B numbers, rendered with three.js on WebGPU with a WebGL2 fallback for phones and headless capture.
- A spec audit. Seven confirmed errata in rev 0.2, each one checked by an attempt to refute it, including a missing minus sign in the adjoint gradient that, coded as printed, makes the optimizer climb the misfit instead of descending it.
- The first solver rung. A 2-D FDTD kernel on Apple MLX implementing the corrected physics, held to the spec's acceptance tests: dispersion against the audited closed form, energy conservation and Courant stability.
- A resumable sweep runner. Each physics job is a pure function of its spec, identified by the spec's hash, so a crashed or paused sweep picks up only the missing work.
- A photo-to-3D cat pipeline. The phantom is a real cat, Macleod, reconstructed from a small photo archive: a LoRA trained on his photos generates a synthetic turnaround, Hunyuan3D-2 turns it into geometry, then retopology, a shell-fur shader with whiskers, and a Blender deform rig that turns his head toward the pointer.
How it works
The expensive solves run offline and ship only their outputs, following the Heart deploy pattern. The full-wave nonlinear inversion is a multi-GPU job and never runs in the browser. The planned interactive layer serves only the cheap work: seed replay, field-correlation audits, a coarse Born initializer and absorbed-energy lookups.
Research concept. Not a veterinary medical device and not a diagnostic claim. Human RF exposure limits do not transfer to cats; the simulator reports raw SAR, absorbed energy and temperature rise without declaring anything safe.
Tech stack
Gallery