Live Demos
Working AI you can poke at, right here in your browser. Nothing is uploaded, nothing is faked. Open devtools and watch it run on your device. More demos are on the way.
Your Cough Has a Fingerprint.
Record your healthy cough a few times to build a personal acoustic baseline. Later, the monitor scores how far a new cough deviates from it: not against a population model, against you. The signal processing (FFT, mel filterbank, MFCC) is hand-rolled and runs on-device.
Cough naturally into your microphone. The recorder captures 2 seconds and finds the cough automatically.
π Audio is processed and stored only on your device.
Concept demonstration, not a medical device and not medical advice. Mel-frequency analysis: 26 filters Β· 12 MFCCs Β· hand-written FFT, verified against a reference DFT.
Mirror Therapy, Without the Mirror Box
Mirror-box therapy reduces phantom limb pain by showing amputees their missing limb moving again. This preview recreates that illusion with hand tracking: show one hand, and its phantom twin moves on the other side.
π Runs entirely on your device. Video never leaves your browser.
- 01Open and close your fist, slowly
- 02Touch each fingertip to your thumb
- 03Rotate your wrist in small circles
- 04Spread your fingers wide, then relax
Mirror therapy (Ramachandran, 1990s) exploits visual feedback: seeing the "missing" limb move can reduce phantom pain. Hand tracking removes the physical mirror box, making the therapy portable and measurable. The full WebXR version is in development.
Concept demonstration of the interaction, not a medical device and not medical advice.
Can an AI Spot You?
Modern surveillance is automated, so test against the actual adversary. Upload a photo (camouflage, hunting gear, or just you in the garden) and an object-detection model hunts for you at four simulated distances.
π Images are analyzed on your device. Nothing is uploaded.
β¦or drag & drop an image hereAdd a photo to generate a detection range profile.
Adversary model: COCO-SSD (pretrained, Google) running on-device via TensorFlow.js, a single-model preview of the full multi-model ensemble concept. Distance is simulated by reducing pixels-on-target.
21 Keypoints. Every Frame. Your Device.
Keypoints only matter once they become measurements. This demo tracks 21 landmarks per hand and turns them into numbers: the real-world gap between your thumb and index finger (the amber ruler on screen), how many fingers you're holding up, and how open your hand is. That's the same keypoints-to-measurements principle behind my utility pole attachment-height and clearance work. Try pinching slowly.
π Runs entirely on your device. Video never leaves your browser, nothing is recorded or uploaded.
Start the camera to see live detections.
21 keypoints per handΒ·7 gesture classesΒ·GPU-accelerated in your browserΒ·zero frames uploaded
Under the hood: what's actually running
- A three-stage vision pipeline: a palm-detection model locates hands in the frame, a landmark model regresses 21 3D keypoints per hand, and a gesture classifier runs on top of the landmark geometry.
- The models are Google's MediaPipe(float16-quantized), executed in-browser through WebAssembly with a GPU delegate. Credit where due: I didn't train these.
- My work is the engineering around them: lazy loading so nothing downloads until you opt in, the render loop and overlay, throttled UI updates, and clean camera lifecycle.
- Knowing when to fine-tune insteadis the real skill: for utility-infrastructure keypoints, off-the-shelf models weren't enough. See the custom fine-tuned keypoint model I built for that.
Draw a Digit. Watch a Neural Net Think.
A neural network I trained from scratch with just Python and math, no ML frameworks, compressed to 145Β KB and running in your browser right now as pure JavaScript. No libraries, no GPU, no API calls.
109,386 parametersΒ·98.2% test accuracyΒ·int8-quantizedΒ·zero dependencies
How this was built: see the actual code
- Trained from scratch in raw NumPy: hand-written forward/backward passes and Adam optimizer, no ML framework. Shift augmentation makes it tolerant of off-center drawings. train_digit_model.py β
- Compressed for the web: weights int8-quantized (~4Γ smaller) with no measurable accuracy loss, shipped as a 145Β KB JSON file inside this page.
- Inference is ~80 lines of plain JavaScript: the matrix math runs right here, no TensorFlow.js, no API. inference.js β
- Verified, not vibes: a parity test asserts the JS engine reproduces the Python model's probabilities to within 1e-6. test_inference_parity.mjs β