SolidCraft is een open-source parametrische 3D CAD-applicatie die volledig is ontwikkeld in Rust. De software stelt gebruikers in staat om complexe 3D-modellen te bouwen via een parametrische feature-tijdlijn, waarbij wijzigingen in dimensies automatisch leiden tot een herbouw van het model.
De belangrijkste functionaliteiten omvatten:
- Schetsen en Constraints: Een eigen constraint solver voor nauwkeurige 2D-geometrie.
- Parametrische Tools: Ondersteuning voor extrude, revolve, sweep, loft, alsofmede tools voor plaatwerk (sheet metal) en assemblages.
- Interoperabiliteit: Import en export van diverse formaten, waaronder STEP, IGES, STL, 3MF en OBJ.
- Platformondersteuning: Beschikbaar voor Windows, macOS, Linux en direct in de webbrowser.
Technisch is de applicatie gebouwd met egui en wgpu. Een opvallend kenmerk is de integratie met AI-agents via een MCP-server (Model Context Protocol), waardoor de software via een CLI of bridged desktop-app kan worden aangestuurd. SolidCraft is gelicenseerd onder MIT of Apache-2.0.
SolidCraft
Download en Installatie
Windows
- Download en voer de installer uit.
- Beschikbaar voor ARM64 en 32-bit pc's, of als een portable zip-bestand dat zonder installatie werkt.
- Let op: Indien SmartScreen een waarschuwing geeft, kies dan voor 'Meer informatie' en vervolgens 'Toch uitvoeren'.
macOS
- Open het disk image en sleep SolidCraft naar de Applicaties-map (ondersteunt Apple Silicon en Intel).
- Let op: Klik bij de eerste keer met de rechtermuisknop op SolidCraft in Applicaties en kies 'Open'.
Linux
- Download het AppImage, maak het uitvoerbaar en open het.
- Installatie is ook mogelijk via
.deb (Ubuntu, Debian, Mint), .rpm (Fedora, openSUSE) of Flatpak.
- Installatie via Snap:
sudo snap install solidcraft.
- Voor ARM64 zijn AppImage,
.deb en .rpm beschikbaar.
Web
- De applicatie kan direct in de browser worden gebruikt zonder installatie.
Status en Documentatie
De software bevindt zich in een vroeg stadium, maar is bruikbaar voor eenvoudige onderdelen. Van de 76 publieke referentiedelen komen er 75 overeen met hun analytische of via FreeCAD berekende volume, oppervlakte, zwaartepunt en bounding box (zie docs/oracle.md).
- Documentatie: Het "SolidCraft book" bevat de gebruikershandleiding, ontwikkelaarshandleiding en referentie voor commando's.
- Features: Een overzicht van beschikbare commando's staat in
docs/features.md.
- Roadmap: Plannen en huidige status zijn te vinden in
ROADMAP.md.
- Bugs: Openstaande zaken en bugs worden bijgehouden in de GitHub issues.
Functionaliteiten
Schetsen en Constraints
- Schetsen: Mogelijk op oorsprongsvlakken, offset-vlakken of vlakke zijden. Ondersteunde elementen zijn onder andere lijnen, rechthoeken, cirkels, bogen, polygonen, slots, ellipsen, fit/control splines, conics en tekst. Daarnaast zijn er functies voor constructiegeometrie, projectie, trimmen, fillets en chamfers.
- Constraint Solver: Maakt gebruik van een eigen solver. Punten worden exact geplaatst via constructie (loci-intersecties en rigid-cluster decompositie). De rest wordt opgelost via Levenberg–Marquardt.
- Ondersteunde constraints: Coincident, punt op curve, horizontaal/verticaal, parallel, loodrecht, tangent, kromming (G2), gelijk, concentrisch, collinear, middenpunt, symmetrie en fix.
- Dimensies: Lineair, uitgelijnd, horizontaal, verticaal, punt-naar-lijn, straal, diameter, hoek, booglengte en slotlengte, aangestuurd door parameters.
- Interactie: Over-constraining bewerkingen worden geweigerd; volledig gedefinieerde geometrie wordt zwart. Slepen lost de schets per frame op en bouwt het model opnieuw op zodra het slepen stopt.
Parametrische Features en Tijdlijn
Er is een parametrische tijdlijn waarop features kunnen worden bewerkt, onderdrukt, hernoemd, herordend of verwijderd. Ondersteunde features zijn:
- Extrude, revolve, sweep, loft.
- Fillet/chamfer, shell, draft.
- Gaten, schroefdraad, patterns, mirror, split, combine, move.
- Constructiegeometrie.
Parameters en Configuraties
Ondersteuning voor unit-aware expressies (bijv. 2 * width + 5 mm, angle / 2), geordende regels, feature-onderdrukking en materiaalinstellingen per body.
Assemblages
Assemblages ondersteunen geneste componenten en occurrences, joints, motion studies, contact sets, interferentie en massa-eigenschappen die rekening houden met het materiaal.
Plaatwerk (Sheet Metal)
Functies voor flanges, hems, fold/unfold/refold, materiaaluitsparingen, flat patterns, ondiepe prismatische pockets, exacte DXF-outlines (lijn/boog/cirkel) en buigtabellen.
Bestanden en Export
- Eigen formaat: Design containers (
.solidcraft) met lossless binary mesh payloads. Plain JSON wordt ondersteund voor openen, 'Opslaan als' en export.
- Export: STEP (AP242 met bodysnamen, kleuren en componenten), IGES 5.3 (manifold solid B-reps), 3MF, STL (binary/ASCII) en OBJ.
- Import: STEP (AP203/AP214/AP242 solids, assemblies, units, namen, kleuren) en IGES (manifold solid B-reps of trimmed/bounded surfaces) als basis-feature. 3MF, STL en OBJ worden geïmporteerd als mesh-bodies.
- Mesh conversie: "Convert Mesh" reconstrueert gesloten onderdelen met een constante sectie als parametrische solids.
Interface en Tools
Desktop Applicatie
Gebouwd met egui en wgpu. Bevat een toolbar met workspace-tabs, browser, tijdlijn, 3D-viewport (met as-weergave en navigatiebalk), schetstools, feature-dialogen en een command palette. Er is een JSON-lines controlekanaal aanwezig voor aansturing door agents en tests.
Headless CLI (solidcraft-cli)
Hiermee kunnen commando-scripts worden uitgevoerd, metingen worden gedaan (volume, oppervlakte, zwaartepunt), export worden gedaan, PNG-snapshots worden gemaakt en referentie-recepten worden afgespeeld.
AI Agents (MCP)
solidcraft-cli mcp fungeert als een Model Context Protocol server op stdio.
- Headless: Draait een eigen design-sessie.
- Connected: Met
--connect 127.0.0.1:PORT stuurt het de actieve desktop-app aan.
- Tools:
listcommands, execute, batch, inspectdesign, measure, bodytopology, setparameter, screenshot, export, undo, redo, new_design, open, save.
Hardwareondersteuning
SolidCraft detecteert 3Dconnexion SpaceNavigator of SpaceMouse via de multi-axis HID interface.
- Windows/Linux: Ondersteuning voor pan, zoom en rotatie van de 3D-view.
- Linux specifieke setup: Vereist een udev-regel voor toegang tot
/dev/hidrawN (bijv. SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256f", TAG+="uaccess").
Technische Details
Build en Run
cargo run --release -p solidcraft -- --sample # Desktop app met voorbeelddeel
cargo run --release -p solidcraft-cli -- commands # Commando register
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 STEP-bestand als nieuw design
cargo run --release -p solidcraft-cli -- eval part.step # Meet geïmporteerd STEP-bestand
cargo xtask ci # fmt, clippy, tests, assets, layers, wasm
Scripting
Een script is een JSON-lijst van commando's:
{
"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}}
]
}
Architectuur
| Laag | Crates | Rol |
| L0 | geom | Vectoren, vlakken, profielen, meshes en hun metingen |
| L1 | sketch, kernel, render | Constraint solver en profielen; B-rep kernel boundary; view math en CPU rasterizer |
| L2 | doc | Parameters, expressies, feature tijdlijn en incrementele evaluatie |
| L3 | io | Design-bestanden, export (STL/OBJ/STEP/3MF), import (STEP en 3MF/STL) |
| L4 | engine | De sessie en het commando register |
| L5 | ui-egui, mcp | Desktop front-end; MCP server (headless of bridged) |
| Apps | solidcraft, solidcraft-cli | Desktop app, headless CLI |
Licentie en Juridische Informatie
SolidCraft is beschikbaar onder de MIT of Apache-2.0 licentie. De software is ontwikkeld volgens clean-room regels; code en assets van derden behouden hun eigen licenties.
SolidCraft is onafhankelijk. Het gedrag is ontworpen op basis van publieke documentatie, algemene CAD-conventies en gebruikersfeedback. SolidCraft is niet gelieerd aan, gesponsord door of onderschreven door Autodesk. Autodesk en Fusion zijn handelsmerken van Autodesk, Inc.
SolidCraft
Download en Installatie
Windows
- Download en voer de installer uit.
- Beschikbaar voor ARM64 en 32-bit pc's, of als een portable zip-bestand dat zonder installatie werkt.
- Let op: Indien SmartScreen een waarschuwing geeft, kies dan voor 'Meer informatie' en vervolgens 'Toch uitvoeren'.
macOS
- Open het disk image en sleep SolidCraft naar de Applicaties-map (ondersteunt Apple Silicon en Intel).
- Let op: Klik bij de eerste keer met de rechtermuisknop op SolidCraft in Applicaties en kies 'Open'.
Linux
- Download het AppImage, maak het uitvoerbaar en open het.
- Installatie is ook mogelijk via
.deb (Ubuntu, Debian, Mint), .rpm (Fedora, openSUSE) of Flatpak.
- Installatie via Snap:
sudo snap install solidcraft.
- Voor ARM64 zijn AppImage,
.deb en .rpm beschikbaar.
Web
- De applicatie kan direct in de browser worden gebruikt zonder installatie.
Status en Documentatie
De software bevindt zich in een vroeg stadium, maar is bruikbaar voor eenvoudige onderdelen. Van de 76 publieke referentiedelen komen er 75 overeen met hun analytische of via FreeCAD berekende volume, oppervlakte, zwaartepunt en bounding box (zie docs/oracle.md).
- Documentatie: Het "SolidCraft book" bevat de gebruikershandleiding, ontwikkelaarshandleiding en referentie voor commando's.
- Features: Een overzicht van beschikbare commando's staat in
docs/features.md.
- Roadmap: Plannen en huidige status zijn te vinden in
ROADMAP.md.
- Bugs: Openstaande zaken en bugs worden bijgehouden in de GitHub issues.
Functionaliteiten
Schetsen en Constraints
- Schetsen: Mogelijk op oorsprongsvlakken, offset-vlakken of vlakke zijden. Ondersteunde elementen zijn onder andere lijnen, rechthoeken, cirkels, bogen, polygonen, slots, ellipsen, fit/control splines, conics en tekst. Daarnaast zijn er functies voor constructiegeometrie, projectie, trimmen, fillets en chamfers.
- Constraint Solver: Maakt gebruik van een eigen solver. Punten worden exact geplaatst via constructie (loci-intersecties en rigid-cluster decompositie). De rest wordt opgelost via Levenberg–Marquardt.
- Ondersteunde constraints: Coincident, punt op curve, horizontaal/verticaal, parallel, loodrecht, tangent, kromming (G2), gelijk, concentrisch, collinear, middenpunt, symmetrie en fix.
- Dimensies: Lineair, uitgelijnd, horizontaal, verticaal, punt-naar-lijn, straal, diameter, hoek, booglengte en slotlengte, aangestuurd door parameters.
- Interactie: Over-constraining bewerkingen worden geweigerd; volledig gedefinieerde geometrie wordt zwart. Slepen lost de schets per frame op en bouwt het model opnieuw op zodra het slepen stopt.
Parametrische Features en Tijdlijn
Er is een parametrische tijdlijn waarop features kunnen worden bewerkt, onderdrukt, hernoemd, herordend of verwijderd. Ondersteunde features zijn:
- Extrude, revolve, sweep, loft.
- Fillet/chamfer, shell, draft.
- Gaten, schroefdraad, patterns, mirror, split, combine, move.
- Constructiegeometrie.
Parameters en Configuraties
Ondersteuning voor unit-aware expressies (bijv. 2 * width + 5 mm, angle / 2), geordende regels, feature-onderdrukking en materiaalinstellingen per body.
Assemblages
Assemblages ondersteunen geneste componenten en occurrences, joints, motion studies, contact sets, interferentie en massa-eigenschappen die rekening houden met het materiaal.
Plaatwerk (Sheet Metal)
Functies voor flanges, hems, fold/unfold/refold, materiaaluitsparingen, flat patterns, ondiepe prismatische pockets, exacte DXF-outlines (lijn/boog/cirkel) en buigtabellen.
Bestanden en Export
- Eigen formaat: Design containers (
.solidcraft) met lossless binary mesh payloads. Plain JSON wordt ondersteund voor openen, 'Opslaan als' en export.
- Export: STEP (AP242 met bodysnamen, kleuren en componenten), IGES 5.3 (manifold solid B-reps), 3MF, STL (binary/ASCII) en OBJ.
- Import: STEP (AP203/AP214/AP242 solids, assemblies, units, namen, kleuren) en IGES (manifold solid B-reps of trimmed/bounded surfaces) als basis-feature. 3MF, STL en OBJ worden geïmporteerd als mesh-bodies.
- Mesh conversie: "Convert Mesh" reconstrueert gesloten onderdelen met een constante sectie als parametrische solids.
Interface en Tools
Desktop Applicatie
Gebouwd met egui en wgpu. Bevat een toolbar met workspace-tabs, browser, tijdlijn, 3D-viewport (met as-weergave en navigatiebalk), schetstools, feature-dialogen en een command palette. Er is een JSON-lines controlekanaal aanwezig voor aansturing door agents en tests.
Headless CLI (solidcraft-cli)
Hiermee kunnen commando-scripts worden uitgevoerd, metingen worden gedaan (volume, oppervlakte, zwaartepunt), export worden gedaan, PNG-snapshots worden gemaakt en referentie-recepten worden afgespeeld.
AI Agents (MCP)
solidcraft-cli mcp fungeert als een Model Context Protocol server op stdio.
- Headless: Draait een eigen design-sessie.
- Connected: Met
--connect 127.0.0.1:PORT stuurt het de actieve desktop-app aan.
- Tools:
listcommands, execute, batch, inspectdesign, measure, bodytopology, setparameter, screenshot, export, undo, redo, new_design, open, save.
Hardwareondersteuning
SolidCraft detecteert 3Dconnexion SpaceNavigator of SpaceMouse via de multi-axis HID interface.
- Windows/Linux: Ondersteuning voor pan, zoom en rotatie van de 3D-view.
- Linux specifieke setup: Vereist een udev-regel voor toegang tot
/dev/hidrawN (bijv. SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256f", TAG+="uaccess").
Technische Details
Build en Run
cargo run --release -p solidcraft -- --sample # Desktop app met voorbeelddeel
cargo run --release -p solidcraft-cli -- commands # Commando register
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 STEP-bestand als nieuw design
cargo run --release -p solidcraft-cli -- eval part.step # Meet geïmporteerd STEP-bestand
cargo xtask ci # fmt, clippy, tests, assets, layers, wasm
Scripting
Een script is een JSON-lijst van commando's:
{
"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}}
]
}
Architectuur
| Laag | Crates | Rol |
| L0 | geom | Vectoren, vlakken, profielen, meshes en hun metingen |
| L1 | sketch, kernel, render | Constraint solver en profielen; B-rep kernel boundary; view math en CPU rasterizer |
| L2 | doc | Parameters, expressies, feature tijdlijn en incrementele evaluatie |
| L3 | io | Design-bestanden, export (STL/OBJ/STEP/3MF), import (STEP en 3MF/STL) |
| L4 | engine | De sessie en het commando register |
| L5 | ui-egui, mcp | Desktop front-end; MCP server (headless of bridged) |
| Apps | solidcraft, solidcraft-cli | Desktop app, headless CLI |
Licentie en Juridische Informatie
SolidCraft is beschikbaar onder de MIT of Apache-2.0 licentie. De software is ontwikkeld volgens clean-room regels; code en assets van derden behouden hun eigen licenties.
SolidCraft is onafhankelijk. Het gedrag is ontworpen op basis van publieke documentatie, algemene CAD-conventies en gebruikersfeedback. SolidCraft is niet gelieerd aan, gesponsord door of onderschreven door Autodesk. Autodesk en Fusion zijn handelsmerken van Autodesk, Inc.