Skip to main content
Glama

TIP

ðŸĪ– Authored 100% by AI Agent (Antigravity powered by Gemini 3.8 Flash):
This iconic architectural masterpiece was not coded by hand line-by-line! Instead, an autonomous AI Coding Agent (Google Antigravity powered by Gemini 3.8 Flash) researched historical blueprints, structural grids, and architectural dimensions of the Farnsworth House, synthesized the declarative .debim specification (project.debim), computed material quantities (QTO), and compiled standard IFC4 building models in seconds — proving that humans don't need to manually code YAML when assisted by AI agents!


ðŸŽŊ Why debim?

"debim originated from a simple desire: to make AI calculate accurate Bills of Quantities (BOQ). Asking an LLM to guess building dimensions directly in text leads to fatal hallucinations. An exact mathematical model (BIM) is essential, yet traditional IFC files are bloated and overwhelm AI context windows. The solution is Declarative YAML — but the resulting Building-as-Code engine proved far more transformative than our initial goal."

Traditional BIM tools (like Revit or Archicad) were conceived over 25 years ago for humans clicking with computer mice. They lock architectural data inside heavy, proprietary gigabyte files (.rvt), charge thousands of dollars in annual licenses, and remain completely opaque to modern automation and AI agents.

debim is built on 6 Core Architectural Tenets:

  1. Building-as-Code & Git-Native: Buildings are software. Expressed as compact YAML/.debim (Kilobytes, not Gigabytes) for transparent Version Control, line-by-line Git diffs, and branching.

  2. Deterministic Code Compliance: Building codes and engineering regulations are treated as automated Unit Tests (pytest), catching setback violations and structural errors in 0.01 seconds before ground is broken.

  3. Zero-License & Zero-Friction Visualization: Instant geometric verification through lightweight 3D HTML viewers that load in any browser or mobile device in 2 seconds without expensive licenses.

  4. Universal Bridge & Dual Representation: Seamlessly connects 2D drafts, 3D DCC tools (Blender/SketchUp), and open IFC standards using a dual approach: 90% geometric primitives for engineering/BOQ + 10% baked GLB assets for architectural refinement.

  5. Human & AI Super-Collaboration: Designed with explicit uncertainty flags (review_status: needs_review), enabling humans and autonomous AI agents to co-author and verify building models without friction.

  6. "The Mermaid.js of BIM" (Zero-Dependency & Air-Gapped Sandboxes): Operates seamlessly inside secure enterprise environments, air-gapped VMs, and LLM Code Interpreters (ChatGPT, Claude Artifacts, Gemini Code Execution) using 100% Python Standard Library with zero pip dependencies.

NOTE

🔒 The "Mermaid.js" Philosophy for Isolated VMs & Sandboxes:
Just as Markdown freed documentation from MS Word and Mermaid.js freed diagramming from Visio, debim frees building design from 20GB closed CAD suites. An AI agent in an offline, air-gapped VM without internet access can analyze requirements and generate an exact .debim file in 0.01 seconds. Downstream systems and community compilers outside the sandbox then turn that file into IFC4, AutoCAD DXF, or full bills of quantities!


Related MCP server: ifc-mcp

ðŸĪ– Autonomous AI-Agent Setup

If you use an AI coding assistant (like Antigravity, Cursor, Claude Code, Jules, or ChatGPT/Copilot), you don't even need to install it manually!

Just copy and send this prompt to your AI:

"Please read https://github.com/PRIDA-TAKON/debim and AGENTS.md, install debim in my environment, and run debim --help to verify."

Your agent will inspect the repository, install the dependencies, and verify everything automatically.


🔌 Model Context Protocol (MCP) Server

Start MCP server over stdio on AI Agents Listing

debim natively implements the official Model Context Protocol (MCP) via FastMCP (Python SDK). It provides LLMs and AI Agents (such as Claude Desktop, Cursor, Cline, Windsurf, Devin, and Antigravity) with deterministic tools to model, inspect, calculate, compile, and visualize buildings directly via function calling.

Connecting to Claude Desktop / Cursor / Cline

Add debim to your MCP configuration (claude_desktop_config.json or .cursor/mcp.json):

{
  "mcpServers": {
    "debim": {
      "command": "debim",
      "args": ["mcp"]
    }
  }
}

Or run via Docker:

{
  "mcpServers": {
    "debim": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/prida-takon/debim:latest"]
    }
  }
}

Exposed MCP Tools

