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.
Describe a home in plain language and get a real, computed floor plan with room-by-room dimensions. Open source, self-hostable.
DesignTypeScript · CSSGitHub @caelum0xOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open-source AI floor plan generator — a better, OSS alternative to Maket.ai
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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.