Depotwin
Open-source platform, built with Claude Code · Live digital twin of a vehicle fleet
A live 3D digital twin of 240 simulated vehicles in Moscow — a Go and NATS JetStream pipeline into TimescaleDB, failure models that warn of breakdowns days ahead, a local-LLM copilot over read-only queries, and an offline-first driver app.

Problem
Fleet dashboards show where vehicles are, but not what is about to break, and their alerts and predictions are rarely checked against what actually happened.
Solution
A streaming pipeline to a live 3D twin, failure models scored against the threshold rules on unseen fleets, an LLM copilot limited to read-only queries, and an offline-first driver app, all measured against a hidden ground truth.
Built in
Overheating caught 4.5 days ahead (rules: 3.0) with fewer false alarms; 17 of 18 held-out copilot questions right; 200 requests/s with no errors under load; a live demo and CI for every part.
Overview
Depotwin is an open-source platform I built with Claude Code to show a real-time system end to end, measured against a ground truth. A Go simulator drives 240 vans, trucks and minibuses on the Moscow road network from OpenStreetMap, reports like GPS trackers do, and injects faults: fuel theft, failing thermostats and batteries, GPS spoofing, night use. What really happened is published apart, so detectors can be scored without seeing it.
Readings flow through NATS JetStream into TimescaleDB (13.4 million replayed with no gaps or repeats across restarts) and out to a 3D twin built with React, MapLibre and three.js. A FastAPI alerter finds faults as they happen, and LightGBM models on daily features warn of breakdowns: on unseen fleets they caught 156 of 157 overheating failures 4.5 days ahead, against 3.0 days for threshold rules, with fewer false alarms. A copilot on a local Qwen 3.5 9B can only call seven validated, read-only queries and shows the data behind each answer; it answered 17 of 18 held-out questions correctly.
Drivers use an Expo app that queues shifts, inspections and defect reports with photos offline and syncs them in order without duplicates; defects reach the twin at once. Prometheus and Grafana watch every stage, alert rules are unit-tested, and a k6 load test found where the API broke; after the fixes it serves 200 requests a second with no errors while 200 live viewers stay connected.
What it does
- Simulates 240 vans, trucks and minibuses on the real Moscow road network (OpenStreetMap) in Go, with faults injected and a ground truth the running system never sees
- Streams the readings through NATS JetStream into TimescaleDB, to a 3D twin (React, MapLibre, three.js) over WebSockets, live or replayed
- Predicts overheating and dead batteries days ahead with LightGBM; a local LLM (Qwen 3.5 9B) answers questions in English, Russian or Arabic through fixed read-only queries
- An Expo (React Native) driver app that works offline; Prometheus and Grafana, unit-tested alert rules and a k6 load test in production
What's next
Hiring for a full-stack or Python role — or need something like this built? Let's talk.
I'm open to offers — on-site or hybrid in Moscow, or remote; full-time or contract. I reply within 48 hours — faster on Telegram.