MCP Tool

Description

Input Parameters

debim_validate

Validates YAML manifest syntax, structural grid alignments, storey heights, and material references.

manifest_yaml: str

debim_qto

Computes deterministic Quantitative Take-Off (concrete vol, formwork area, rebar kg, structural steel, timber, masonry).

manifest_yaml: str

debim_cost_template

Extracts materials used by the building model and generates a minimal project-scoped price catalog template.

manifest_yaml: str

debim_cost

Maps QTO quantities against unit prices, calculates total project cost, and optionally exports BOQ to CSV.

manifest_yaml: str, prices_yaml?: str, export_csv_path?: str

debim_compile_ifc

Compiles declarative YAML into an open, standardized buildingSMART IFC4 model (.ifc).

manifest_yaml: str, output_ifc_path: str

debim_generate_viewer

Generates a standalone, zero-dependency interactive 3D WebGL HTML viewer with section cut and layer tree.

manifest_yaml: str, output_html_path: str

debim_urban_ingest

Ingests OpenStreetMap Overpass BBox or GeoJSON into native .debim urban manifest YAML.

bbox?: List[float], geojson_str?: str, crs_epsg?: int

Running the MCP Server Locally

# Start MCP server over stdio
debim mcp

🚀 Quickstart

1. Installation

debim is officially available on PyPI and requires Python 3.11+.

Choose your operating system and preferred terminal:

🊟 Windows (PowerShell / Command Prompt)

# Option A: Isolated CLI (Recommended via pipx or uv tool)
pipx install "debim[all]"
# or: uv tool install "debim[all]"

# Option B: Standard pip
python -m pip install --upgrade pip
pip install "debim[all]"

# Option C: Windows Package Manager (Zero-Python / One-Click Native)
# Note: Manifest is currently pending upstream review on microsoft/winget-pkgs
# winget install debim

# Verify installation
debim --help

🍎 macOS (Terminal / zsh)

# Option A: Native Homebrew Tap (Recommended on macOS)
brew install PRIDA-TAKON/debim/debim

# Option B: Isolated CLI (via pipx)
brew install pipx
pipx ensurepath
pipx install "debim[all]"

# Option C: uv tool
uv tool install "debim[all]"

# Option D: Virtual Environment
python3 -m venv .venv
source .venv/bin/activate
pip install "debim[all]"

# Verify installation
debim --help

🐧 Linux (Ubuntu / Debian / Fedora / Arch)

# Option A: Isolated CLI (Recommended on Ubuntu 23.04+ / Debian 12+)
sudo apt update && sudo apt install -y python3-pip python3-venv pipx
pipx ensurepath
pipx install "debim[all]"

# Option B: Virtual Environment
python3 -m venv .venv
source .venv/bin/activate
pip install "debim[all]"

# Option C: uv tool
uv tool install "debim[all]"

# Verify installation
debim --help

ðŸ“Ķ Package Extras Summary

Package Target

Command

Included Capabilities

Core

pip install debim

Fast CLI, Declarative YAML engine, 3D WebGL viewer generator, QTO, Thai CGD āļ§480 BOQ (āļ›āļĢ.4/āļ›āļĢ.5), Modular replication, Pure-Python STEP export

All (Recommended)

pip install "debim[all]"

Full suite: Core + IFC4 Compiler (ifcopenshell) + FastMCP Server + DOCX Specification Builder

IFC only

pip install "debim[ifc]"

Core + buildingSMART IFC4/IFC4X3 compiler (ifcopenshell)

MCP only

pip install "debim[mcp]"

Core + Model Context Protocol server for Claude / Cursor / Antigravity

DOCX only

pip install "debim[docx]"

Core + Specification Book compiler to Microsoft Word (python-docx)

ðŸģ Docker Container (Zero-Install & Sandbox)

If you prefer not to install Python locally or want to run debim in an isolated sandbox for AI agents:

# Pull official pre-built image from GitHub Container Registry (GHCR)
docker pull ghcr.io/prida-takon/debim:latest

# Run debim MCP Server over stdio for AI Agents / Claude Desktop
docker run -i --rm ghcr.io/prida-takon/debim:latest

# Or execute CLI commands in your current directory
docker run --rm -v "${PWD}:/workspace" -w /workspace ghcr.io/prida-takon/debim:latest debim --help

# Alternatively, build the container image locally from source
docker build -t debim .

🔒 Air-Gapped Sandboxes & Zero-Dependency Execution (Pure Standard Library)

