個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗ArchiCraft is a desktop application for drawing buildings as precise 3D models and saving them as IFCX (IFC5), the open buildingSMART format. It runs on Windows, macOS and Linux, works offline, and sends no data anywhere.
What it must do is specified in the SRS; what it is built with is in the technology choices.
This is the first version: increment 0 of the SRS, the "walking skeleton" (SRS Appendix F). It covers:
archicraft:: namespace, so a saved project opens fully editable.Doors, windows, roofs, layered walls, columns, beams, stairs and the other
SRS increments come next; the work is tracked with beads (bd ready).
You need the Rust toolchain; rust-toolchain.toml selects the right version.
cargo run --release -p archicraft-app # start ArchiCraft
cargo run --release -p archicraft-app -- my.ifcx # open a project
On Linux, the application needs a Vulkan or OpenGL driver and, for file dialogs, an XDG desktop portal; standard desktops have both.
On macOS, scripts/package-macos.sh builds a release and packs it into
target/dmg/ArchiCraft-<version>-macos-arm64.dmg, with ArchiCraft.app and a
link to Applications to drag it to. The app is signed ad hoc; set
CODESIGN_IDENTITY to sign it with a Developer ID instead. On another Mac, an
ad hoc signed app opens only after the user allows it under System Settings →
Privacy & Security.
scripts/package-linux.sh (a tarball with the executable, icon and desktop entry) and
scripts/package-windows.sh (a zip with the executable, icon embedded; Git Bash, Windows SDK
and Python with Pillow) do the same on Linux and Windows. All three take the app icon from
ArchiCraft_Logo.png, rendered at 1024 px from the vector source ArchiCraft_Logo.svg
(rsvg-convert -w 1024 -h 1024 ArchiCraft_Logo.svg -o ArchiCraft_Logo.png, then copy it to
crates/archicraft-app/assets/). An in-between release for testers, with all three packages
of a pushed commit as a GitHub pre-release, comes from the workflow
Preview release: /preview-release in Claude Code, or
gh workflow run preview-release.yml --ref main -f notes="What to try".
ArchiCraft runs on Windows, macOS and Linux and draws with the GPU: Metal on macOS, DirectX 12 or Vulkan on Windows, Vulkan on Linux. The performance targets refer to two hardware classes (SRS NFR-PERF-001; the classes in detail):
| Class | macOS | Windows | Linux |
|---|---|---|---|
| Minimum | MacBook Air M1, 8 GB RAM | Intel Core i5-1135G7 (Iris Xe graphics), 8 GB RAM, 1920 × 1080 display | Ubuntu 26.04 LTS on the minimum Windows laptop |
| Reference | MacBook Air M2, 16 GB RAM | Intel Core Ultra 7 155H (Arc graphics), 16 GB RAM | Ubuntu 26.04 LTS on the reference Windows laptop |
ArchiCraft works on the minimum class; the performance targets are met on the reference class unless a target names the minimum class. Measurements are in docs/performance. Every release publishes this section (SRS NFR-PORT-006, release checklist item 4).
cargo test --workspace # unit, integration, golden-file and UI tests
cargo clippy --workspace --all-targets # lints
conformance/run.sh crates/archicraft-ifcx/tests/golden/*.ifcx
The conformance check loads IFCX files with buildingSMART's reference
implementation and viewer composition (SRS IFX-006); it needs Node.js and
network access to fetch the pinned reference code. CI runs all of this on
Linux, plus cargo-deny (licences, advisories, sources and bans); the tests run
on Windows for every change to main and nightly.
The tests run on macOS (Apple silicon) when a version tag v* is pushed, or
by hand with gh workflow run macos.yml. The conformance check runs on Linux,
Windows and macOS every night and by hand, and on Linux for pull requests that
change the model, geometry, IFCX or conformance code
(.github/workflows/conformance-matrix.yml). The IFCX reader and the
typed-input parser are fuzzed every night, and for an hour per target before a
release (gh workflow run fuzz.yml -f minutes=60; docs/testing.md, Fuzzing).
Each release also goes through the manual checks of docs/test-plan/release-checklist.md, among them the hosted IFC5 viewer check of IFX-006.
Repository guards keep done requirements done: scripts/check-layering.sh
keeps UI crates out of the headless crates, scripts/check-legal.sh refuses
trademarks and unlisted images, library parts and templates, and deny.toml
refuses HTTP client crates, which is why adding such a dependency fails CI
(see docs/testing.md).
Implementation runs through the bead loop: one task (bead) per Claude Code session, tests first, an automatic gate, an independent review, and a pull request that merges on green CI. Start with the tutorial in docs/loop-tutorial.md; the design and its rules are in docs/loop.md.
| Path | Content |
|---|---|
crates/archicraft-model | Domain model, command/undo core, units, default template |
crates/archicraft-geometry | Meshes, wall junctions, plan cuts |
crates/archicraft-ifcx | IFCX reader and writer (ifcx_alpha adapter), bundled schemas |
crates/archicraft-app | The desktop application (eframe, egui, wgpu) |
conformance/ | IFX-006 check with buildingSMART's reference code (test-only) |
scripts/ | Packaging (macOS DMG), repository guards, the bead loop (scripts/loop/) |
docs/ | SRS, technology choices, roadmap, implementation status, testing, the bead loop |
This work is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). See LICENSE. The components the program contains keep their own licences; THIRD-PARTY.md lists them with their licence texts and ships with every package.