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.