In highly secured enterprise environments, air-gapped VMs, or LLM Code Interpreter sandboxes (e.g., ChatGPT Advanced Data Analysis, Claude Artifacts, Gemini Code Execution, Kaggle) where internet access and pip install are restricted:

# Run standalone zero-dependency engine (Pure Python Standard Library: math, json, re, argparse)
# Requires ZERO pip packages:
python skills/debim/scripts/debim_zero.py validate -m model.debim
python skills/debim/scripts/debim_zero.py qto -m model.debim

🛠ïļ Install from Source (Development)

git clone https://github.com/PRIDA-TAKON/debim.git
cd debim
pip install -e ".[all,dev]"

2. Basic Commands (v1.0.0)

# Initialize a new project
debim init my-project

# Validate schema syntax, structural continuity & bounding-box clash detection
debim validate -m examples/farnsworth_house/project.debim

# Run automated building code compliance checks (pytest)
debim test

# Calculate Quantitative Take-Off (Concrete m3, formwork m2, rebar kg)
debim qto -m examples/farnsworth_house/project.debim

# Generate official Thai Government BOQ (CGD āļ§480 with Factor F & steel density)
debim boq --rules cg-v480 --province nakhon_ratchasima -m project.debim -o dist/boq_v480.csv

# Generate project-scoped price template with international classifications
debim cost template -m examples/farnsworth_house/project.debim -o prices.template.yaml

# Estimate project budget & export commercial BOQ to CSV
debim cost -m examples/farnsworth_house/project.debim -p examples/farnsworth_house/prices.yaml -o dist/boq.csv

# Scaffold a new BIM element class boilerplate
debim scaffold element IfcRailing

# Preview 3D model in your browser (Three.js with Hierarchical Layer Explorer)
debim view -m examples/farnsworth_house/project.debim

# Compile declarative YAML to standard IFC4 building model
debim compile -m examples/farnsworth_house/project.debim -o dist/farnsworth_house.ifc

# Ingest Open GIS (Overpass BBox or GeoJSON) into native .debim urban model
debim urban ingest --bbox "13.734,100.558,13.742,100.566" -o dist/asoke.debim
debim urban ingest --geojson road.geojson --crs 32647 -o dist/road.debim

# Compile urban & civil infrastructure to ISO 19650 IFC4.3
debim compile -m dist/asoke.debim -o dist/asoke.ifc

# Launch Model Context Protocol (MCP) server over stdio
debim mcp

🏗ïļ Example project.yaml

schema: IFC4-Minimal
project:
  id: PRJ-2026-001
  name: "Townhouse-Feasibility"
  units: { length: METER, area: SQUARE_METER, volume: CUBIC_METER }

# 1. Spatial Structure
spatial_structure:
  storeys:
    - id: L1
      name: "Level 1"
      elevation: 0.00
      height: 3.50
    - id: L2
      name: "Level 2"
      elevation: 3.50
      height: 3.20

# 2. Reference Grid Axes
grids:
  axes_x: { A: 0.00, B: 4.00, C: 8.00 }
  axes_y: { 1: 0.00, 2: 5.00, 3: 10.00 }

# 3. Materials
materials:
  - id: CONC_240
    name: "Concrete 240 ksc"
    category: concrete
    unit_cost_ref: "MAT-CONC-01"
  - id: AAC_75
    name: "AAC Block 7.5cm"
    category: masonry
    unit_cost_ref: "MAT-AAC-01"

# 4. Elements
elements:
  # Column placed at grid intersection [A, 1]
  - class: IfcColumn
    tag: C-A1
    material: CONC_240
    profile: { shape: BOX, width: 0.20, depth: 0.20 }
    placement:
      grid: [A, 1]
      base_storey: L1
      top_storey: L2
    reinforcement:
      main: "4-DB16"
      stirrups: "RB6 @ 0.15m"

  # Beam spanning between [A, 1] and [B, 1]
  - class: IfcBeam
    tag: B-A1_B1
    material: CONC_240
    profile: { shape: BOX, width: 0.20, depth: 0.40 }
    placement:
      from_grid: [A, 1]
      to_grid: [B, 1]
      storey: L2
    reinforcement:
      main_top: "2-DB16"
      main_bottom: "3-DB20"
      stirrups: "RB9 @ 0.15m"

  # Wall with door host-child relationship
  - class: IfcWall
    tag: W-A1_A2
    material: AAC_75
    thickness: 0.075
    height: 3.10
    placement:
      from_grid: [A, 1]
      to_grid: [A, 2]
      storey: L1
    children:
      - class: IfcDoor
        tag: D1
        dimensions: { width: 0.90, height: 2.00 }
        offset_distance: 1.20

