Getting started
SolidCraft keeps its compatibility names: the desktop executable is solvecraft, the CLI
is solvecraft-cli, and saved designs remain .solvecraft. Published 0.2.0 and 0.2.1 packages
were released under the SolveCraft name.
Desktop
Download the latest build from the releases page, or build it yourself with stable Rust (1.95 or newer):
git clone https://github.com/bherbruck/solidcraft && cd solidcraft
cargo run --release -p solvecraft -- --sample # opens with a sample part
solvecraft part.step opens a STEP, IGES, 3MF, STL or OBJ file as a new design, and
solvecraft design.solvecraft opens a saved design. Windows builds cross-compile from Linux with
cargo xwin build --release --target x86_64-pc-windows-msvc -p solvecraft.
Linux Flatpak
Install Flatpak using your distribution’s package manager. For an installation that receives updates, add Flathub for the required Freedesktop runtime and the SolidCraft application feed to the same user installation:
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --user --if-not-exists solvecraft https://bherbruck.github.io/solidcraft/flatpak/solvecraft.flatpakrepo
flatpak install --user solvecraft ai.storyteller.solvecraft
flatpak run ai.storyteller.solvecraft
The application ID and remote name retain their compatibility names. To update an existing
remote that still uses the former website address, run
flatpak remote-modify --user --url=https://bherbruck.github.io/solidcraft/flatpak/repo/ solvecraft
and then flatpak update --user.
Alternatively, download the release’s .flatpak file for your architecture and run
flatpak install --user ./solvecraft-VERSION-linux-ARCH.flatpak. The bundle supplies the
Flathub runtime repository address; installation still needs internet access to fetch any
missing runtime. Launch with flatpak run ai.storyteller.solvecraft, rather than looking for
a host solvecraft binary. Files chosen through Open/Save use the desktop file-chooser portal;
command-line paths outside Documents may need a specific additional filesystem permission.
Web
The same app runs in the browser: open SolidCraft on the web (?sample opens the sample
part, ?webgl forces WebGL2 where WebGPU is missing). Designs are saved in the browser’s private
file storage, which needs HTTPS or localhost. To build it yourself:
rustup target add wasm32-unknown-unknown
cd apps/solvecraft-web && trunk serve --release
CLI
solvecraft-cli runs the same commands without a window:
cargo run --release -p solvecraft-cli -- commands # every command, as JSON
cargo run --release -p solvecraft-cli -- run examples/bracket.json --out bracket.step
cargo run --release -p solvecraft-cli -- eval examples/bracket.json # volume, area, faces…
cargo run --release -p solvecraft-cli -- snapshot examples/bracket.json --out bracket.png
cargo run --release -p solvecraft-cli -- exec solid.box '{"length": 20, "width": 10, "height": 5}'
A script is a list of commands:
{"commands": [
{"command": "sketch.create", "params": {"plane": "XY"}},
{"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 30]}},
{"command": "sketch.finish", "params": {}},
{"command": "solid.extrude", "params": {"distance": 20}},
{"command": "solid.fillet", "params": {"edges": [[0, 0, 10]], "radius": 3}}
]}
Units are millimetres and degrees unless an expression says otherwise ("1 in", "30 deg"),
and Z is up.