LIVE cartercole.net --:--:-- UTC

// NODE 0x01 — PERSONAL INDEX

CARTER COLE

Protocols, runtimes and small sharp tools.
Built in the open — mostly Rust and Python.

>

01ACTIVE SYSTEMS

Current work. Specifications with conformance suites, not demos.

01

basalt

A portable knowledge vault in any S3-compatible object store: a specification, a conformance corpus, and three implementations. NTFS-style inherited permissions, derived link indexes, and a publish site.

02

intervalclock

An H3 for time: canonical names for every interval and periodic phase class. Protocol, Python reference library, and a live site.

03

rust-cev

Calibrated Enum Verdicts — typed, calibrated decisions in one forward pass, served from Rust.

04

node-cev

cev for Node.js: typed, calibrated decisions from a small local model in one forward pass, in-process.

06

bond

Several Internet connections as one. Unmodified WireGuard on a transport that splits its packets across every uplink in reach — venue WiFi, a wired line, people's phones — and puts them back in order at an aggregator you host. When an uplink dies, the connection holds.

02FIELD TOOLS

Small, single-purpose, published.

mpa-archive

Crawls a multi-page application into a zip file, then serves the application back out of that zip.

badge

Puts photos, text, GIFs and video on a DZBJ round LED badge over Web Bluetooth, with the reverse-engineered protocol written down beside it.

03RESTRICTED

Private repositories. Listed for the record; source is not public.

nukumori

A virtual pet whose every rule runs in one WebAssembly module. An egg’s genome is drawn from a pulse of the NIST randomness beacon, owned by twelve seed words and timestamped on Bitcoin through OpenTimestamps; anyone holding a pet’s public files can replay its whole record through the rules and check it. You incubate the egg, and how you keep it decides, within what its genes allow, what hatches. The creature then has seven needs, moods, a personality that drifts, foods it learns to like, tricks, memories and a life that ends. Pets breed through a diploid genome with dominance, recombination and mutation, and a wild population evolves on islands under a genetic algorithm. Rust core and CLI, a three.js viewer in a Tauri desktop app, and ports in Swift, Kotlin and Luau.

RUST WASM THREE.JS ACCESS RESTRICTED

cartier

A figure-reference poser for artists. Drag a hand, a foot or any part of a 3D mannequin and it goes there: inverse kinematics, joint limits, pins, a library of body and hand poses. Set a lens in millimetres and one key light, then save a clean PNG with nothing in it but the figure. Built Blender-first: the posed figure exports as a rigged, skinned armature in glTF or a real .blend, and a companion extension pastes poses onto Rigify and Mixamo rigs. Tauri desktop app and plain web page from the same code.

TYPESCRIPT RUST THREE.JS BLENDER ACCESS RESTRICTED

rollopolis

Katamari in the real world. A sticky ball rolls through Google’s Photorealistic 3D Tiles, with OpenStreetMap saying what is there, and picks up anything smaller than itself: litter, bikes, cars, trees, then whole buildings. Start at any address or one of eighteen famous places. Dress the ball with any picture as a skin. Rounds are recorded and replayable, replays save as video, record balls export as glTF, and spawn points learn from where players reset. One page, four shells: browser, Tauri desktop, a Mac app, and an iPhone app that steers by tilt.

JAVASCRIPT THREE.JS SWIFT ACCESS RESTRICTED

mosaic

A photo-mosaic builder in Rust. Every source photo is decoded, cropped and downscaled once into a flat tile cache, so a render never decodes an image: it slices tiles straight out of the file. Tiles match on 4×4 grids of CIELAB means, and the nearest-neighbour search is pruned by an exact lightness bound rather than brute-forced — 120,000 cells in 0.09 s on 16 cores. It caps and spaces repeats, says which colours a library lacks before you render, and fetches openly licensed photos from Openverse, three museums and NASA to fill the gaps. A WebAssembly build renders in the browser. Each plate here is the same 462 public-domain nature photographs — canyons, sunsets, meadows, night skies — rebuilding a painting from the Art Institute of Chicago. Select one for full resolution.