🔎 Empirical Research & Benchmark

debim prioritizes engineering precision and reproducible open science on our Kaggle Cloud Multi-Core Benchmark Suite:

1. ⚖ïļ 3D Visual Regression & Alignment Benchmark (255 Real-World Buildings)

Evaluating blind 3D geometric fidelity against ground-truth IFC models using Geometry Variant Deduplication + Balanced Macro-Averaging across 4,695 representative building elements:

  • ðŸŽŊ 85.50% Median Visual Fidelity: Surpassing the international standard benchmark ($\ge 85%$) across the majority of test suites.

  • 🏗ïļ 89.07% Structural Match: Primary load-bearing elements (columns, beams, slabs, foundations) maintain Grade-A+ geometric alignment.

  • ⚡ 82.64% MEP System Match: Ductwork, drainage, piping, and electrical fixtures align accurately in 3D coordinate planes.

📈 Progression Across Waves:

Global Metric

V1 (Baseline)

V2 (Wave 1-2)

V3 (Round 3 / Latest)

Cumulative Improvement

ðŸŽŊ Median Visual Match

80.90%

84.90%

85.50%

🏆 +4.60% (Exceeded 85%)

⚖ïļ Macro Average Visual Match

70.57%

77.60%

77.71%

ðŸŸĒ +7.14%

📊 Micro Average Visual Match

72.24%

80.35%

80.46%

ðŸŸĒ +8.22%

Passing Elements ($\ge 85%$)

2,865

3,140

3,135 (66.8%)

ðŸŸĒ +270 elements

Top Performing Disciplines

â€Ē Cable Trays (IfcCableCarrierSegment)

-

-

99.1%

🏆 Near-perfect alignment

â€Ē Structural Beams (IfcBeam)

92.1%

94.5%

95.0%

ðŸŸĒ Grade-A+ Framing

â€Ē Bracing Members (IfcMember)

91.8%

91.6%

94.2%

ðŸŸĒ +2.4% (3D Vector Pitch)

â€Ē Railings (IfcRailing)

85.0%

91.2%

93.0%

ðŸŸĒ +8.0% (Passing)

â€Ē Structural Plates (IfcPlate)

10.2%

88.9%

87.8%

ðŸŸĒ +77.6% (Passing)

â€Ē Ceilings (IfcCovering)

11.4%

89.0%

86.4%

ðŸŸĒ +75.0% (Passing)

â€Ē Valves & Piping (IfcValve)

0.0%

82.2%

81.9%

ðŸŸĒ +81.9% (Zero-shot lift)

👉 Want to inspect raw visual data or reproduce tests yourself? Explore the full dataset and code on the Kaggle Benchmark Notebook.


2. ðŸ“Ķ Roundtrip Retention & Storage Reduction Study (407 Real-World OpenBIM Models)

Rigorously benchmarked against 407 real-world projects across architectural, structural, and complex hospital MEP domains:

  • ðŸŽŊ 100.0% Median Retention Rate: Extract and re-compile back to standard IFC4 without element loss.

  • 📊 85.0% Mean Retention Rate: +26.1% retention gain across diverse real-world models (up from 58.9% in Round 1).

  • ðŸ“Ķ 88.4% Average Storage Reduction: Compresses raw IFC files by an average of 88.4% into compact declarative YAML.

  • ⚡ 558M+ LLM Tokens Saved: Prevented 558,629,804 tokens from cluttering agent context windows.

  • ðŸ›Ąïļ 100.0% Modern Schema Crash-Resilience: Zero fatal crashes or unhandled exceptions across standard IFC2X3, IFC4, and IFC4X3 datasets.

📈 Round 1 vs. Round 2 Stress Test Evolution:

Key Performance Indicator

Round 1 Baseline (192 Models)

Round 2 Enhanced (407 Models)

Improvement / Evolution

Total Models Evaluated

192 models

407 models

📈 +112% (Scaled 2.1x dataset)

ðŸŽŊ Median Element Retention

79.0%

100.0%

🏆 +21.0% (Reached 100%)

📊 Mean Element Retention

58.9%

85.0%

ðŸŸĒ +26.1% retention gain

