twin-build

Orchestrates the IFC-to-verified-viewer pipeline by chaining import, optimize, verify, and summary stages.

Updated Jul 8, 2026
One-click install
npx skills add https://github.com/arthur0n/xenodot-twin --skill twin-build-arthur0n
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: twin-build
Source: https://github.com/arthur0n/xenodot-twin/tree/main/plugin/skills/twin-build
Command: npx skills add https://github.com/arthur0n/xenodot-twin --skill twin-build-arthur0n

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires ifcopenshell.

What problem does it solve? Building a Godot digital-twin viewer from an IFC/BIM model requires running four separate tools in the right order with consistent gate discipline; this Skill runs the entire chain in one command and stops at the first failing gate. ## Core Features & Use Cases - One-command pipeline: Runs import (ifc_convert.py), optimize (optimize_scene.gd), verify (verify_twin.sh), and a summary with the exact boot command, exiting nonzero on the first red gate. - Failure triage: Maps each stage label (preflight, import, optimize, verify join, verify smoke) to the owning skill so you know where the fix lives. - Controlled wiring: The optional --wire flag points viewer.cfg at the optimized scene while preserving a backup; without it, user config is never touched. - Use Case: After receiving a new IFC model of a plant, run tools/twin_build.sh model.ifc to get the GLB, sidecar, optimized scene, and join verification in one pass, then rerun with --map once a binding map exists to turn the data-binding smoke green. ## Quick Start Run tools/twin_build.sh with your IFC model path from the Godot project root to build and verify the twin end to end.

Frequently Asked Questions about twin-build

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a Godot digital twin from an IFC model in one command?

Run tools/twin_build.sh <model.ifc> from the Godot project root. It chains import, optimize, verify, and summary stages, exiting nonzero at the first failing gate and printing the exact boot command for the optimized scene.

How do I wire the built twin scene into the Godot viewer config?

Pass the --wire flag to twin_build.sh so it points viewer.cfg [viewer] model= at the optimized scene. The previous file is kept as viewer.cfg.bak and only the model= line is rewritten; without --wire the config is never touched.

Why does the twin build fail at preflight with a venv error?

Preflight fails because ifcopenshell has no wheel for Python 3.14, the macOS system Python. Create a pinned environment with uv venv --python 3.12 .venv-ifc, then uv pip install ifcopenshell==0.8.5, and rerun the build.

Why is the binding smoke test skipped during the build?

The smoke SKIPs when no binding map is discoverable via --map, viewer.cfg [twin] binding_map=, or binding_map.json. A SKIP is not a pass; author a map with the twin-bind-data skill and rerun with --map to turn the smoke green.

When should I run individual pipeline tools instead of the full build?

Run a single stage's tool directly, such as tools/verify_twin.sh or tools/optimize_scene.gd, when one stage is failing and you already have artifacts, since twin_build re-runs the whole chain. Also use twin-bind-data directly to author or fix the binding map.