Skip to content
←Back to Open Source

OPEN SOURCE DEEP DIVE

ArchitectureInteriorDesignFloorPlanCAD

House Plan Designer: From Drawing to an Editable Renovation Workspace

An agent-guided pipeline that reconstructs plans from images, screenshots, PDFs, and DXFs into a millimetre-based workspace, then audits walls, dimensions, openings, and furniture before producing an offline renovation designer.

ZWD11/house-plan-designer454HTMLMIT6 min read

House Plan Designer targets a narrow but expensive workflow: turning a property listing image, scan, CAD screenshot, vector PDF, or contractor drawing set into an editable renovation workspace. It does not place a picture inside a 3D viewer. The agent interprets the drawing, converts walls, openings, rooms, furniture, finishes, and service points into millimetre-based data, then packages the result as a single offline HTML file that remains editable.

Every input takes a route matched to its geometry

The repository separates image, vector, black-background CAD, paired-drawing, multi-floor, DXF-layout, office, and villa workflows. Raster plans begin with wall extraction and use dimension chains to recover scale. CAD screenshots are split by line colour, then calibrated from numbered axes and their spacing. Vector PDFs and DXFs expose primitives directly, so wall and opening coordinates do not inherit screenshot resolution error. When an original plan and a furnished design are supplied together, the original governs structure while the design governs furniture and renovation scope; shared dimension chains align both drawings in one coordinate system.

Multi-storey inputs are split into floors before each plan is reconstructed. Contractor DXFs receive a different preparation pass: nested blocks are expanded, garbled text is repaired, and the relevant layout sheet is isolated. The tool then inventories furniture blocks, room labels, door arcs, and dimensions. Insertion angle and mirror state are retained so furniture orientation comes from the drawing rather than proximity guesses. These routes reflect a key engineering choice: normalize each source according to what it actually contains instead of forcing every drawing through a lossy image model.

A compact spatial contract sits behind every output

All downstream tools consume HouseSpec, a millimetre-based description of the project. Walls are centre lines with thickness, bearing status, flush direction, and openings. A door or window belongs to a specific wall interval and carries its hinge, swing side, sill, and head height. A room is named by a point inside a closed region, with floor finish, wall finish, ceiling design, skirting, and tiling parameters attached to that region.

Furniture, columns, shafts, drains, electrical points, plumbing points, beams, and service routes have their own records. Furniture orientation follows a consistent heading convention, while adjustable cabinets retain separate parameters for carcass shape, counter, sink, and hob. The source image can be embedded as a scaled underlay with a known origin. Because the 2D plan, 3D scene, quantity model, electrical layout, and exported drawings read the same objects, the project avoids maintaining disconnected representations of one building.

Recognition is followed by independent reconciliation

Generation does not end when a wall detector returns polygons. A headless browser opens the resulting page and checks that rooms are closed, wall ends are connected, and openings survived conversion. It compares perimeter dimensions and room spans against the drawing, reports tolerance failures, and distinguishes model mistakes from contradictory source dimensions.

Wall audit is spatial rather than cosmetic. Every 150 millimetres, the source image is sampled across the wall thickness and the number of lines is compared with the model’s state: solid wall, window, glass, or opening. Adjacent furniture masks are excluded first so wardrobes and headboards do not create false readings. A second audit overlays model furniture footprints and direction arrows on the furnished drawing. The editor then checks collisions, blocked doors, narrow circulation, tall cabinets over windows, and stair clearance. Together, these loops explain why the result matches the source or identify the exact place where it does not.

The deliverable is an operational design file

The project keeps the application template separate from the reconstruction task. The template contains the editor, model catalogue, rendering system, and export paths; the agent supplies only the spatial specification. The published artefact is a self-contained HTML page that opens without a server. Users can edit walls, openings, rooms, finishes, and furniture in plan view, then inspect the same scene in bird’s-eye 3D, first-person walkthrough, or panorama modes.

Design layers cover furnishing, electrical and plumbing, ceilings, paving, and demolition. The furniture catalogue spans residential, office, commercial, and outdoor settings, with replacement, resizing, and style-wide changes. Parametric cabinetry handles kitchens, wardrobes, vanities, and shaped counters. Ceiling options include perimeter drops, stepped trays, floating panels, modular metal panels, and concealed lighting troughs. A routing engine places electrical, lighting, data, hot-water, cold-water, and drainage runs on a 100-millimetre orthogonal grid, with a 3D view of pipes at their intended elevations.

Output includes rendered plans, a construction-drawing PDF, schedules and estimates, material lists, and DXF drawings. The DXF writer uses standard CAD entities, blocks, layers, and dimension objects. It does not recreate parametric architectural wall objects, so edits that need connected walls to update together should happen in the web designer, followed by a fresh export.

What the reported validation covers

The repository documents several large tests. A 12,340 by 11,940 millimetre apartment was reconstructed with 21 walls, eight doors, seven windows, and eight rooms. Eight walls were supplied by the agent after recognition, and the outer profile differed by 10 millimetres. In a vector structural drawing, 100 of 101 dimension chains were read; 94 matched the generated model within one millimetre, while the remaining six were identified as internal conflicts in the drawing. A separate architectural DXF round trip recovered all 16 openings with zero wall error.

A commercial office and training floor covered 1,019.42 square metres and contained 460 furniture items plus a 118-seat stepped training hall. All 42 doors in the source layer received matching openings. The project reports zero self-check warnings and complete functional and export acceptance for that case. Paired-image alignment produced root-mean-square errors of 4 and 13 millimetres. These figures are project-authored claims from the reviewed commit; the full browser, CAD, and large-scene validation suite was not independently rerun for this article.

Limits that belong in the handover

Bitmap wall extraction still needs agent review. Difficult cases include lines separated only by colour or width, low-resolution scans, perspective distortion, and plans without usable dimensions. Scale may come from a known measurement or an explicit estimate, and that provenance should travel with the deliverable. The fallback that pairs parallel lines can recover missing walls and columns, but it can also produce false positives. Bearing status inferred from fill, thickness, or drafting convention is not a structural survey; demolition decisions require authoritative building records and structural review.

Automated service routing is a planning aid, not a substitute for current codes, load calculations, trade coordination, or site verification. Ceiling voids, beams, shafts, incoming capacity, and local requirements can invalidate a plausible-looking route. The responsible workflow is to review the generated model alongside the source overlays, dimension conflicts, confidence markers, and unresolved assumptions. A designer or contractor must still sign off on structural safety, fire performance, electrical capacity, drainage, and buildability. The project is useful because it makes those checks visible, not because it removes professional responsibility.

As an Amazon Associate, we earn from qualifying purchases.