MLLMto3D: An MCP-Driven Closed-Loop Framework for Architectural 3D Generation
Abstract
1. Introduction
2. Theoretical Background
2.1. LLM-Driven CAD 3D Modeling
2.2. Open-Loop Limitations in LLM-Based Parametric Modeling Workflows
2.3. MCP-Enabled Closed-Loop 3D Modeling Workflows
2.4. New Research Challenges
3. Methodology
3.1. Closed-Loop Workflow Design
3.2. Detailed Five-Phase Workflow
3.2.1. Phase I: Visual Parsing and Ambiguity Identification
3.2.2. Phase II: JSON-Based Intent Serialization
3.2.3. Phase III: Rhino Pparametric Code Synthesis
3.2.4. Phase IV: MCP-Driven Rhino Execution and Feedback
3.2.5. Phase V: Verification with Bounded Repair
4. Experimental Validation
4.1. Experimental Design and Site Selection
4.2. Experimental Process
4.3. Experimental Results
4.3.1. Evaluation Framework
4.3.2. Primary Case Result
4.4. Diagnostic Ablation
4.5. Experimental Analysis
5. Discussion
5.1. Positioning Within Existing Design Workflows
5.2. Implications for Architectural Design
5.3. Limitations and Future Extensions
6. Conclusions
Supplementary Materials
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
| AI | Artificial Intelligence |
| API | Application Programming Interface |
| AST | Abstract Syntax Tree |
| BIM | Building Information Modeling |
| CAD | Computer-Aided Design |
| CLIP | Contrastive Language–Image Pretraining |
| IFC | Industry Foundation Classes |
| JSON | JavaScript Object Notation |
| LLM | Large Language Model |
| MCP | Model Context Protocol |
Appendix A. Experimental Case Execution Trace
Appendix A.1. Input—Reference Photograph and Design Brief

