个人 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.