solidcraft README

The project's README from github.com/tangency-labs/solidcraft. As one markdown file: README.md.

SolidCraft

An open-source parametric 3D CAD application built in pure Rust.

Sketch, constrain, and build solids with a parametric feature timeline. Change a dimension and watch your model rebuild. Run it on your desktop, in your browser, or let AI agents model through the built-in MCP server.

SolidCraft 0.8: model a Raspberry Pi 4 case from an empty design: a sketch dimensioned with parameters, extrude, fillets and shell, a rim rounded in one pick, standoffs patterned on the board's mounting holes, port cut-outs, vent slots,

A Raspberry Pi 4 case from an empty design: a sketch dimensioned with the board's parameters, extrude, fillet, shell, the rim rounded in one pick, an M2.5 standoff patterned on the 58 × 49 mm hole rectangle, port cut-outs, vent slots, "Pi 4" engraved in DejaVu Sans Bold and a PETG material defined in the design, with its mass in Properties, then height 24 → 32 mm in Parameters and it all rebuilds. 9× playback. Full video, recorded with the demo script.

Download

Download for Windows Download for macOS Download for Linux Get it from the Snap Store Try it in your browser

The downloads aren't signed yet. On Windows, if SmartScreen warns you, choose More info, then Run anyway. On macOS, the first time, right-click SolidCraft in Applications and choose Open.

Older versions, checksums and other formats are on the releases page. Install details, upgrading from earlier builds and building from source are in Getting started.

Documentation: the SolidCraft book (user guide, developer guide and command reference; sources in docs/book).

Status: early but usable for simple parts. 75 of 76 public reference parts match their analytic or FreeCAD-computed volume, area, centre of mass and bounding box (docs/oracle.md); the other is a tracked bug. These checks do not establish complete geometric or workflow equivalence. The commands SolidCraft has are listed by area in docs/features.md; status and plans are in ROADMAP.md. Open work and known bugs are in GitHub issues, and help is welcome: see CONTRIBUTING.md.

Built with SolidCraft

SELENE, a scientific rover by 0xlillith, assembling itself as the timeline plays through its 3,323 steps in SolidCraft: tub, wheels, electronics, suspension, sampling arm, solar wings, dish and camera turret

SELENE, a scientific rover built entirely through SolidCraft's MCP server by @0xlillith: 3,323 editable timeline steps that rebuild with no errors, replayed here at 2× speed. Full video · download the editable model.

What works

Build and run

cargo run --release -p solidcraft -- --sample          # desktop app with a sample part
cargo run --release -p solidcraft-cli -- commands      # the command registry
cargo run --release -p solidcraft-cli -- run examples/bracket.json --out bracket.step
cargo run --release -p solidcraft-cli -- snapshot examples/bracket.json --out bracket.png
cargo run --release -p solidcraft -- part.step          # open a STEP file as a new design
cargo run --release -p solidcraft-cli -- eval part.step # measure an imported STEP file
cargo xtask ci                                          # fmt, clippy, tests, assets, layers, wasm

Windows builds: cargo xwin build --release --target x86_64-pc-windows-msvc -p solidcraft.

On Windows and Linux, SolidCraft detects a connected 3Dconnexion SpaceNavigator or SpaceMouse through its multi-axis HID interface. Move the cap to pan and zoom, and tilt or twist it to rotate the 3D view. While editing a sketch, the cap pans and zooms without changing the sketch view. The Navigation page in Preferences has an on/off switch and a speed control for the 3D mouse.

On Linux SolidCraft reads /dev/hidrawN directly, so the logged-in user needs access to the device. A udev rule that adds the uaccess tag does that, for example /etc/udev/rules.d/70-3d-mouse.rules for devices with 3Dconnexion's vendor id:

SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256f", TAG+="uaccess"

Older SpaceNavigators use Logitech's vendor id 046d; add a rule with their product id (see lsusb) instead of matching every Logitech device. Reload with sudo udevadm control --reload && sudo udevadm trigger, then replug the device. The Flatpak sandbox does not expose hidraw devices, so the 3D mouse only works with native builds there for now. Devices that send all six axes in HID report 1 (some homemade ones do) are recognised from their report descriptor, so they work as well.

In the browser: cd apps/solidcraft-web && trunk build --release --public-url ./ (WebGPU, or WebGL2 with ?webgl; ?sample opens the sample part).

Scripts

A script is a JSON list of commands, the same ones the UI runs:

{"commands": [
  {"command": "sketch.create", "params": {"plane": "XY"}},
  {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 30]}},
  {"command": "solid.extrude", "params": {"distance": 20}},
  {"command": "solid.fillet", "params": {"edges": [[0, 0, 10]], "radius": 3}}
]}

AI agents (MCP)

