# 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 `