Tavotto
AI drew your research figure. Tavotto makes it publication-ready: edit matplotlib figures on a canvas, lay out in mm, check journal rules. Free, open source.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Open-source AI floor plan generator — a better, OSS alternative to Maket.ai
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗An open-source, self-hostable alternative to Maket.ai — describe a home in plain language and get a real, computed floor plan with room-by-room dimensions.
3-bedroom, 2-bath, ~1400 sqft, open-plan kitchen/living
→ a footprint, a room program (entry / great room / bedrooms / bathrooms / hallway), real
rectangle coordinates for every room, walls, and doors — rendered as SVG. See examples/*.svg
for real generated output (not mockups).
Maket.ai does the same basic job (text → floor plan) but is closed-source, credit-metered
(reviewers report burning a month's credits on one plan), and has well-documented spatial
reasoning problems (a front door opening into the primary bedroom, in one reviewer's words).
HomePlan is MIT-licensed, has no credit meter, and makes every layout decision explicit and
inspectable in code — see lib/layout/ for the actual rules (e.g. ensuite bathrooms are always
paired with their bedroom and never routed through the hallway; a half bath only ever lands
in the public zone, never next to a bedroom).
No GAN, no diffusion model, no LLM call on the generation path — a deterministic rectangular-subdivision ("slicing floor plan") algorithm:
lib/parseDescription.ts — regex-based extraction of bedroom/bathroom count, target
square footage, open-plan/garage/office flags from the free-text description.lib/layout/program.ts — turns that into a room program: which rooms exist, their
ideal/minimum area, and bedroom↔bathroom pairing (ensuite vs. shared).lib/layout/generate.ts — the actual layout engine: computes a footprint from the
target square footage, splits it into a public zone (entry/living/kitchen/dining/office,
sliced side-by-side across the front) and a private zone (bedrooms/bathrooms, in one or two
rows around a central hallway), then derives walls and doors from the real geometry of the
placed rooms — never a hand-drawn template.lib/layout/geometry.ts — the one reusable primitive everything is built on: constrained
proportional 1D allocation (split a length across items by ideal share, respecting minimums),
plus shared-edge detection between two rectangles (used for both wall and door placement).lib/renderSvg.ts / components/FloorPlanSvg.tsx — render the computed rooms/walls/
doors as SVG (string version for scripts/exports, React version for the web UI).Every number in the output is computed from the input — nothing is a canned image or a lookup table keyed by bedroom count.
npm install
npm run dev # http://localhost:3000
Verify the generation engine directly (prints real room coordinates for 3 example briefs):
npm run verify
Render example SVGs to examples/:
npm run render-examples
POST /api/generate with { "description": "..." } returns { input, plan } — input is the
parsed brief, plan is the full computed layout (footprint, rooms[], walls[], doors[],
warnings[]). warnings is populated honestly when a brief is too tight for its square footage
(e.g. 3 bedrooms in 450 sqft) instead of silently shrinking rooms below realistic minimums.
MIT.