Evac: tow-truck detector
Custom-trained YOLO tow-truck detector on RTSP cameras with a serverless libp2p mesh.
Evac watches RTSP camera streams for tow trucks ('mos_evacuator') using a YOLO model trained on the author's own dataset.

Evac watches RTSP camera streams for tow trucks ('mos_evacuator') using a YOLO model trained on the author's own dataset.
It began as a Python/Tkinter app on ultralytics and was rewritten in Rust: ffmpeg-fed frames go through ONNX Runtime (usls) with ByteTrack tracking, and each new detection is published as a signed event with a JPEG crop over a libp2p GossipSub mesh, so distributed nodes share sightings peer-to-peer with mDNS on a LAN, Kademlia DHT discovery across the internet and Circuit Relay v2 + DCUtR hole punching for NAT traversal.
The egui desktop UI shows live video with boxes and a peer-detections panel, and the build was made to run on Windows Server 2012 via a dynamic ORT loader and a stub dxcore.dll.
What it does
- Custom YOLO model (yolo26n, end2end/NMS-free export) trained on a hand-collected tow-truck dataset (~150 photos + negatives + videos)
- RTSP capture via ffmpeg pipe, GPU inference through the ONNX Runtime CUDA EP with CPU fallback
- Peer-to-peer detection sharing: GossipSub topic per group, signed DetectionEvent with base64 JPEG crop
- Serverless cross-NAT discovery through the public IPFS Kademlia DHT (group name hashed, never on the wire), relay + hole punching for NAT-to-NAT
- egui UI with live video, tracked boxes, peer panel and mesh settings editor; relay/bootstrap list in an INI next to the exe
- Legacy-OS packaging: ort-load-dynamic, wgpu dropped, stub dxcore.dll so it loads on Server 2012
End-to-end computer-vision product: dataset collection, model training and ONNX export, Rust inference pipeline with tracking, and a decentralised libp2p mesh with DHT discovery and NAT hole punching; runs on a 2012-era Windows Server.
Want something like this?
I build it live on a Zoom call, you watch the screen, the timer stops when you say stop. First 15 minutes are free.