diff --git a/.github/release-notes.md b/.github/release-notes.md index 57cb892f..94f7479e 100644 --- a/.github/release-notes.md +++ b/.github/release-notes.md @@ -1,14 +1,19 @@ -SolveCraft is open-source parametric 3D CAD in Rust: sketch, constrain, extrude, and change a -parameter to watch the timeline rebuild. [Documentation](https://bherbruck.github.io/solvecraft/) -· [try it in the browser](https://bherbruck.github.io/solvecraft/app/) · -[contributing](https://github.com/bherbruck/solvecraft/blob/main/CONTRIBUTING.md) · -[issues](https://github.com/bherbruck/solvecraft/issues). AI agents can model with it over MCP: -`solvecraft-cli mcp` ([how](https://bherbruck.github.io/solvecraft/guide/mcp.html)). +SolidCraft is open-source parametric 3D CAD in Rust: sketch, constrain, extrude, and change a +parameter to watch the timeline rebuild. [Documentation](https://bherbruck.github.io/solidcraft/) +· [try it in the browser](https://bherbruck.github.io/solidcraft/app/) · +[contributing](https://github.com/bherbruck/solidcraft/blob/main/CONTRIBUTING.md) · +[issues](https://github.com/bherbruck/solidcraft/issues). AI agents can model with it over MCP: +`solvecraft-cli mcp` ([how](https://bherbruck.github.io/solidcraft/guide/mcp.html)). + +Compatibility names are unchanged: existing `.solvecraft` designs, `solvecraft-cli`, package +IDs and archive filenames still work. Published 0.2.0 and 0.2.1 releases keep their original +SolveCraft branding. Documentation, the browser app and the Flatpak feed use the new +SolidCraft project Pages URLs; old-name Pages addresses are not permanent aliases. **Which file?** - **Windows:** `SolveCraft-{version}-windows-x64.exe` runs as is. Or install the `.msi`, or unzip the `-portable.zip` (x64, x86 and arm64). -- **macOS 11+** (Apple silicon and Intel): open the `.dmg` and drag SolveCraft onto Applications. +- **macOS 11+** (Apple silicon and Intel): open the `.dmg` and drag `SolveCraft.app` onto Applications. The CLI is in `solvecraft-cli-{version}-macos-universal.zip`. - **Linux** (x86_64 and aarch64, glibc 2.35+): the `.AppImage` (`chmod +x`, then run it), the `.deb` or `.rpm`, the `.flatpak` (`flatpak install --user `), or the `.tar.gz`. @@ -16,10 +21,10 @@ parameter to watch the timeline rebuild. [Documentation](https://bherbruck.githu - **Web:** `solvecraft-web-{version}.zip` is a static site to host yourself. - `SHA256SUMS.txt`: `sha256sum -c SHA256SUMS.txt --ignore-missing`. -The builds aren't signed yet. On macOS, right-click SolveCraft in Applications and choose +The builds aren't signed yet. On macOS, right-click `SolveCraft.app` in Applications and choose **Open** the first time (or run `xattr -dr com.apple.quarantine /Applications/SolveCraft.app`). On Windows, SmartScreen may say "Windows protected your PC": **More info**, then **Run anyway**. Licences are built in (Help ▸ About ▸ Licences, `solvecraft-cli licences`); the packages also install `THIRD-PARTY-LICENSES.txt`. Known limitations: -[ROADMAP.md](https://github.com/bherbruck/solvecraft/blob/main/ROADMAP.md#known-limitations). +[ROADMAP.md](https://github.com/bherbruck/solidcraft/blob/main/ROADMAP.md#known-limitations). diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index d36accb6..74dae6b5 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -1,5 +1,5 @@ -# The documentation site on GitHub Pages: the book (docs/book) at /solvecraft/ and the web app -# at /solvecraft/app/. Needs Settings → Pages → Source = GitHub Actions; skipped while the +# The documentation site on GitHub Pages: the book (docs/book) at /solidcraft/ and the web app +# at /solidcraft/app/. Needs Settings → Pages → Source = GitHub Actions; skipped while the # repository is private. name: Pages @@ -49,7 +49,7 @@ jobs: run: cargo xtask book - name: Build the web app working-directory: apps/solvecraft-web - run: trunk build --release --public-url /solvecraft/app/ + run: trunk build --release --public-url /solidcraft/app/ - name: Assemble the site run: | mkdir -p site diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4d2cf730..9040adec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -77,7 +77,7 @@ jobs: fi case "$VERSION" in *-*) pre=true ;; *) pre=false ;; esac { echo "version=$VERSION"; echo "date=$(date -u +%Y-%m-%d)"; echo "prerelease=$pre"; } >>"$GITHUB_OUTPUT" - echo "### SolveCraft v$VERSION (\`${GITHUB_SHA::9}\`)" >>"$GITHUB_STEP_SUMMARY" + echo "### SolidCraft v$VERSION (\`${GITHUB_SHA::9}\`)" >>"$GITHUB_STEP_SUMMARY" # The app icon in every size, drawn by solvecraft-cli (no image files are committed), for the # Windows jobs: the ARM64 build is cross-compiled and can't run there to draw its own. @@ -357,7 +357,7 @@ jobs: sha256sum --check SHA256SUMS.txt # Stage all packages before publishing. Published tags are never replaced. gh release create "$tag" --draft --prerelease --latest=false \ - --title "SolveCraft v$VERSION (nightly)" --target "$GITHUB_SHA" \ + --title "SolidCraft v$VERSION (nightly)" --target "$GITHUB_SHA" \ --notes-file ../notes.md --generate-notes -- * gh release edit "$tag" --draft=false --prerelease --latest=false echo "### Published nightly: $tag (\`${GITHUB_SHA::9}\`)" >>"$GITHUB_STEP_SUMMARY" @@ -386,15 +386,15 @@ jobs: while IFS= read -r asset; do if [ -n "$asset" ]; then gh release delete-asset "$tag" "$asset" --yes; fi done <<<"$assets" - gh release edit "$tag" --draft --title "SolveCraft v$VERSION" \ + gh release edit "$tag" --draft --title "SolidCraft v$VERSION" \ --target "$GITHUB_SHA" --prerelease="$PRERELEASE" gh release upload "$tag" --clobber -- * else - gh release create "$tag" --draft --title "SolveCraft v$VERSION" \ + gh release create "$tag" --draft --title "SolidCraft v$VERSION" \ --target "$GITHUB_SHA" --notes-file ../notes.md --generate-notes "${pre[@]}" -- * fi { - echo "Draft **SolveCraft v$VERSION** at \`${GITHUB_SHA::9}\`:" + echo "Draft **SolidCraft v$VERSION** at \`${GITHUB_SHA::9}\`:" echo sed 's/^/ /' SHA256SUMS.txt } >>"$GITHUB_STEP_SUMMARY" diff --git a/AGENTS.md b/AGENTS.md index bd693d2c..56983b96 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,12 +1,20 @@ -# SolveCraft — instructions for agents +# SolidCraft — instructions for agents -SolveCraft is a clean-room, open-source, pure-Rust parametric 3D CAD application in the style of +SolidCraft is a clean-room, open-source, pure-Rust parametric 3D CAD application in the style of Autodesk Fusion: sketches with a constraint solver, a parametric timeline of features, a B-rep kernel, and a desktop UI that agents can drive. Siblings with the same conventions live next to it in `storytold/`: `cadcraft` (AutoCAD-style, the closest relative), `photocraft`, `vectorcraft`, `gridcraft`, `designcraft`, `wordcraft`, `deckcraft`, `soundcraft`. Repos don't share code; when code is adapted from a sibling (MIT OR Apache-2.0) it is noted in ATTRIBUTION.md. +## Product name and compatibility +SolidCraft is the displayed product name; `solidcraft` is the repository name. Keep existing +`solvecraft` crate/binary names, `.solvecraft` files, format markers, environment variables, +settings/recovery paths and package IDs compatible. Published SolveCraft release artifacts +and attribution records keep their historical names. Public docs/web/Flatpak deployments +use project Pages `/solidcraft/`; do not add permanent old-name Pages aliases. See README's +compatibility notes. + ## Start every session here 1. Read `plan/STATUS.md` (current milestone, next task), then the task in `plan/execution-plan.md` and the relevant `plan/architecture.md` section. Behaviour reference: `plan/fusion/` @@ -20,7 +28,7 @@ code is adapted from a sibling (MIT OR Apache-2.0) it is noted in ATTRIBUTION.md `plan/` is gitignored (local only). ## Never crash -People trust SolveCraft with their designs; a crash loses their work. **This outranks feature work.** +People trust SolidCraft with their designs; a crash loses their work. **This outranks feature work.** - **No panics in non-test code:** no `unwrap()`, `expect()`, `panic!`, `unreachable!`, `todo!`, `unimplemented!`; no `unsafe` (`unsafe_code = "forbid"`). - **Errors are `Result`** through the crate's error type and `?`. An unfinished feature @@ -44,7 +52,7 @@ People trust SolveCraft with their designs; a crash loses their work. **This out copy or link GPL/LGPL/AGPL code**: OpenCASCADE, FreeCAD (incl. planegcs), SolveSpace, CadQuery/OCP, LibreCAD, QCAD — don't even read their sources. The sketch solver and the blend operations are our own. -- **Assets — absolutely essential.** SolveCraft contains **no Autodesk iconography, images, +- **Assets — absolutely essential.** SolidCraft contains **no Autodesk iconography, images, fonts or artwork — ever.** Every icon is drawn in code (`crates/ui-egui/src/icons.rs`). Any file asset must be original or openly licensed and **must have a row in ATTRIBUTION.md** (`cargo xtask assets` enforces it). Screenshots of Autodesk software are never committed. @@ -64,7 +72,7 @@ People trust SolveCraft with their designs; a crash loses their work. **This out - **Rust only.** Units are millimetres and radians internally; Z is up. - **Quality gates** before every commit: `cargo xtask ci` (fmt, clippy -D warnings, tests, assets, layers). Commit after every feature arc that builds. -- **Publishing**: `origin` is github.com/bherbruck/solvecraft (private). After each commit that +- **Publishing**: `origin` is github.com/bherbruck/solidcraft. After each commit that passes `cargo xtask ci`: `git pull --rebase origin main` (re-run ci if it brought changes), then `git push`. Never force-push. Never commit `plan/`, build dirs (`target*/`) or anything produced by Fusion (oracle STEP/STL/PNG); check `git ls-files` before pushing. diff --git a/CLAUDE.md b/CLAUDE.md index dd86ed23..244ec69a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,12 +1,20 @@ -# SolveCraft — instructions for agents +# SolidCraft — instructions for agents -SolveCraft is a clean-room, open-source, pure-Rust parametric 3D CAD application in the style of +SolidCraft is a clean-room, open-source, pure-Rust parametric 3D CAD application in the style of Autodesk Fusion: sketches with a constraint solver, a parametric timeline of features, a B-rep kernel, and a desktop UI that agents can drive. Siblings with the same conventions live next to it in `storytold/`: `cadcraft` (AutoCAD-style, the closest relative), `photocraft`, `vectorcraft`, `gridcraft`, `designcraft`, `wordcraft`, `deckcraft`, `soundcraft`. Repos don't share code; when code is adapted from a sibling (MIT OR Apache-2.0) it is noted in ATTRIBUTION.md. +## Product name and compatibility +SolidCraft is the displayed product name; `solidcraft` is the repository name. Keep existing +`solvecraft` crate/binary names, `.solvecraft` files, format markers, environment variables, +settings/recovery paths and package IDs compatible. Published SolveCraft release artifacts +and attribution records keep their historical names. Public docs/web/Flatpak deployments +use project Pages `/solidcraft/`; do not add permanent old-name Pages aliases. See README's +compatibility notes. + ## Start every session here 1. Read `plan/STATUS.md` (current milestone, next task), then the task in `plan/execution-plan.md` and the relevant `plan/architecture.md` section. Behaviour reference: `plan/fusion/` @@ -20,7 +28,7 @@ code is adapted from a sibling (MIT OR Apache-2.0) it is noted in ATTRIBUTION.md `plan/` is gitignored (local only). ## Never crash -People trust SolveCraft with their designs; a crash loses their work. **This outranks feature work.** +People trust SolidCraft with their designs; a crash loses their work. **This outranks feature work.** - **No panics in non-test code:** no `unwrap()`, `expect()`, `panic!`, `unreachable!`, `todo!`, `unimplemented!`; no `unsafe` (`unsafe_code = "forbid"`). - **Errors are `Result`** through the crate's error type and `?`. An unfinished feature @@ -44,7 +52,7 @@ People trust SolveCraft with their designs; a crash loses their work. **This out copy or link GPL/LGPL/AGPL code**: OpenCASCADE, FreeCAD (incl. planegcs), SolveSpace, CadQuery/OCP, LibreCAD, QCAD — don't even read their sources. The sketch solver and the blend operations are our own. -- **Assets — absolutely essential.** SolveCraft contains **no Autodesk iconography, images, +- **Assets — absolutely essential.** SolidCraft contains **no Autodesk iconography, images, fonts or artwork — ever.** Every icon is drawn in code (`crates/ui-egui/src/icons.rs`). Any file asset must be original or openly licensed and **must have a row in ATTRIBUTION.md** (`cargo xtask assets` enforces it). Screenshots of Autodesk software are never committed. @@ -64,7 +72,7 @@ People trust SolveCraft with their designs; a crash loses their work. **This out - **Rust only.** Units are millimetres and radians internally; Z is up. - **Quality gates** before every commit: `cargo xtask ci` (fmt, clippy -D warnings, tests, assets, layers). Commit after every feature arc that builds. -- **Publishing**: `origin` is github.com/bherbruck/solvecraft (private). After each commit that +- **Publishing**: `origin` is github.com/bherbruck/solidcraft. After each commit that passes `cargo xtask ci`: `git pull --rebase origin main` (re-run ci if it brought changes), then `git push`. Never force-push. Never commit `plan/`, build dirs (`target*/`) or anything produced by Fusion (oracle STEP/STL/PNG); check `git ls-files` before pushing. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7fc67cff..d77e75d6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ -# Contributing to SolveCraft +# Contributing to SolidCraft -SolveCraft is an open-source parametric 3D CAD app written in pure Rust, in the style of +SolidCraft is an open-source parametric 3D CAD app written in pure Rust, in the style of Autodesk Fusion. You sketch on a plane, constrain the sketch, turn profiles into solids, and change a parameter to watch the timeline rebuild. It runs as a desktop app (Windows, Linux), in the browser (wasm + WebGPU/WebGL2), headless from a CLI, and as an MCP server that AI agents can @@ -16,7 +16,7 @@ You need stable Rust 1.90 or newer. For the web build you also need `rustup target add wasm32-unknown-unknown` and [`trunk`](https://trunkrs.dev). ```sh -git clone https://github.com/bherbruck/solvecraft && cd solvecraft +git clone https://github.com/bherbruck/solidcraft && cd solvecraft cargo run --release -p solvecraft -- --sample # desktop app with a sample part cargo xtask test # unit, engine and UI-scenario tests cargo xtask ci # everything a PR must pass (see below) @@ -97,7 +97,7 @@ The [README](README.md#architecture) has the layer table. The short version: tooltips, templates or materials, and we never commit files Fusion produced. Command ids are our own (`solid.fillet`, not Fusion's internal names). 2. **No GPL/LGPL/AGPL code, not even reading it.** That rules out OpenCASCADE, FreeCAD - (including planegcs), SolveSpace, CadQuery/OCP, LibreCAD and QCAD. SolveCraft is + (including planegcs), SolveSpace, CadQuery/OCP, LibreCAD and QCAD. SolidCraft is MIT OR Apache-2.0, and its solver and blends are written from the maths. Permissive dependencies are fine. Note which one you're adding and why in the PR, and run `cargo xtask licences` so THIRD-PARTY-LICENSES.txt lists it (CI checks that it is current). @@ -151,14 +151,14 @@ in the PR. `cargo xtask test` builds the tests with it and then runs every test depend on wall-clock timing. **The Fusion oracle** is a set of 76 reference parts, each built in Fusion from a recipe. -SolveCraft rebuilds the same recipe and compares volume, area and topology counts with Fusion's +SolidCraft rebuilds the same recipe and compares volume, area and topology counts with Fusion's measurements; [docs/oracle.md](docs/oracle.md) has the current results. The recipes and measurements live outside the repo (`plan/`, gitignored), because they come from a Fusion install. If you work on geometry and want to check against it, ask in an issue. ## Sending a change -1. Work is tracked in [GitHub issues](https://github.com/bherbruck/solvecraft/issues), labelled +1. Work is tracked in [GitHub issues](https://github.com/bherbruck/solidcraft/issues), labelled by area (`area:kernel`, `area:sketch`, `area:doc`, `area:ui`, `area:infra`). Before starting, comment on the issue so it gets the `in progress` label and two people don't build the same thing. For anything bigger than a bug fix that has no issue yet, open one first. @@ -189,15 +189,15 @@ CI if it brought changes, and push without force. Report the upstream/PR state y any conflicts resolved and validation results. While a task remains active, follow an open PR through its status changes; at handoff, clearly identify anything still awaiting merge. -Much of SolveCraft so far was written by AI coding agents (Claude) working in parallel, each +Much of SolidCraft so far was written by AI coding agents (Claude) working in parallel, each owning one area, with a human setting direction and reporting bugs. Their working notes are in [AGENTS.md](AGENTS.md). Human contributors are just as welcome. Use whatever tools you like, as long as the change meets the rules above. ## Where help is wanted most -See the [`help wanted`](https://github.com/bherbruck/solvecraft/labels/help%20wanted) and -[`good first issue`](https://github.com/bherbruck/solvecraft/labels/good%20first%20issue) labels. +See the [`help wanted`](https://github.com/bherbruck/solidcraft/labels/help%20wanted) and +[`good first issue`](https://github.com/bherbruck/solidcraft/labels/good%20first%20issue) labels. In order of how much they'd help users: 1. **Fillet and blend robustness.** Fillets are our own code (truck has no fillet operation). @@ -206,7 +206,7 @@ In order of how much they'd help users: faces, and fillets that consume neighbouring faces. 2. **Boolean robustness.** A random-design fuzzer currently gets about half of its designs through without a kernel error. Each failing seed is a reproducible bug. -3. **Y-up / Z-up.** SolveCraft is Z-up only, so most STEP files (from SolidWorks, Onshape, or +3. **Y-up / Z-up.** SolidCraft is Z-up only, so most STEP files (from SolidWorks, Onshape, or Fusion's default) open lying on their backs. Fusion solves this with a "default modeling orientation" preference. 4. **Imported appearances.** Colours from STEP files are lost when a feature changes the @@ -217,4 +217,4 @@ In order of how much they'd help users: ## Licence By contributing you agree that your contribution is licensed as MIT OR Apache-2.0, like the rest -of SolveCraft. SolveCraft isn't affiliated with Autodesk. Fusion is a trademark of Autodesk, Inc. +of SolidCraft. SolidCraft isn't affiliated with Autodesk. Fusion is a trademark of Autodesk, Inc. diff --git a/Cargo.toml b/Cargo.toml index 2729950f..fb1b236a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,8 +9,8 @@ version = "0.2.1" edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.90" -authors = ["SolveCraft contributors"] -repository = "https://github.com/bherbruck/solvecraft" +authors = ["SolidCraft contributors"] +repository = "https://github.com/bherbruck/solidcraft" [workspace.dependencies] # internal diff --git a/README.md b/README.md index f0f51fa5..ca10f1b7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# SolveCraft +# SolidCraft **Parametric 3D CAD; an open-source, [clean-room](CLAUDE.md) reimplementation of Autodesk Fusion 360, built in pure Rust.** @@ -7,20 +7,31 @@ Sketch, constrain, and build solids with a parametric feature timeline. Change a and watch your model rebuild. Run it on your desktop, in your browser, or let AI agents model through the built-in MCP server. Part of the storytold "craft" family. -![SolveCraft: draw a rounded electronics enclosure, sketch its USB port directly on a face, add four mounting bosses and resize it through Parameters](docs/screenshots/enclosure-demo-0.2.1.gif) +![SolidCraft: draw a rounded electronics enclosure, sketch its USB port directly on a face, add four mounting bosses and resize it through Parameters](docs/screenshots/enclosure-demo-0.2.1.gif) -*Start with an empty design and draw the original parametric electronics enclosure in the English desktop UI: rounded corners, a shell, a USB port sketched directly on the wall and a four-boss pattern. Change width from 80 → 100 mm and wall thickness from 2 → 3 mm in Parameters and watch it rebuild. Original animated pointer and click cues; 4× playback. [Full video](https://github.com/bherbruck/solvecraft/raw/refs/heads/main/docs/screenshots/enclosure-demo-0.2.1.mp4), generated with the [demo script](examples/demo/record_ui.sh).* +*Start with an empty design and draw the original parametric electronics enclosure in the English desktop UI: rounded corners, a shell, a USB port sketched directly on the wall and a four-boss pattern. Change width from 80 → 100 mm and wall thickness from 2 → 3 mm in Parameters and watch it rebuild. Original animated pointer and click cues; 4× playback. [Full video](https://github.com/bherbruck/solidcraft/raw/refs/heads/main/docs/screenshots/enclosure-demo-0.2.1.mp4), generated with the [demo script](examples/demo/record_ui.sh).* -**Documentation:** the [SolveCraft book](https://bherbruck.github.io/solvecraft/) (user guide, +**Documentation:** the [SolidCraft book](https://bherbruck.github.io/solidcraft/) (user guide, developer guide and command reference; sources in [docs/book](docs/book)), and the -[web app](https://bherbruck.github.io/solvecraft/app/) to try it in the browser. +[web app](https://bherbruck.github.io/solidcraft/app/) to try it in the browser. **Status: early but usable for simple parts.** 76 of 76 reference parts built in Fusion -rebuild in SolveCraft with the same volume, area and topology ([docs/oracle.md](docs/oracle.md)); +rebuild in SolidCraft with the same volume, area and topology ([docs/oracle.md](docs/oracle.md)); command parity with Fusion's Design workspace is tracked in [docs/parity.md](docs/parity.md). -Open work and known bugs are in [GitHub issues](https://github.com/bherbruck/solvecraft/issues), +Open work and known bugs are in [GitHub issues](https://github.com/bherbruck/solidcraft/issues), and help is welcome: see [CONTRIBUTING.md](CONTRIBUTING.md). +## Name and compatibility + +SolidCraft was previously called SolveCraft. The product display name and repository are +changing; existing identifiers remain compatible: `.solvecraft` designs, `solvecraft-cli`, +Cargo package names, settings/recovery locations and package IDs keep their existing names. +Published 0.2.0 and 0.2.1 packages and demo recordings retain their original SolveCraft branding +and filenames. + +Use the SolidCraft documentation and web-app URLs above. GitHub redirects links to the +renamed repository; old-name Pages and Flatpak URLs are not maintained as permanent aliases. + ## What works - **Sketches** on origin planes, offset planes or planar faces: lines, rectangles, circles, @@ -139,5 +150,5 @@ and licence rules, and where help is wanted most. ## Licence -MIT OR Apache-2.0, at your option. SolveCraft is not affiliated with Autodesk; Fusion is a +MIT OR Apache-2.0, at your option. SolidCraft is not affiliated with Autodesk; Fusion is a trademark of Autodesk, Inc. diff --git a/ROADMAP.md b/ROADMAP.md index e448813a..0941a6d8 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ -# SolveCraft roadmap +# SolidCraft roadmap -Status as of **2026-10-11**. SolveCraft targets Fusion-style parametric modelling (sketch → +Status as of **2026-10-11**. SolidCraft targets Fusion-style parametric modelling (sketch → features → parametric timeline) as an open, pure-Rust, agent-drivable application. ## At a glance @@ -72,6 +72,9 @@ headline counts in-scope tabs only and lists the deferred ones separately. useful reproduction context. The draft is editable, with optional capture of the actual viewport and copy/save controls. Opening GitHub does not submit the issue. Help also exposes reporting for unexpected results that did not produce an error. +- The header exposes **Report a bug**, including an accessible compact control on + narrow windows. It opens the same editable report and screenshot review without + changing the active model or a pending dimension. ## 0.2.0 release batch diff --git a/THIRD-PARTY-LICENSES.txt b/THIRD-PARTY-LICENSES.txt index 72a77357..cb0f2802 100644 --- a/THIRD-PARTY-LICENSES.txt +++ b/THIRD-PARTY-LICENSES.txt @@ -1,8 +1,8 @@ -Third-party software in SolveCraft +Third-party software in SolidCraft -SolveCraft (the desktop app, solvecraft-cli and the web app) is built from the 453 crates below. +SolidCraft (the desktop app, solvecraft-cli and the web app) is built from the 453 crates below. Generated by `cargo xtask licences` from Cargo.lock and the crates' own licence files. -SolveCraft's own licence is in LICENSE-MIT and LICENSE-APACHE, and NOTICE. +SolidCraft's own licence is in LICENSE-MIT and LICENSE-APACHE, and NOTICE. accesskit 0.24.1 (MIT OR Apache-2.0) accesskit_atspi_common 0.18.1 (MIT OR Apache-2.0) @@ -13017,7 +13017,7 @@ freely, subject to the following restrictions: ================================================================================ Crates whose package carries no licence file (their licence is named in Cargo.toml; the MIT and Apache-2.0 -texts are as in SolveCraft's own LICENSE-MIT and LICENSE-APACHE) +texts are as in SolidCraft's own LICENSE-MIT and LICENSE-APACHE) ================================================================================ accesskit 0.24.1: MIT OR Apache-2.0 (https://github.com/AccessKit/accesskit) diff --git a/apps/solvecraft-cli/Cargo.toml b/apps/solvecraft-cli/Cargo.toml index 0a219ba5..2a69012a 100644 --- a/apps/solvecraft-cli/Cargo.toml +++ b/apps/solvecraft-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solvecraft-cli" -description = "SolveCraft headless CLI: run command scripts, measure, export, render snapshots, replay oracle recipes" +description = "SolidCraft headless CLI: run command scripts, measure, export, render snapshots, replay oracle recipes" version.workspace = true edition.workspace = true license.workspace = true diff --git a/apps/solvecraft-cli/src/oracle.rs b/apps/solvecraft-cli/src/oracle.rs index 7d30bd87..063b0ac6 100644 --- a/apps/solvecraft-cli/src/oracle.rs +++ b/apps/solvecraft-cli/src/oracle.rs @@ -12,7 +12,7 @@ pub const REL_TOL: f64 = 1e-3; const APPROXIMATE: [(&str, f64, &str); 1] = [( "49-helical-sweep", 5e-3, - "Fusion sweeps along a spline fitted through helix points; SolveCraft builds the true helix (a coil), so the size is compared within 0.5% and the topology not at all", + "Fusion sweeps along a spline fitted through helix points; SolidCraft builds the true helix (a coil), so the size is compared within 0.5% and the topology not at all", )]; fn check_case(dir: &str) -> Value { @@ -77,7 +77,7 @@ fn check_case(dir: &str) -> Value { }) .collect(); seam_note = Some(format!( - "topology compared seam-normalised: Fusion's {}/{}/{} faces/edges/vertices become {f}/{e}/{v} with closed-surface patches counted once and seam edges and vertices dropped (raw SolveCraft/Fusion: {})", + "topology compared seam-normalised: Fusion's {}/{}/{} faces/edges/vertices become {f}/{e}/{v} with closed-surface patches counted once and seam edges and vertices dropped (raw SolidCraft/Fusion: {})", want["total"]["faces"], want["total"]["edges"], want["total"]["vertices"], @@ -120,7 +120,7 @@ fn check_case(dir: &str) -> Value { .collect(); if !effective.is_empty() { out["note"] = json!(format!( - "known Fusion difference: {} replayed with the extent Fusion actually used (its through-all is sized as 1.1 × the farthest vertex, so curved tops stop it short; SolveCraft's through-all goes truly through)", + "known Fusion difference: {} replayed with the extent Fusion actually used (its through-all is sized as 1.1 × the farthest vertex, so curved tops stop it short; SolidCraft's through-all goes truly through)", effective.join(", ") )); } diff --git a/apps/solvecraft-web/Cargo.toml b/apps/solvecraft-web/Cargo.toml index 3c02cb94..1d7fca0e 100644 --- a/apps/solvecraft-web/Cargo.toml +++ b/apps/solvecraft-web/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solvecraft-web" -description = "SolveCraft in the browser (eframe web runner, WebGPU with WebGL2 fallback)" +description = "SolidCraft in the browser (eframe web runner, WebGPU with WebGL2 fallback)" version.workspace = true edition.workspace = true license.workspace = true diff --git a/apps/solvecraft-web/index.html b/apps/solvecraft-web/index.html index 0145f952..ac4120dc 100644 --- a/apps/solvecraft-web/index.html +++ b/apps/solvecraft-web/index.html @@ -3,7 +3,7 @@ - SolveCraft + SolidCraft