A rule-based, multi-stage layout generator built for the Agent-Based Software Engineering course. It takes user-specified plot dimensions, floor count, and room requirements, then runs a pipeline of coordination functions (referred to in the codebase as "agents") to zone, lay out, wall, furnish, and connect rooms into a schematic house design.
This repository was originally built as a team coursework project. I'm using it as a personal QA and testing practice ground: identifying defects, writing test coverage, and documenting fixes the way I would on a real codebase, rather than rewriting the project from scratch. Treat the sections below as a living audit log rather than a finished changelog.
The system runs five sequential stages, coordinated through a shared blackboard object rather than independent decision-making agents:
- Zoning — assigns room types to floors based on simple priority rules (master suite first, then bedrooms, then ground-floor core rooms)
- Layout — divides each floor into a hallway "spine" with left/right wings, then proportionally splits wing space across assigned rooms by weight
- Structural — derives wall segments from the resulting room rectangles
- Interior — places hardcoded furniture per room type (bed, sofa, table, etc.)
- Connectivity — infers door placement based on which rooms touch each other
Note: despite the naming, these are deterministic functions, not autonomous or LLM-based agents. No external APIs, search, or learned reasoning are involved.
Documenting these openly is part of the point — this is what I'd flag in a QA review of this codebase:
- Room minimum dimensions are defined but unenforced. Every room type in
ROOM_SPECShas aminDimvalue (e.g. bathrooms require 6ft minimum), butLayoutAgentnever reads it. Rooms are sized purely by proportional weight against available space, so a small plot or high room count can produce undersized, architecturally invalid rooms. - No feasibility validation before generation. There's no check that a given plot size can actually accommodate the requested room count at minimum standards. This likely causes failed or malformed generations on smaller inputs rather than a clear error message.
- No automated tests exist, despite a CI workflow expecting
npm testto pass. - No input validation on the requirements form for edge cases (zero rooms, negative dimensions, floor count exceeding plot size, etc.)
- Write unit tests for
ZoningAgent,LayoutAgent,StructuralAgent, andConnectivityAgentin isolation - Add edge case tests: minimum plot size, zero/negative dimensions, single-room input, maximum floor count
- Enforce
minDimconstraints in the layout solver and add a feasibility check with a clear user-facing error - Fix or rewrite the existing GitHub Actions CI workflow so it reflects real test coverage instead of failing silently
- Document expected vs. actual behavior for each defect above with reproduction steps
JavaScript, React, CSS, HTML
git clone https://github.com/aIi-raza/Agent-Based-Smart-Architect
cd Agent-Bassed-Smart-Architect
npm install
npm startThen open http://localhost:3000.
Built as a team project for the Agent-Based Software Engineering course at Air University. Original authorship: SE-Muhammad-Shamoil and team. This fork/copy is maintained independently for personal QA practice and is not affiliated with the original course submission.