# Design Brief: Wukang_MixedUse_Commercial ## 1. Case Identifier - Building Name : Wukang_MixedUse_Commercial - Reference Building : Wukang Mansion, Shanghai - Reference Image : reference/Wukang_reference.png - Site Location : Shanghai, Xuhui District, adjacent renewal plot near Wukang Mansion - Brief Date : 27 April 2026 ## 2. Site Constraint - Plot Position : Adjacent renewal plot within the immediate visual context of Wukang Mansion and the surrounding heritage street block - Height Limit : 38 m, aligned with Wukang ridge, subordinate to heritage skyline - Setback Requirement: 6 m street, 4 m side, 3 m neighboring lot - Coverage Ratio : <= 0.55, ground-level public access required - Heritage Buffer : Visually compatible with Wukang Mansion in scale, facade rhythm, and material atmosphere within 30 m coordination distance; direct imitation prohibited - Other Regulations : Heritage protection core sector; facade material subject to planning review; preserve key sightlines toward Wukang Mansion; no oversized illuminated signage ## 3. Design Direction - Translation Mode : Translation (modernist transposition: preserve topological skeleton, replace stylistic vocabulary) - Stylistic Anchors to Preserve : - Base-body-top facade hierarchy - Clear vertical bay rhythm and continuous street-wall relationship - Strong street-corner urban presence - Human-scaled podium expression - Masonry-like facade texture and visual weight - Active mixed-use ground floor (retail + lobby + restaurant frontage) - Stylistic Anchors to Translate : - Historic masonry -> contemporary piers + infill panels - Continuous arcade -> transparent retail frontage + canopies + sheltered pedestrian edge - Corner emphasis -> commercial landmark corner / softened rounded articulation - Repetitive residential window rhythm -> larger commercial / office window modules - Tripartite hierarchy -> podium-commercial base + repetitive middle zone + setback rooftop terrace - Decorative reliefs -> subtle shadow grooves and facade depth changes - Stylistic Anchors to Drop : - Literal historic ornament replication - Residential balcony clutter - Domestic-scale facade elements - Direct copying of Wukang’s signature wedge-corner form - Excessively enclosed ground-floor wall - Oversized roof billboards / full-facade LED screens - Material Strategy : Same family, different material. Terracotta-toned cladding + stone-like base + dark bronze metal framing + low-reflectivity glazing; contemporary commercial identity, no historic literal copying - Color Strategy : Palette resonance. Warm brick-red, beige-gray, dark bronze / charcoal metal, low-reflectivity glass; no saturated branding colors on the main facade ## 4. Output Goal - Geometric Output : Rhino .3dm mixed-use commercial block facade model, semantic layer namespace WUKANG_COMM::* - Verification Pass : Topology and watertightness criteria PASS at Phase 5; CLIP cosine similarity is recorded as a descriptor only, with no pass-fail threshold applied - Failure Tolerance : Retry <= 2; out-of-budget runs archived as [Failure Case] - Downstream Use : Paper experimental case -- context-sensitive commercial complex generation under heritage constraint ## 5. Notes for Phase 1 - Reference image is the SW elevation of Wukang Mansion; foreground plane trees occlude bays 1--3 floors 1--2 (~20%) - Curved corner tower ~60% visible; occluded portion -> UNKNOWN tag - Floor 1--2 storefront signage, AC units, temporary commercial accretions are not core stylistic anchors - RGB sampling concentrated in floors 4--6 unobstructed mid-band - Generated result is a NEW commercial complex adjacent to Wukang, not a heritage replica |
Appendix A.2. Phase I Output—Visual Parsing Grammar
# Grammar: Wukang_MixedUse_Commercial > Phase 1 visual parsing of the reference image (Wukang Mansion, SW long flank). # Part 1: Topological Constants | Field | Value | | ---------------- | ------------------------------------------------------------------------------------ | | total_width | 130.0 m | | depth_base | UNKNOWN -- single elevation view, not derivable | | bays | 14 | | base_zone | z_range [0.0, 5.0] m, floors 1, semantics arched_arcade_base | | body_zone | z_range [5.0, 26.0] m, floors 6, bays 14, semantics punched_brick_residential_body | | roof_zone | z_range [26.0, 38.0] m, semantics recessed_attic_plus_terrace | | symmetry_axis | asymmetric -- rounded prow tower at bay 1 (east end); flat terminus at bay 14 (west) | | facade_edges_x | [0.0, 130.0] | | total_height | 38.0 m | Provenance notes (do not affect the values above): - ‘total_width = 130.0‘ is consistent with the brief’s implicit anchor (38 m height limit aligned to Wukang ridge -> corresponding plan length per heritage record) and the proportional reading of the elevation photograph (total_width : total_height ~= 3.4 : 1, typical of long-flank Shanghai apartment blocks of this period). - ‘bays = 14‘ is the count of distinguishable arcade arches in the photograph (~3 arches on the curved prow + ~10 regular arches on the straight flank + ~1 arch at the right terminus). The right-end count carries residual uncertainty (see Part 3). - Zone splits derive from the visible stringcourse positions: a strong horizontal break at the top of the arcade (~5 m); a secondary cornice break above floor 7 (~26 m); the recessed attic + roof equipment cluster occupies the upper 12 m to the parapet ridge. # Part 2: Procedural Style Anchors and Material Palette ## 2.1 Aperture primitives - **Continuous semicircular arcade** at floor 1, spanning all bays [1..14]. Each arch is a ‘semicircular_arch‘ with rise/span ~= 0.5. On the curved prow (bays [1..3]) arches inscribe a curved wall; on the straight flank (bays [4..14]) spans are uniform. - **Bel étage rectangular windows** at floor 2, bays [1..14]. Apparent height/width ~= 1.6 : 1, larger than upper-floor windows. Paired with continuous balcony rail. - **Punched rectangular windows** at floors [3..7], bays [1..14]. Standard residential punched windows, height/width ~= 1.4 : 1, vertically aligned with bel étage windows below. - **Recessed attic windows** at floor 8 (within roof_zone), bays [1..14]. Lower proportion (height/width ~= 1.0 : 1), set in a recessed wall plane offset inward from the body face. ## 2.2 Additive features - **Rounded prow tower** at bays [1..3]: curved wall bulging ~2--3 m outward; full-height curved volume; primary "corner emphasis" Preserve-class anchor (translated to "softened rounded articulation" in Phase 3). - **Continuous arched arcade** at floor 1, bays [1..14]: covered colonnade with semicircular arches on a stone base. - **Stringcourse / belt course** at z ~= 5.0 m, bays [1..14]: continuous horizontal stone band ~300 mm thick. - **Continuous balcony band** at floor 2, bays [1..14]: continuous balustrade projecting ~300 mm from the wall plane. - **Juliette balconettes** at floors [3..7], bays [1..14]: small iron-rail balconettes attached to each punched window. - **Capping cornice** at z ~= 26.0 m, bays [1..14]: horizontal stone band separating body_zone from roof_zone. - **Recessed attic plane** at floor 8 (z [26.0, 29.0]): wall set back ~600 mm from body face, capped by a thin coping. - **Parapet + roof terrace** at z [29.0, 38.0]: open terrace with low parapet/balustrade; rooftop equipment in the photograph is explicitly excluded from the grammar (per note 3 of the design brief). ## 2.3 Rhythm grammar - Macro composition: prow + flank -- ‘[curved_prow_volume at bays [1..3]] + [repetitive_flank at bays [4..14]]‘. - Arcade: continuous repetition ‘arch at bays [1..14] of floors [26]‘. - Bel étage windows: ‘bel_etage_window at bays [1..14] of floors [31]‘. - Body windows: ‘punched_window at bays [1..14] of floors [3..7]‘. - Balconettes: ‘juliette_balconette at bays [1..14] of floors [3..7]‘ (one per window). - Attic windows: ‘attic_window at bays [1..14] of floors [29]‘. ## 2.4 Material palette (apparent RGB, not ground-truth) Sampled from mid-tone, mid-floor regions of the photograph (avoiding shadow under the cornice, glare on glazing, and the foreground street zone). Values are medians of multiple sample patches per material. | Semantic layer | Apparent RGB | Applies to | Notes | | -------------- | --------------- | --------------------------------------------------------- | ----------------------------------------------- | | Base_Stone | (185, 178, 168) | base_zone arcade walls, stringcourse, capping cornice | Light beige weathered stone (water-washed) | | Body_Brick | (140, 75, 55) | body_zone walls (floors 2--7) on flank and prow | Aged red-brown clay brick | | Top_Plaster | (160, 138, 118) | roof_zone recessed attic wall (floor 8) + parapet | Warmer off-white plaster | | Ironwork | (50, 45, 40) | balcony rails, juliette balconettes, window mullion grids | Dark painted iron, near-black | | Glass_Curtain | (38, 42, 48) | window glazing on all floors | Dark, low-luminosity (interior shadow + grime) | # Part 3: Uncertainty Tags - **UNKNOWN: depth_base** -- single near-orthographic elevation view; building depth (Y-axis dimension) not measurable from the photograph. Required for Phase 2 ‘macro_topology.depth_base‘; user supplies via Part 4 User_Override. - **UNKNOWN: bay 14 (west terminus)** -- adjacent building partially obscures the last bay’s arcade arch and possibly truncates the flank; 14 is the best count but margin is $\pm$1. - **UNKNOWN: prow tower curvature radius** -- only apparent outward bulge (~2--3 m) is visible; Phase 3 treats radius as a Tier-B style variable (R ~= 8--12 m). - **UNKNOWN: floor 8 attic window count per bay** -- recessed plane and shallow depth make per-bay attic window count ambiguous. Best reading: one window per bay matching the bays below. - **UNKNOWN: foreground street zone** -- pedestrians, light poles, signage occlude bottom 0.5 m of the arcade in places. Non-architectural and explicitly out-of-scope per note 3 of the design brief. - **UNKNOWN: rooftop additions** -- visible AC units, satellite dishes, post-occupation rooftop construction; excluded from the grammar per note 3 of the design brief. - **UNKNOWN: floor-2 vs. floors-3-to-7 window-height ratio** -- both are tall punched rectangles; differentiation is primarily through the continuous balcony band rather than a large dimensional jump. Phase 3 treats floor-2 as ~10% taller; exact ratio is a Tier-B choice. > **Phase 1 Verification Checkpoint** -- summary presented to user; user-supplied overrides recorded as Part 4. Parts 1--3 above remain verbatim per the audit-trail rule. # Part 4: User_Override Recorded at the Phase 1 Verification Checkpoint. | Field | Source value (Part 1) | User override | Resolves | | ------------ | --------------------- | ------------- | -------------------------------------------------- | | depth_base | UNKNOWN | **14.0 m** | Unblocks Phase 2 (Part 1 UNKNOWN gate cleared). | | bays | 14 | **16** | User correction to arcade-arch count. | Downstream propagation: - ‘body_zone.bays‘ and any per-row aperture rhythm (‘at bays [1..14]‘) is reinterpreted as ‘at bays [1..16]‘ for Phase 2 / Phase 3. - ‘macro_topology.depth_base = 14.0‘ is added to ‘intent.json‘’s ‘macro_topology‘. - Bay-width derivation: ‘total_width / bays = 130.0 / 16 = 8.125 m‘ per bay (within the 6.0--9.0 m range cited in ‘facade_morphology.md‘ for substantial mid-rise blocks). - The prow-tower bay range remains ‘[1..3]‘; the repetitive-flank range becomes ‘[4..16]‘ (was ‘[4..14]‘). - All Part 2 rhythm grammar lines that reference ‘bays [1..14]‘ are read as ‘bays [1..16]‘ in downstream phases. Part 2 text is **not** edited; Part 4 is the single source of truth for the override. |
Appendix A.3. Phase II Output—Serialized ‘intent.json’
{
"units": "m",
"origin": [],
"up_axis": "z",
"macro_topology": {
"total_width": 130.0,
"depth_base": 14.0
},
"base_zone": {
"z_range": [0.0, 5.0],
"bays": 16,
"zone_semantics": "commercial_pier_arcade_base"
},
"body_zone": {
"z_range": [5.0, 26.0],
"floors": 6,
"bays": 16,
"zone_semantics": "terracotta_pier_office_body"
},
"roof_zone": {
"z_range": [26.0, 38.0],
"zone_semantics": "setback_rooftop_terrace"
}
}
|

