尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A free, browser-only tool for tracing phone photos of evacuation maps into floor-plan SVG files. No sign-up, no server, no install, no build step.
Only two, both version-pinned from a CDN, both loaded straight by the browser:
https://cdn.jsdelivr.net/npm/[email protected]/dist/index.min.mjs) — the canvas
interaction layer behind the drawing stage: selection, move/scale/rotate
controls, groups, per-vertex polygon controls, zoom and panning.Any static file server works (ES modules need http://, not file://):
npx --yes serve -l 8080 .
Then open http://localhost:8080/. On GitHub Pages just publish the repo root.
The top bar's step strip tracks four steps: 1 Photo · 2 Trace · 3 Preview · 4 Export.
hjlc-1).<slug>.svg and <slug>-posted.jpg and shows the building-extras.json snippet plus the two commands to run.Everything autosaves to IndexedDB (and on pointer-up, tab hide and page close). Save .json writes a single project file with the photo embedded so it can be moved or committed.
If your browser supports it, you can pick a local folder (from the start
screen, or the modal offered when you start a blueprint). Once a folder is
set, every save writes one <slug>.floorplan.json per plan into it —
atomically (via a temp file and rename) on every change, with undo history
included — alongside the IndexedDB copy. Browsers without folder access
(File System Access API) fall back to browser storage only; use Save to
download a copy by hand.
| Key | Action |
|---|---|
| V / R / F / O / A / S / C | Select / Room / Outline / Door / Hallway / Stair / Compass |
| D | Duplicate selected room in a row (auto-increments the number) |
| 1–5 | Room class: room, big, ours, core, void |
| G | Toggle grid |
| H (hold) | Flash the photo |
| Alt (hold) | Disable magnet snapping |
| Ctrl+Z / Ctrl+Shift+Z / Ctrl+Y | Undo / Redo |
| Ctrl+C / Ctrl+V | Copy / Paste (keeps layout, offers auto-increment) |
| Delete, arrows, Esc, Enter | Delete, nudge, cancel, confirm |
The SVG dialect is documented in docs/DIALECT.md. The module layout and contracts are in docs/ARCHITECTURE.md and docs/VIEW-API.md.
npm test
npm run test:compat
npm test runs the Node unit tests (geometry, every validation rule,
export/import round trips on synthetic docs and the traced HJLC fixtures, route
finding, a 300-room stress test). test:compat reads the exported fixtures with
a JS and a Python port of the the map site's tools/build_rooms.py parser rules and diffs the result.
Browser steps are in tests/MANUAL.md. tests/browser/ holds a Playwright
smoke test (the whole outline -> doors -> hallway -> room -> compass -> reload
-> export flow) and a drag-performance test (2,000 rooms):
node_modules/.bin/playwright test --config tests/browser/playwright.config.js
Palette chips render as small live previews using the same look as the exported plan: Room (grey box, number), Small room (smaller grey box), Big room (larger bluish box, "Classroom"), Our room (pink box), Restroom core (grey box, "WC"), Elevator core (grey box, up/down arrow), Stair block (grey box with 4 tread lines), Door (wall line with a white gap and green "EXIT"), Void (hatched/ dashed grey box), Compass (the compass rose). Dragging a chip shows the same SVG as the floating ghost, scaled to the current plan zoom.
MIT, see LICENSE.