ðŸ“Ķ Mean Storage Compression

94.0%

88.4%

High-fidelity declarative YAML

ðŸ›Ąïļ Modern Schema Crash-Resilience

100.0%

100.0%

Zero fatal crashes on IFC2X3, IFC4, IFC4X3

📖 Read Full Research Paper: debim: An Empirical Study of Declarative Building-as-Code on 407 Heterogeneous Real-World OpenBIM Models
ðŸ“Ķ Kaggle Public Benchmark Dataset: debim-5000-ifc-benchmark
⚡ Kaggle Automated Stress Test: debim-ifc-stress-test


❓ Frequently Asked Questions (FAQ)


📄 License & Attribution

Available Tools

7 tools
debim_compile_ifcC

Compile a declarative BIM YAML manifest into a standard IFC4 building model.

Inputs: manifest_yaml (required), output_ifc_path (required). Returns: result

debim_costB
Calculate full Bill of Quantities (BOQ) and cost estimation.
Matches QTO quantities against unit material and labor prices.
If prices_yaml is omitted, auto-generates a benchmark template.
Optionally exports the complete BOQ to a CSV file.

Inputs: manifest_yaml (required), prices_yaml, export_csv_path. Returns: result

debim_cost_templateC

Generate a minimal project-scoped price catalog YAML template based only on the materials and items actively used by the building model.

Inputs: manifest_yaml (required). Returns: result

debim_generate_viewerB

Generate a standalone, zero-dependency interactive 3D HTML web viewer with OrbitControls, X-Ray, Section Cut, and Layer Explorer.

Inputs: manifest_yaml (required), output_html_path (required). Returns: result

debim_qtoC

Calculate Quantitative Take-Off (QTO) material quantities deterministically. Returns exact concrete volume (m3), formwork area (m2), rebar weight (kg), structural steel (kg), timber volume (m3), masonry area (m2), and excavation (m3).

Inputs: manifest_yaml (required). Returns: result

debim_urban_ingestA
Ingest OpenStreetMap (Overpass API) bounding box or GeoJSON string into native .debim urban manifest YAML.

Args:
    bbox: Optional bounding box [min_lat, min_lon, max_lat, max_lon]
    geojson_str: Optional GeoJSON FeatureCollection string
    crs_epsg: Metric UTM CRS code (default 32647 for Thailand WGS84/UTM Zone 47N)

Inputs: bbox, crs_epsg, geojson_str. Returns: result

debim_validateB

Validate a declarative BIM manifest YAML string. Checks schema syntax, grid consistency, storey heights, and material references.

Inputs: manifest_yaml (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogâ€Ķ

    TDQS

    B3.3/5.0

    Scored across 7 tools

    Disambiguation4/5

    Each tool maps to a distinct pipeline stage (ingest, validate, qto, cost, template, compile, viewer), so an agent can mostly tell them apart. The only mild overlap is between debim_qto (quantity take-off) and debim_cost (BOQ priced from those quantities), and between debim_cost and debim_cost_template, but descriptions clarify the boundary.

    Naming Consistency4/5

    All tools share a predictable debim_ prefix with a single domain term following. The verb style varies a bit (ingest, compile, cost, generate, validate, qto), with some being nouns rather than verbs, but the naming is consistently readable and scoped.

    Tool Count5/5

    Seven tools is well-scoped for a BIM/urban pipeline, each earning its place as a distinct stage. No bloat and no single trivial wrapper.

    Completeness4/5

    The surface covers a coherent end-to-end flow: ingest, validate, quantity take-off, cost estimation, template generation, IFC compilation, and 3D viewing. Minor gaps exist, such as no explicit manifest load/edit/export tooling and no post-cost reporting beyond CSV, but core workflows are covered.

    Maintenance

    ActivityActive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      D
      maintenance
      Enables AI assistants to create, edit, and export IFC5/IFCX building information models through natural language, handling spatial structure, elements, geometry, metadata, validation, and export.
      73
      9 npm
      26
      Apache 2.0
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI agents to load, query, and analyze IFC building model files, including spatial structures, elements, properties, materials, and geometry.
      20
      1
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Read-only BIM query server for agents: structured, policy-bounded queries on IFC/gbXML models with deterministic cited results.
      11
      1
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      An MCP server that lets users query, validate, convert, and compare IFC/BIM files using natural language. Runs fully locally and integrates with AI agents like Claude.
      8
      MIT