Appendix A.4. Phase III Output—Generated Rhino Python Script
"""
Wukang_MixedUse_Commercial_procedural_generator.py (v2 -- architectural detail)
Translation: heritage arcade + punched-brick residential body ->
contemporary commercial complex with:
- Stone plinth + slim arcade piers + projecting canopy + retail glazing
- Terracotta pier fins (vertical rhythm) + slab-edge bands (horizontal)
- Layered commercial windows + spandrel panels per floor per bay
- Bronze mullion grids, stone sills/lintels, retail warm-light backs
- Shadow-groove masonry scoring; stepped pier articulation
- Continuous long facade rhythm; former prow bays absorbed
- Setback attic walls + glass parapet + mechanical penthouse
Layer strategy: Strategy B (prefix-scoped cleanup). Namespace: WUKANG_COMM::*
All objects on WUKANG_COMM::* layers are deleted at script start before
placing new geometry, preventing Z-fighting from repeated runs.
"""
|
# ============================================================
# PATHS
# ============================================================
_CASE_DIR = r"<CASE_DIR>" # absolute path to Wukang_MixedUse_Commercial_Case
_INTENT_PATH = os.path.join(_CASE_DIR,
"Wukang_MixedUse_Commercial_intent.json")
_SCREENSHOT_PATH = os.path.join(
_CASE_DIR, "screenshots",
"Wukang_MixedUse_Commercial_rhino_viewport.jpg")
# ============================================================
# TIER-A: load from intent JSON -- no hardcoding (Constraint 1)
# ============================================================
with open(_INTENT_PATH, "r", encoding="utf-8") as _f:
_INTENT = json.load(_f)
_MACRO = _INTENT["macro_topology"]
_BASE_Z = _INTENT["base_zone"]
_BODY_Z = _INTENT["body_zone"]
_ROOF_Z = _INTENT["roof_zone"]
TOTAL_WIDTH = _MACRO["total_width"]
DEPTH_BASE = _MACRO["depth_base"]
BASE_Z0 = _BASE_Z["z_range"][]
BASE_Z1 = _BASE_Z["z_range"][26]
BASE_BAYS = _BASE_Z["bays"]
BODY_Z0 = _BODY_Z["z_range"][]
BODY_Z1 = _BODY_Z["z_range"][26]
BODY_BAYS = _BODY_Z["bays"]
BODY_FLOORS = _BODY_Z["floors"]
ROOF_Z0 = _ROOF_Z["z_range"][]
ROOF_Z1 = _ROOF_Z["z_range"][26]
|
def main():
rs.EnableRedraw(False)
# 1. Intent JSON already loaded at module level.
# 2. Layer setup / Strategy B cleanup
setup_layers()
# 3. Build geometry -- ordered base -> body -> roof
all_ids = []
all_ids += build_base_zone()
all_ids += build_base_refinements()
all_ids += build_belt()
all_ids += build_body_backwall()
all_ids += build_pier_fins()
all_ids += build_slab_edges()
all_ids += build_body_glazing()
all_ids += build_body_facade_refinements()
all_ids += build_cornice()
all_ids += build_roof_zone()
all_ids += build_roof_refinements()
valid_ids = [i for i in all_ids if i is not None]
print("VALID_OBJECT_COUNT: {}".format(len(valid_ids)))
# 4. Watertightness probe
verify_watertightness(NS)
# 5. Zoom + 6. Viewport capture (Rhino native macro at 1920 × 1080)
rs.EnableRedraw(True)
rs.ZoomExtents()
rs.Command('-_ViewCaptureToFile "{}" Width=1920 Height=1080 ...'.format(
_SCREENSHOT_PATH), False)
# 7. Success banner
print("Phase 4: Rhino Orchestrator Validation -> SUCCESS. "
"Water-tight Topology Built.")
|
Appendix A.5. Phase IV Output—Verbatim Evaluator Stdout
[Pre-execution] tier_a_guard.py vs. Wukang_MixedUse_Commercial_intent.json TIER_A_GUARD: PASS (checked=7, violations=0) [Phase 4] send_to_rhino.py -> Wukang_MixedUse_Commercial_procedural_generator.py [Rhino] Connected to MCP bridge on localhost:9876 [Rhino] WUKANG_COMM::* layer sweep -- Strategy B prefix-scoped cleanup [Rhino] build_base_zone / build_belt / build_body_backwall / ... [Rhino] VALID_OBJECT_COUNT: 1387 [Rhino] WATERTIGHT_CHECK: PASS | 0 Naked Edges, 1387 Solids Generated [Rhino] Phase 4: Rhino Orchestrator Validation -> SUCCESS. Water-tight Topology Built. [Phase 5] topology_evaluator.py TOPOLOGY_CHECK: PASS (total_width, bays, base_z, body_z, roof_z matched) [Phase 5] clip_evaluator.py reference vs. viewport CLIP_SCORE:0.6102 |
Appendix A.6. Phase V—Verification Report
| Field | Value |
|---|---|
| Run timestamp | 2026-05-07 15:57 (UTC + 8) |
| Final classification | [Success Case] |
| Total retries (budget consumed) | 0 |
| Forced halt | no |
| Stage | Evaluator | Result | Numeric | Notes |
|---|---|---|---|---|
| Pre-Phase-IV Tier-A audit | tier_a_guard.py | PASS | 7 fields checked, 0 violations | static AST scan vs. intent.json |
| Phase V (a) Topology consistency | topology_evaluator.py | PASS | 5/5 parameters matched | total_width, bays, base_z, body_z, roof_z |
| Phase V (b) Watertightness | embedded in generator main() | PASS | 1387 solids; 0 naked edges; 0 non-manifold | Rhino-side polysurface validity probe |
| Phase V (c) Visual relation | clip_evaluator.py | (descriptor only) | raw cosine similarity 0.6102 | not used as pass-fail; see Appendix A.7 |


