Tavotto
AI가 당신의 연구 그림을 그려줍니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.