RUST WASM ACCESS RESTRICTED

raindrive

Plan a long drive around the weather you will actually hit. Give it a start, an end, the stops and when you leave; it works out when you reach each stretch of road, looks up the forecast for that place at that hour, and colours the route and a timeline by how bad the driving will be. Then move a stop, lengthen a stay or leave later and the weather moves with you, instantly: routes ignore the clock and every forecast covers sixteen days, so each what-if is arithmetic, not a fetch. Three clients give one answer — a web app on Leaflet, a SwiftUI iPhone app on Apple Maps, and a Kotlin Android app — with the planning math ported line for line and tests that hold all three to the same results. On the trip below, all three call the same stretch Rough: gusts to 45 mph near Baker City, Oregon. Forecasts from Open-Meteo; routes from OSRM, Google or Apple Maps; town names from GeoNames, bundled.

JAVASCRIPT SWIFT KOTLIN ACCESS RESTRICTED

strudel-ai-dj

A self-improving AI DJ. Live-codes Strudel, evolves the music from how the crowd feels, and publishes its own discography.

JAVASCRIPT ACCESS RESTRICTED

quant

A quantitative research workspace. Kalshi and Polymarket pricers checked against settlement, a worker graph ingesting FRED, ECB, BLS, ADP and SEC filings with point-in-time vintages, and pre-registered studies with frozen specs. Most results are "no edge", on the record; one strategy is live on paper.

PYTHON ACCESS RESTRICTED

tailsock

A personal, self-hosted VPN that a browser tab can join as a full node. Sign in by identity; private groups become their own VLANs; stock Tailscale apps and a Rust node compiled to wasm share one network. The tab can listen as well as dial, so it can host a website — to your network, or through Funnel over HTTPS to the open internet. Close the tab and the site is gone.

RUST WASM ACCESS RESTRICTED

cartercole.com

A Rust GraphQL API and a server-rendered Relay frontend, both on Lambda behind CloudFront. Zero client JavaScript on static pages.

earsence

Ballistocardiography from AirPods. Each heartbeat moves the head by one to three milli-g and the headphone IMU sees it: band-pass 0.6–3.3 Hz on eight motion channels, autocorrelation plus a Goertzel spectrum to resolve octave errors, keep the rate the most channels agree on. Alongside it, head pose, breathing, and a still / self-motion / walking / vehicle classifier built on the vibration floor. Ground truth is the Pro 3's own PPG sensor, logged into the same CSV by an iPhone companion through an iOS 26 workout session — a reference that shares no physics with the estimate.

Validation — IMU pulse estimate vs PPG, 30 s windows, one wearer
StillMoving
capture150 s · 0.007 g rms78.6 s · 0.129 g rms
PPG reference61–65 bpm, median 63113 falling to 68, settling near 75 bpm
windows past the gate10 of 120 of 5
mean abs error, passed1.1 bpm—
within 3 bpm, passed10 of 10—
error, rejected windows3.9 and 10.8 bpm28.1 bpm mean, 57.0 worst
peak confidence0.340.04
channel consensus4–7 of 8 within 1.1–3.2 bpm2–4 of 8
verdict63.5 bpm ± 1.3refused — not enough confident windows

The gate is the finding. Confidence collapses above 0.010 g accelerometer RMS, and the fair (≥ 0.22) and good (≥ 0.30) bars were set from this data after an invented 0.45 bar had thrown away a reading accurate to about a beat a minute. Consensus alone does not qualify a reading: on a 21 s walk at 0.13 g, five of eight channels agreed within 3.3 bpm and the gate still held confidence at 0.00. Synthetic self-test: 12 of 12 clean cases from 48 to 120 bpm within 1.4 bpm at a 3 mg heartbeat; at 5 mg of noise the worst miss is 4.3 bpm. Limits, on the record: one wearer, one session, one resting rate, and 50 Hz sampling quantises beats to 20 ms, so this is an average rate per window and never HRV.

SWIFT CORE MOTION ACCESS RESTRICTED

04UPLINK