solidcraft-cli mcp is a Model Context Protocol server on stdio. Headless it runs its own design session; with --connect 127.0.0.1:PORT it drives the app started with solidcraft --control PORT, so you can watch the agent model. Tools: list_commands, execute, batch, inspect_design, measure, body_topology, set_parameter, screenshot (returns the image), export, undo, redo, new_design, open, save. Tool calls reach files only in the open design's folder (when it lies inside your home folder, never home itself or a hidden folder), SolidCraft's recovery folder and folders given with --allow-path DIR. Claude Code: claude mcp add solidcraft -- solidcraft-cli mcp. Details, client configuration and an example session: docs/mcp.md.

Architecture

Layer Crates Role
L0 geom vectors, planes, profiles, meshes and their measures
L1 sketch, kernel, render constraint solver and profiles; the B-rep kernel boundary (truck); view math and CPU rasterizer
L2 doc parameters, expressions, the feature timeline and its incremental evaluation
L3 io design files, STL/OBJ/STEP/3MF export, STEP and 3MF/STL import features
L4 engine the session and the command registry (everything is a command)
L5 ui-egui, mcp the swappable desktop front end; the MCP server (headless or bridged to the app)
apps solidcraft, solidcraft-cli desktop app, headless CLI

Contributing

Coming from Autodesk Fusion? SolidCraft uses familiar parametric CAD workflows: constrained sketches, solid features, an editable timeline, parameters and assemblies. See the roadmap for supported operations and current limitations.

See CONTRIBUTING.md: how to build and test, the code map, the clean-room and licence rules, and where help is wanted most.

Licence

MIT OR Apache-2.0, at your option. Developed under the clean-room contribution rules; third-party code and assets retain their documented licences and attribution.

SolidCraft is independent. Behaviour is designed from public documentation, general CAD conventions and user feedback. Reference tests use analytic values and open-source tools. SolidCraft is not affiliated with, sponsored by or endorsed by Autodesk. Autodesk and Fusion are trademarks of Autodesk, Inc.

solidcraft (tangency-labs/solidcraft)

Searching Database…

Что это такое?SolidCraft — это open-source параметрическая 3D CAD-программа, написанная целиком на Rust: вы делаете эскизы, накладываете ограничения и строите тела по временной шкале операций, а работает она на компьютере, в браузере или без интерфейса — через встроенный MCP-сервер, откуда ею могут управлять ИИ-агенты.
Это полноценная CAD-программа или библиотека, которую я буду подключать в код?Это самостоятельное CAD-приложение: с графическим интерфейсом на компьютере (egui + wgpu), веб-версией, консольным режимом без интерфейса (solidcraft-cli) и MCP-сервером. Библиотекой оно не является.
Как установить и запустить?Скачайте готовый установщик для своей ОС - Windows MSI/портативный zip, macOS DMG, Linux AppImage/.deb/.rpm/Snap - или просто попробуйте в браузере, вообще без установки.
Она готова для настоящих рабочих деталей или пока сырая?Проект описывается как ранний, но пригодный для простых деталей: сейчас 75 из 76 открытых эталонных деталей совпадают с ожидаемой аналитической геометрией FreeCAD, известен один баг, и это не гарантирует полного совпадения рабочих процессов со зрелыми CAD-пакетами.
Будет ли привычно, если я перехожу с Autodesk Fusion?Да, рабочий процесс специально сделан похожим: эскизы с ограничениями, твердотельные операции, редактируемая параметрическая временная шкала, параметры и сборки.
ИИ-агенты правда могут проектировать целые модели, или MCP — просто демка?Это работает по-настоящему: один контрибьютор собрал целую научную ровер (SELENE) с 3 323 редактируемыми шагами на временной шкале, пользуясь исключительно MCP-сервером SolidCraft, — и модель собирается без ошибок.
Какие форматы CAD-файлов можно импортировать и экспортировать?Экспорт в STEP (AP242), IGES 5.3, 3MF, STL и OBJ; импорт тел и сборок STEP/IGES, а также 3MF/STL/OBJ как полигональных тел, плюс инструмент Convert Mesh, который умеет превращать подходящие полигональные формы обратно в параметрические тела.
Как подключить это к Claude Code или другому агенту для кодинга?Выполните 'claude mcp add solidcraft -- solidcraft-cli mcp', чтобы зарегистрировать сервер; среди его инструментов execute, measure, export, screenshot, undo/redo и другие, и он может либо запустить собственную сессию без интерфейса, либо управлять реально запущенным приложением, так что вы будете видеть, как агент строит модель.
Поддерживается ли 3D-мышь вроде SpaceMouse?Да, на Windows и Linux программа напрямую читает подключённые устройства 3Dconnexion SpaceNavigator/SpaceMouse через HID для панорамирования, зума и вращения, но пока это не работает внутри сборки в песочнице Flatpak.
Size
124 MB
Stars
5.7K
Age
11d
Commits · 90 Days