Appendix A.7. Note on the CLIP Descriptor
similarity = F.cosine_similarity(features_a, features_b) return similarity.item() |
Appendix A.8. Tier-A Guard Activation Trace
| Attempt | Stage | Tier-A | Topology | Watertight | CLIP (Raw Cosine Similarity) | Result | Timestamp |
|---|---|---|---|---|---|---|---|
| 1 | tier_a_guard | FAIL (2) | — | — | — | FAIL | 6 May 2026 23:45:17 |
| 1 | phase_5 (re-run) | PASS (0) | PASS | PASS | 0.4984 | PASS | 6 May 2026 23:47:14 |
| 1 | phase_5 (re-run) | PASS (0) | PASS | PASS | 0.6102 | PASS | 7 May 2026 15:50:32 |
| 1 | phase_5 (re-run) | PASS (0) | PASS | PASS | 0.6088 | PASS | 7 May 2026 15:54:19 |
| 1 | phase_5 (final) | PASS (0) | PASS | PASS | 0.6102 | PASS | 7 May 2026 15:57:19 |
Appendix A.9. Reproduction
python experiments/shared/retry_wrapper.py \
--case Wukang_MixedUse_Commercial \
--generator experiments/cases/Wukang_MixedUse_Commercial/runs/full/Wukang_MixedUse_Commercial_procedural_generator.py \
--intent experiments/cases/Wukang_MixedUse_Commercial/runs/full/Wukang_MixedUse_Commercial_intent.json \
--reference experiments/cases/Wukang_MixedUse_Commercial/runs/full/reference/Wukang_reference.png
|
$env:DASHSCOPE_API_KEY = "<your key>"
python experiments/batch_run.py --config A1_no_mcp --reps 10
python experiments/batch_run.py --config A2_no_json --reps 10
python experiments/batch_run.py --config A3_no_skills --reps 10
python experiments/aggregate_results.py
|
Appendix A.10. Ablation Sampling Variance Study (N = 10)
| Configuration | n | Tier-A Guard PASS Rate | Reaches Rhino Execution | Pre-Execution Failures (Tier-A Literal Violations) | Rhino Runtime Failures (API Misuse/Geometry Abort) | Reached Final Acceptance |
|---|---|---|---|---|---|---|
| A1 No-MCP | 10 | 5/10 | 0/10 | 5/10 | 5/10 | 0/10 |
| A2 No-JSON | 10 | 5/10 | 1/10 | 5/10 | 4/10 | 1/10 |
| A3 No-Skills | 10 | 7/10 | 0/10 | 3/10 | 7/10 | 0/10 |
References
- Li, X.; Sun, Y.; Sha, Z. LLM4CAD: Multimodal large language models for three-dimensional computer-aided design generation. J. Comput. Inf. Sci. Eng. 2025, 25, 021005. [Google Scholar] [CrossRef]
- Daareyni, A.; Martikkala, A.; Mokhtarian, H.; Ituarte, I.F. Generative AI meets CAD: Enhancing engineering design to manufacturing processes with large language models. Int. J. Adv. Manuf. Technol. 2025. [Google Scholar] [CrossRef]
- Hizmi, B.-E.; Sterman, Y.; Austern, G. LLMto3D: Generation of parametric, 3D printable objects using large language models. Int. J. Archit. Comput. 2025, 23, 701–719. [Google Scholar]
- Jiang, X.; Dong, Y.; Wang, L.; Fang, Z.; Shang, Q.; Li, G.; Jin, Z.; Jiao, W. Self-planning code generation with large language models. ACM Trans. Softw. Eng. Methodol. 2024, 33, 1–30. [Google Scholar] [CrossRef]
- Pan, L.; Saxon, M.S.; Xu, W.; Nathani, D.; Wang, X.; Wang, W. Automatically correcting large language models: Surveying the landscape of diverse automated correction strategies. Trans. Assoc. Comput. Linguist. 2024, 12, 484–506. [Google Scholar] [CrossRef]
- Hou, X.; Zhao, Y.; Liu, Y.; Yang, Z.; Wang, K.; Li, L.; Luo, X.; Lo, D.; Grundy, J.; Wang, H. Large language models for software engineering: A systematic literature review. ACM Trans. Softw. Eng. Methodol. 2024, 33, 1–79. [Google Scholar] [CrossRef]
- Qu, C.; Dai, S.; Wei, X.; Cai, H.; Wang, S.; Yin, D.; Xu, J.; Wen, J. Tool learning with large language models: A survey. Front. Comput. Sci. 2025, 19, 198343. [Google Scholar] [CrossRef]
- Mildenhall, B.; Srinivasan, P.P.; Tancik, M.; Barron, J.T.; Ramamoorthi, R.; Ng, R. NeRF: Representing scenes as neural radiance fields for view synthesis. In Proceedings of the European Conference on Computer Vision; Springer: Cham, Switzerland, 2020. [Google Scholar] [CrossRef]
- Zhang, J.; Li, X.; Wan, Z.; Wang, C.; Liao, J. Text2NeRF: Text-driven 3D scene generation with neural radiance fields. IEEE Trans. Vis. Comput. Graph. 2024, 30, 7749–7762. [Google Scholar] [PubMed]
- Wang, C.; Jiang, R.; Chai, M.; He, M.; Chen, D.; Liao, J. NeRF-Art: Text-driven neural radiance fields stylization. IEEE Trans. Vis. Comput. Graph. 2024, 30, 4983–4996. [Google Scholar] [PubMed]
- Yu, Y.; Wu, R.; Men, Y.; Lu, S.; Cui, M.; Xie, X.; Miao, C. MorphNeRF: Text-guided 3D-aware editing via morphing generative neural radiance fields. IEEE Trans. Multimed. 2024, 26, 8516–8528. [Google Scholar]
- Cai, W.; Liu, W.; Li, W.; Zhao, Z.; Yin, F.; Chen, X.; Zhao, L.; Chen, T. Instruct Pix-to-3D: Instructional 3D object generation from a single image. Neurocomputing 2024, 600, 128156. [Google Scholar] [CrossRef]
- Zhang, B.; Tang, J.; Nießner, M.; Wonka, P. 3DShape2VecSet: A 3D shape representation for neural fields and generative diffusion models. ACM Trans. Graph. 2023, 42, 92. [Google Scholar] [CrossRef]
- Liu, F.-L.; Fu, H.; Lai, Y.-K.; Gao, L. SketchDream: Sketch-based text-to-3D generation and editing. ACM Trans. Graph. 2024, 43, 44. [Google Scholar]
- Yin, F.; Chen, X.; Zhang, C.; Jiang, B.; Zhao, Z.; Liu, W.; Yu, G.; Chen, T. ShapeGPT: 3D shape generation with a unified multi-modal language model. IEEE Trans. Multimed. 2025, 27, 4107–4120. [Google Scholar]
- Michel, O.; Bar-On, R.; Liu, R.; Benaim, S.; Hanocka, R. Text2Mesh: Text-driven neural stylization for meshes. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, New Orleans, LA, USA, 18–24 June 2022. [Google Scholar]
- Kerbl, B.; Kopanas, G.; Leimkühler, T.; Drettakis, G. 3D Gaussian Splatting for real-time radiance field rendering. ACM Trans. Graph. 2023, 42, 139. [Google Scholar] [CrossRef]
- Müller, T.; Evans, A.; Schied, C.; Keller, A. Instant neural graphics primitives with a multiresolution hash encoding. ACM Trans. Graph. 2022, 41, hl102. [Google Scholar] [CrossRef]
- Yin, S.; Fu, C.; Zhao, S.; Li, K.; Sun, X.; Xu, T.; Chen, E. A survey on multimodal large language models. Natl. Sci. Rev. 2024, 11, nwae403. [Google Scholar] [CrossRef] [PubMed]
- Chang, Y.; Wang, X.; Wang, J.; Wu, Y.; Yang, L.; Zhu, K.; Chen, H.; Yi, X.; Wang, C.; Wang, Y.; et al. A survey on evaluation of large language models. ACM Trans. Intell. Syst. Technol. 2024, 15, 39. [Google Scholar] [CrossRef]
- Gao, C.; Lan, X.; Li, N.; Yuan, Y.; Ding, J.; Zhou, Z.; Xu, F.; Li, Y. Large language models empowered agent-based modeling and simulation: A survey and perspectives. Humanit. Soc. Sci. Commun. 2024, 11, 1259. [Google Scholar] [CrossRef]
- Raiaan, M.A.K.; Mukta, M.S.H.; Fatema, K.; Fahad, N.M.; Sakib, S.; Mim, M.M.J.; Ahmad, J.; Ali, M.E.; Azam, S.A. A review on large language models: Architectures, applications, taxonomies, open issues and challenges. IEEE Access 2024, 12, 26839–26874. [Google Scholar] [CrossRef]
- Krier, R. Architectural Composition; Rizzoli: New York, NY, USA, 1988. [Google Scholar]
- Unwin, S. Analysing Architecture, 5th ed.; Routledge: Abingdon, UK, 2014. [Google Scholar]
- Ching, F.D.K. Architecture: Form, Space, and Order, 4th ed.; Wiley: Hoboken, NJ, USA, 2014. [Google Scholar]
- Caetano, I.; Santos, L.; Leitão, A. Computational design in architecture: Defining parametric, generative, and algorithmic design. Front. Archit. Res. 2020, 9, 287–300. [Google Scholar] [CrossRef]
- Lin, H.; Huang, L.; Chen, Y.; Zheng, L.; Huang, M.; Chen, Y. Research on the application of CGAN in the design of historic building facades in urban renewal: Taking Fujian Putian historic districts as an example. Buildings 2023, 13, 1478. [Google Scholar] [CrossRef]
- He, W.; Chen, M. Advancing urban life: A systematic review of emerging technologies and artificial intelligence in urban design and planning. Buildings 2024, 14, 835. [Google Scholar] [CrossRef]
- Koehler, D. More than anything: Advocating for synthetic architectures within large-scale language-image models. Int. J. Archit. Comput. 2023, 21, 242–255. [Google Scholar]
- Khan, A.; Chang, S.; Chang, H. Generative AI approaches for architectural design automation. Autom. Constr. 2025, 180, 106506. [Google Scholar] [CrossRef]
- Peña, M.L.C.; Carballal, A.; Rodríguez-Fernández, N.; Santos, I.; Romero, J. Artificial intelligence applied to conceptual design: A review of its use in architecture. Autom. Constr. 2021, 124, 103550. [Google Scholar] [CrossRef]
- Li, C.; Zhang, T.; Du, X.; Zhang, Y.; Xie, H. Generative AI models for different steps in architectural design: A literature review. Front. Archit. Res. 2025, 14, 759–783. [Google Scholar] [CrossRef]
- Horvath, A.-S.; Pouliou, P. AI for conceptual architecture: Reflections on designing with text-to-text, text-to-image, and image-to-image generators. Front. Archit. Res. 2024, 13, 593–612. [Google Scholar]
- Jo, H.; Lee, J.-K.; Lee, Y.-C.; Choo, S. Generative artificial intelligence and building design: Early photorealistic render visualization of façades using local identity-trained models. J. Comput. Des. Eng. 2024, 11, 85–105. [Google Scholar] [CrossRef]
- Płoszaj-Mazurek, M.; Ryńska, E. Artificial intelligence and digital tools for assisting low-carbon architectural design: Merging the use of machine learning, large language models, and building information modeling for life cycle assessment tool development. Energies 2024, 17, 2997. [Google Scholar] [CrossRef]
- Anthropic. Model Context Protocol Documentation. Available online: https://modelcontextprotocol.io/ (accessed on 7 May 2026).
- Chen, N.; Lin, X.; Jiang, H.; An, Y. Automated Building Information Modeling compliance check through a large language model combined with deep learning and ontology. Buildings 2024, 14, 1983. [Google Scholar] [CrossRef]
- Lu, J.; Zheng, Z.; Langtry, M.; Jackson, M.; Zhao, Y.; Feng, C.; Zhang, R.; Zhang, C.; Zhang, J.; Choudhary, R. Automated building energy modeling for energy retrofits using a large language model-based multi-agent framework. iScience 2025, 28, 113867. [Google Scholar] [PubMed]
- Jiang, G.; Ma, Z.; Zhang, L.; Chen, J. EPlus-LLM: A large language model-based computing platform for automated building energy modeling. Appl. Energy 2024, 367, 123431. [Google Scholar]
- Liu, M.; Zhang, L.; Chen, J.; Chen, W.-A.; Yang, Z.; Lo, L.J.; Wen, J.; O’Neill, Z. Large language models for building energy applications: Opportunities and challenges. Build. Simul. 2025, 18, 225–234. [Google Scholar] [CrossRef]
- Sacks, R.; Eastman, C.; Lee, G.; Teicholz, P. BIM Handbook: A Guide to Building Information Modeling for Owners, Designers, Engineers, Contractors, and Facility Managers; Wiley: Hoboken, NJ, USA, 2018. [Google Scholar] [CrossRef]
- Sacks, R.; Girolami, M.; Brilakis, I. Building Information Modelling, artificial intelligence and construction tech. Dev. Built Environ. 2020, 4, 100011. [Google Scholar] [CrossRef]
- He, Z.; Wang, Y.; Zhang, J. Generative AIBIM: An automatic and intelligent structural design pipeline integrating BIM and generative AI. Inf. Fusion 2025, 114, 102654. [Google Scholar] [CrossRef]
- Urbieta, M.; Urbieta, M.; Laborde, T.; Villarreal, G.; Rossi, G. Generating BIM model from structural and architectural plans using artificial intelligence. J. Build. Eng. 2023, 78, 107672. [Google Scholar] [CrossRef]
- Robert McNeel & Associates. Rhino 8 Developer Documentation and RhinoScriptSyntax API Reference. Available online: https://developer.rhino3d.com/api/RhinoScriptSyntax/ (accessed on 7 May 2026).
- Model Context Protocol. Model Context Protocol Specification and SDKs. GitHub Repository. Available online: https://github.com/modelcontextprotocol/ (accessed on 7 May 2026).








