The robotics track
Three systems, one problem
They were built in this order for a reason: you plan a fleet, then you drive one, then you have to answer for it when it is out in the world. Each is a separate codebase with its own tests.
Project 03 · Simulation · In build
AMR Flow Simulator
Plan the fleet
Draw or import a warehouse, set the robot parameters, and get throughput, cycle time, energy per task, charger and station utilisation, blocking hotspots and a fleet-size recommendation — with a printable study at the end. TypeScript and a plain 2D canvas, no framework, no server.
4,855 lines TypeScript
30 tests · 1 m grid · 10 Hz · DXF import
Project 04 · Control · Running
Robot Fleet Manager
Drive the fleet
A single-file Python server with a touch-first operator panel, written to run headless on an NVIDIA Jetson and be driven from a browser over the LAN. Real robots register over HTTP, stream telemetry and pull their next waypoint; the engine plans around obstacles, other robots, no-go and slow zones. Vector basemaps work offline from a packed tile file, with WGS84, UTM and MGRS read-outs for field crews.
2,607 lines Python
0 third-party packages · Jetson Nano target
Project 05 · Platform · Running
AMR Platform
Answer for the fleet
The production-shaped version for outdoor fleets: FastAPI and SQLite, a validated safety state machine, tiered emergency stop, stuck detection with rerouting around blockages the fleet has actually observed, and a range-based battery policy that recalls a robot before it strands. Hardware integration lives behind explicit interfaces, so nothing pretends a physical safety layer exists when it does not.
27,103 lines Python · 106 modules
652 tests passing · goals, not motion control