feat(scripts): Potrace floor-plan vectorization spike (#299) #1663

Merged
lekss361 merged 2 commits from feat/plan-vectorization-spike-299 into main 2026-06-17 17:12:49 +00:00
Collaborator

Phase 1 spike (#299): контурная векторизация floor-plan растров через Potrace.

Артефакт: backend/scripts/spike_plan_vectorize.py — переиспользуемый pipeline PNG/JPG → grayscale → threshold → PBM → potrace -s → SVG, с опциональным rsvg render-back для визуального QA. CLI/argparse. Это spike, не production-wiring.

Результаты (31 sample: 21 real Wikimedia + 10 синтетика):

  • Compression median 1.29× (0.20–7.91×; зависит от типа входа, не от Potrace)
  • Читаемость 87% (27/31), на чистом line-art — 100%
  • Tracing-fidelity (ink-IoU) median ~0.91 — не узкое место

Вердикт: Phase 1 production-ready для чистого line-art при input-quality фильтре; Phase 2 ML (CubiCasa) пока НЕ нужна. Wiring ≈ 3.5–4.5 дн.

Оговорка: валидация на РЕАЛЬНЫХ DOM.РФ-планировках ждёт 22d SSR-скрапера (зона владельца) — flat_plans.py сейчас заглушка.

Полный spike-doc → vault inbox/2026-06-17-1815-plan-vectorization-spike-299.md (→ code/patterns).

Closes #299

Phase 1 spike (#299): контурная векторизация floor-plan растров через Potrace. **Артефакт:** `backend/scripts/spike_plan_vectorize.py` — переиспользуемый pipeline PNG/JPG → grayscale → threshold → PBM → `potrace -s` → SVG, с опциональным rsvg render-back для визуального QA. CLI/argparse. Это spike, не production-wiring. **Результаты** (31 sample: 21 real Wikimedia + 10 синтетика): - Compression median **1.29×** (0.20–7.91×; зависит от типа входа, не от Potrace) - Читаемость **87% (27/31)**, на чистом line-art — **100%** - Tracing-fidelity (ink-IoU) median ~0.91 — не узкое место **Вердикт:** Phase 1 production-ready для чистого line-art **при input-quality фильтре**; Phase 2 ML (CubiCasa) пока НЕ нужна. Wiring ≈ 3.5–4.5 дн. **Оговорка:** валидация на РЕАЛЬНЫХ DOM.РФ-планировках ждёт 22d SSR-скрапера (зона владельца) — `flat_plans.py` сейчас заглушка. Полный spike-doc → vault `inbox/2026-06-17-1815-plan-vectorization-spike-299.md` (→ code/patterns). Closes #299
bot-backend added 1 commit 2026-06-17 07:07:18 +00:00
feat(scripts): add Potrace floor-plan vectorization spike (#299)
All checks were successful
CI / changes (push) Successful in 7s
CI / frontend-tests (push) Has been skipped
CI / changes (pull_request) Successful in 7s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (push) Successful in 1m55s
CI / openapi-codegen-check (pull_request) Successful in 1m50s
CI / backend-tests (push) Successful in 8m54s
CI / backend-tests (pull_request) Successful in 9m3s
9a0934c7eb
Exploration spike (#299 Phase 1): reusable PNG/JPG -> grayscale -> threshold
-> PBM -> `potrace -s` -> SVG pipeline with optional rsvg-convert render-back
for visual QA. CLI via argparse, ruff-clean. Not production wiring.

Spike verdict: Phase 1 production-ready for clean line-art (gated by an
input-quality filter); no Phase 2 ML needed yet. Median compression 1.29x,
readability 87% (100% on genuine line-art). Full doc → vault code/patterns.
Caveat: real DOM.RF validation pending the 22d SSR scraper.
bot-backend added 1 commit 2026-06-17 17:03:12 +00:00
fix(scripts): guard zero-division in vectorize summarise aggregate (#299)
All checks were successful
CI / openapi-codegen-check (push) Successful in 2m3s
CI / openapi-codegen-check (pull_request) Successful in 2m5s
CI / backend-tests (pull_request) Successful in 8m58s
CI / backend-tests (push) Successful in 9m3s
CI / changes (pull_request) Successful in 7s
CI / changes (push) Successful in 8s
CI / frontend-tests (push) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
838e8a9639
lekss361 merged commit 829f046852 into main 2026-06-17 17:12:49 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1663
No description provided.