| Research Problem | Workflow Mechanism | Validation Criterion | Ablation Setting |
|---|---|---|---|
| Kernel instability | MCP-driven Rhino execution and feedback | Runtime status; watertightness | No MCP |
| Weak intent formalization | JSON-based intent serialization | Tier-A guard; topology consistency | No JSON |
| Implicit domain knowledge | Skills modules | API correctness; synthesis success | No Skills |
| Module | Function in the Workflow | Encapsulated Knowledge | Targeted Risk |
|---|---|---|---|
| facade_morphology | Builds bay grids, zones, and alignment rules | Facade typology and compositional rules | Loss of facade organization |
| rhino_parametric_design | Wraps Rhino operations with validation and layer control | Safe Rhino scripting patterns | API hallucination and runtime failure |
| comprehensive_style_parsing | Translates style cues into parametric modeling instructions | Material, opening, and ornament vocabularies | Uncontrolled stylistic translation |
| Indicator | What It Checks | Pass Criterion | Experimental Case Result |
|---|---|---|---|
| Tier-A guard | Pre-execution constraint compliance | No protected topological constants hard-coded | PASS, 0 violations across 7 protected fields |
| Topology consistency | Post-execution adherence to intent.json | All measurable parameters within tolerance | 5/5 within tolerance |
| Watertightness | Post-execution geometric validity | No open-edge or non-manifold detection | 1387 closed polysurfaces |
| Visual relation (inspection only) | Visual relation to the reference | Side-by-side inspection; no threshold | raw CLIP descriptor = 0.6102 |
| Configuration | Removed Mechanism | Pilot-Run Failure Stage | Pilot-Run Observed Failure | Interpretation |
|---|---|---|---|---|
| A1 No MCP | MCP-driven Rhino execution and feedback | Runtime | rs.AddArc() argument mismatch | Runtime error cannot enter bounded repair |
| A2 No JSON | JSON-based intent serialization | Pre-execution | Protected values hard-coded | Intent constraints are no longer preserved |
| A3 No Skills | Skills modules | Synthesis/API surface | rs.LayerExists hallucinated | API knowledge remains implicit |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license.
Share and Cite
Yao, D.; He, B.; Zhao, X. MLLMto3D: An MCP-Driven Closed-Loop Framework for Architectural 3D Generation. Buildings 2026, 16, 2437. https://doi.org/10.3390/buildings16122437
Yao D, He B, Zhao X. MLLMto3D: An MCP-Driven Closed-Loop Framework for Architectural 3D Generation. Buildings. 2026; 16(12):2437. https://doi.org/10.3390/buildings16122437
Chicago/Turabian StyleYao, Dong, Bingcheng He, and Xiaoxi Zhao. 2026. "MLLMto3D: An MCP-Driven Closed-Loop Framework for Architectural 3D Generation" Buildings 16, no. 12: 2437. https://doi.org/10.3390/buildings16122437
APA StyleYao, D., He, B., & Zhao, X. (2026). MLLMto3D: An MCP-Driven Closed-Loop Framework for Architectural 3D Generation. Buildings, 16(12), 2437. https://doi.org/10.3390/buildings16122437

