FOVEA
A sparse 3D U-Net labels every LiDAR point, then a GPU grid engine builds a foveated 2.5D map: 5 cm cells near the vehicle, 40 cm out to 100 m.
23 projects: the ones on the portfolio and the ones that didn’t fit. Private repos are listed without a link, and team projects are marked team.
A sparse 3D U-Net labels every LiDAR point, then a GPU grid engine builds a foveated 2.5D map: 5 cm cells near the vehicle, 40 cm out to 100 m.
A U-Net predicts where a fire spreads next from ERA5 and MODIS data, and D* Lite replans rescue routes as the prediction changes, over a live map of Uttarakhand.
Dense layers and backprop written by hand in Rust, no ML framework. It learns MNIST live in a Macroquad GUI while you scrub the learning rate.
Puts cross-cut shreds, strip-cut shreds and hand-torn pages back together.
Links business records across three sources: blocking, a fine-tuned bi-encoder, cross-encoder rerankers and XGBoost matchers. 0.989 macro F0.5.
41 Indian bovine breeds from a photo: EfficientNet-B0 transfer learning with heavy augmentation, exported to ONNX for the Herd Link app.
Checks video, images and audio for manipulation: MTCNN face crops into CNN classifiers, an MRI-GAN path alongside, and a separate audio model.
Two XGBoost models that predict which streaming subscribers are about to cancel, from raw behaviour data.
An audited agent that finds revenue at risk, picks a fix for the cause, acts inside hard limits, and measures recovery against a held-out control arm.
Ask about ARGO ocean floats and shared documents in plain English and inspect the evidence behind each answer, on a partitioned data lake with MapReduce and stream mining.
A 30-step multi-echelon supply-chain environment for training agents with GRPO, every episode checked by a MILP oracle.
An API that answers students’ course questions, grounded in a scrape of the course’s Discourse forum, and evaluated with promptfoo.
A Rust bot for a MOBA-style AI game. 350+ versions, each tested in paired ladder runs and against replays of 10,000+ ranked games.
Reinforcement-learning agents for the Orbit Wars game: masked PPO, AlphaZero-style search and a CNN policy, trained against a heuristic opponent.
Monte Carlo contagion in a banking network: one bank’s distress spreads through fire sales, liquidity runs and defaults.
F1 tyre-degradation research: how much pace a tyre gives away with age, from public timing and F1 25 telemetry. I helped build that telemetry dataset, recording it lap by lap.
ESP32-C3 collars that classify grazing, rumination, lameness and heat on the cow, a Rust edge server on a Pi 5, and an offline-first Android app.
Flight software on a Jetson: Dora graphs, a Rust LiDAR node, QR and marker vision, ArduCopter over MAVLink, tested in a simulator and SITL.
A Raspberry Pi 4 runs the camera, LiDAR and motors; a laptop runs YOLO, the driving decisions and a dashboard, all as one dora-rs dataflow over Wi-Fi.
The keymap and nice!view setup of the split keyboard the portfolio is built around.
A live USB that images failing drives with ddrescue, then wipes with ATA/NVMe sanitize, verifies, and exports signed evidence.
A glass bar with a dynamic island, capture tools, a lock screen and a cat.
Two-way sync with Google Tasks from the Noctalia shell, with a small Rust helper that handles the OAuth2 flow.