From 83bc6f4e1d765f6e478dd33c7315fae12b1b1cee Mon Sep 17 00:00:00 2001 From: Kaloyan Danchev Date: Fri, 7 Aug 2026 10:29:26 +0300 Subject: [PATCH] =?UTF-8?q?HA:=20Floorplan=20v3=20=E2=80=94=20per-room=20G?= =?UTF-8?q?emini=20API=20renders=20composited=20on=20exact=20geometry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- docs/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 062b2d9..76a2af9 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -5,6 +5,9 @@ --- ## 2026-08-07 +### Floorplan: photorealistic background v3 — per-room Gemini API generation (final) +- **[HA]** Winning pipeline: each room generated INDIVIDUALLY via `gemini-3.1-flash-image` REST API (billing key; room photos inline + per-room aspectRatio) — single rectangular room = trivial geometry, so both furniture and framing are accurate. PIL composite (5.5% edge crop, resize to area bboxes, walls/doors/windows drawn on top) → `/local/floorplan-render.jpg?v=3` (cache-bust required). Room renders archived in Obsidian for one-room re-generation later. ~$0.50 total. + ### Floorplan: photorealistic background via composite pipeline - **[HA]** Final "beautiful floorplan": Gemini one-shot render provided room interiors (good) with drifted geometry; a PIL compositor re-projected each room crop onto the exact plan geometry and redrew walls/doors/windows on top. Result deployed as `/local/floorplan-render.jpg`, set as Easy Floorplan floor `image` with `imageFit: stretch` (1:1 canvas mapping keeps the robot-tracker calibration). SVG furniture removed (backed up), areas made transparent, live device icons + tracker on top. - **[NOTE]** Reusable lesson: AI keeps either geometry or interiors, never both — composite (AI textures + coded geometry) is the deterministic path.