# G-Code Overlay Overlays a G-code toolpath on the CNC router's live camera stream, so you can reality-check a job before/while it runs and see where the tool will and won't go (e.g. for placing screws/clamps). Pure client-side static web app — TypeScript + Vite + Canvas 2D, no backend. The G-code file is parsed locally in the browser; nothing is uploaded. ## Develop - `npm install` - `npm run dev` — local dev server - `npm test` — run the unit tests - `npm run build` — type-check + production build to `dist/` ## Deploy Serve the built `dist/` as static files. Configure via `public/config.json` (bundled into the build): - `streamUrl` — the camera stream URL. The page shows it in an `` element, which works directly for an **MJPEG** stream. If the stream is **HLS** or **WebRTC**, swap the `` in `index.html` for a `