Files
OneCAD/ATTRIBUTION.md
T
CypherNaugh_0xandClaude Opus 5.5 5249ae84ef Moving a body that a boolean made no longer hangs: a boolean between a cylinder and a tilted plane (an elliptical edge) froze the app at 100 % CPU, because its retries move both bodies and the result back
Moving a body transforms its intersection-curve edges, and truck-geometry 0.5.0 scales each curve's tolerance by the operator norm of the matrix. matext4cgmath 0.1.0 computes it from eigenvalues through a quartic whose Newton refinement loops while the residual is above a tolerance and never gives up. For a translation matrix all four eigenvalues are 1, and near that quadruple root the iteration can cycle forever (about one translation in eight of the boolean retries' shifts, by a scan of sizes 0.1-2000 mm). matext4cgmath is vendored with both Newton loops stopped after 100 steps (vendor/README.md, ATTRIBUTION.md).

truck master no longer computes the norm in transform_by, so the vendored copy can go once a truck release after 0.5.0 is adopted.

Tests: moving_a_body_with_an_intersection_curve_edge_ends (kernel) cuts a cylinder with a tilted box and moves the result by one of the shifts that hung (hangs on main). examples/regressions/oblique_cut_of_cylinder_hang.json is the variant of the oblique cut that hung the app; it hangs on main, and since the previous commit it passes without reaching the shifted retries, so it is replayed by the engine test as a scenario only.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-10 17:57:34 -04:00

5.0 KiB

Attribution

Every non-code asset in this repository (images, icons, fonts, example parts) is listed here with its author, source and licence. cargo xtask assets (part of cargo xtask ci) fails if an asset file is missing from this table.

Policy (mandatory): SolveCraft contains no Autodesk iconography, images, artwork, fonts, templates, materials or help text. Every asset is original work by SolveCraft contributors or third-party material under an open licence. Screenshots of Autodesk software are never committed.

Generated-in-code assets are original and have no file to list:

  • the UI icon set (crates/ui-egui/src/icons.rs);
  • the view cube, navigation bar and timeline glyphs (crates/ui-egui/src/viewport.rs, crates/ui-egui/src/timeline.rs).

Files

File Author Source Licence
docs/screenshots/sample-plate.png SolveCraft contributors screenshot of SolveCraft itself (solvecraft --sample) MIT OR Apache-2.0
docs/screenshots/demo.gif SolveCraft contributors screen recording of SolveCraft itself driven by examples/demo (3x speed) MIT OR Apache-2.0
docs/book/src/generated/sample-plate.png SolveCraft contributors copy of docs/screenshots/sample-plate.png made by cargo xtask book (gitignored) MIT OR Apache-2.0
docs/book/src/generated/bracket.png SolveCraft contributors rendered by cargo xtask book (solvecraft-cli snapshot examples/bracket.json; gitignored) MIT OR Apache-2.0
docs/book/src/generated/enclosure.png SolveCraft contributors rendered by cargo xtask book (solvecraft-cli snapshot docs/book/scripts/enclosure.json; gitignored) MIT OR Apache-2.0
docs/book/src/generated/revolve.png SolveCraft contributors rendered by cargo xtask book (solvecraft-cli snapshot docs/book/scripts/revolve.json; gitignored) MIT OR Apache-2.0
docs/book/src/generated/sheet-metal.png SolveCraft contributors rendered by cargo xtask book (solvecraft-cli snapshot docs/book/scripts/sheet-metal.json; gitignored) MIT OR Apache-2.0
crates/sketch/fonts/LiberationSans-Regular.ttf Red Hat, Inc. (Liberation Fonts 2.x; digitized data Google) https://github.com/liberationfonts (Debian fonts-liberation), unmodified; licence text in crates/sketch/fonts/OFL.txt; used for sketch Text outlines SIL OFL 1.1

Code adapted from sibling projects

SolveCraft file Adapted from Licence
xtask/src/layers.rs CADCraft xtask/src/layers.rs (dependency layering rules and tests) MIT OR Apache-2.0
apps/solvecraft/src/control_server.rs CADCraft apps/cadcraft/src/control_server.rs (loopback JSON-lines server) MIT OR Apache-2.0
crates/ui-egui/src/lib.rs (screenshot queue, synthetic input) CADCraft crates/ui-egui/src/lib.rs MIT OR Apache-2.0
crates/ui-egui/src/control.rs (method dispatch and screenshot saving) CADCraft crates/ui-egui/src/control.rs MIT OR Apache-2.0
crates/ui-egui/src/gpu.rs (paint-callback structure) CADCraft crates/ui-egui/src/gpu.rs MIT OR Apache-2.0
crates/mcp/src/server.rs, crates/mcp/src/backend.rs (JSON-RPC framing, MCP lifecycle, control-port bridge) CADCraft crates/mcp/src/{server,backend}.rs MIT OR Apache-2.0
crates/mcp/src/tools.rs (tool schema helpers and argument checking) CADCraft crates/mcp/src/tools.rs, GridCraft crates/mcp/src/tools.rs MIT OR Apache-2.0
crates/io/src/threemf.rs (bounded zip part reading and writing) GridCraft crates/xlsx/src/package.rs MIT OR Apache-2.0
crates/ui-egui/src/titlebar.rs (title bar drag, caption buttons, resize zones, their tests) and the window setup in apps/solvecraft/src/main.rs VectorCraft crates/ui-egui/src/titlebar.rs, apps/vectorcraft/src/main.rs MIT OR Apache-2.0
LICENSE-MIT, LICENSE-APACHE (licence text) CADCraft —
.github/workflows/release.yml, .github/workflows/packaging-lint.yml and packaging/ (release pipeline: Linux AppImage/deb/rpm/Flatpak/tar.gz, FreeBSD, macOS dmg, Windows MSI/portable zip, web zip; AppRun, nfpm, Flatpak, WiX and Info.plist templates) PhotoCraft (https://github.com/storytold/photocraft) .github/workflows/{release,packaging-lint}.yml, packaging/ Apache-2.0

Vendored third-party code

Directory Source Licence Changes
vendor/truck-meshalgo truck-meshalgo 0.4.0, https://github.com/ricosjp/truck (RICOS Co. Ltd.) Apache-2.0 meshing: parameter searches kept inside the surface domain (vendor/README.md)
vendor/truck-stepio truck-stepio 0.3.0, https://github.com/ricosjp/truck (RICOS Co. Ltd.) Apache-2.0 STEP writer: intersection-curve surfaces written at unique ids (vendor/README.md)
vendor/truck-shapeops truck-shapeops 0.4.0, https://github.com/ricosjp/truck (RICOS Co. Ltd.) Apache-2.0 robust meshing and nearest-parameter fallback in booleans; trace macro (vendor/README.md)
vendor/matext4cgmath matext4cgmath 0.1.0, https://github.com/ricosjp/matext4cgmath (RICOS Co. Ltd.) Apache-2.0 root refinement stops after 100 Newton steps (vendor/README.md)