I needed a small steel angle, the kind you screw under a shelf, and I wasn’t going to rent a design seat to draw it. CAD (the program that stores a part as shapes with sizes, not as a flat picture) is the tool for that job. The paid one most hobby pages name wants an account. FreeCAD is the free one people already know, and it splits the work across separate tool sets. SolidCraft is the newer free one: one history list, and a command I can run with no window open.
SolidCraft vs FreeCAD, for a simple bracket, comes down to the job in front of you. Use SolidCraft when you want one timeline and a number you can change. Stay on FreeCAD when you need a dimensioned drawing or a stress picture. I changed one length from 60 mm to 80 mm. The volume grew from 22,988 mm³ to 30,651 mm³, exactly in proportion.
SolidCraft vs FreeCAD

SolidCraft is the better first part if you think in one history list. FreeCAD is the better workshop if the part has to leave as a drawing or a stress check.
A timeline (the ordered list of steps that built the solid, so a later step can be edited without redrawing the first) is how SolidCraft keeps a part. A workbench (a separate set of tools you switch into, such as sketching, a drawing, or a stress test) is how FreeCAD splits those same jobs. Neither idea is magic. They just feel different on the first afternoon. In SolidCraft I never picked a bench. I sent a list of commands. In FreeCAD the first click is which bench you are in, and that choice is also why a big assembly has a room to live in.

| SolidCraft | FreeCAD | |
|---|---|---|
| Price | Free, open source | Free, open source |
| How you model | One timeline | Workbenches |
| Change a size | A named parameter, then the solid rebuilds | A constraint or a property, then the solid rebuilds |
| No window | A JSON script | A Python console |
| Assemblies | Components and joints are in the command list | An assembly bench |
| Stress test | No stress command in the 392 I listed | A FEM bench |
| Shop drawing | A DXF of a view, not a dimensioned sheet | A drawing bench |
| What I measured | One bracket, two lengths, a STEP file | Not rebuilt in this test |
The kernel (the math library that computes the faces and edges) is different too. You do not need to care on day one. You will care the day a round edge fails or a shared file comes back with a broken face. For a shelf bracket, either kernel is enough. For a part a shop will cut from a drawing, the drawing matters more than which kernel drew the solid.
What is a parametric model?
A parametric model is a part that remembers the numbers, so changing one number rebuilds the solid.
Start with a sketch (a flat outline on a plane, the L drawn on paper before it has any thickness). The lines are not a picture you hope the computer will guess. You add a constraint (a rule, such as “this edge is 40 mm” or “these two lines meet”). Then you extrude (push that flat outline into a thickness, which turns the drawing into a solid). A fillet (a rounded edge instead of a sharp corner) is a later step on that solid. The timeline replays sketch, extrude, fillet, in that order, every time a number changes.
If the sketch is the recipe and the extrude is the baking, parametric means you change the recipe and bake again. You do not carve the loaf by hand. A mesh (a shell of tiny triangles, like the file a printer sometimes wants) forgets the recipe. A parametric solid keeps it. That is why I trusted a cubic-millimetre reading more than a screenshot.

One more word before the test, because the file I wrote is not a picture. STEP (a text file of the solid in a shared format, so another program can open the shape rather than a screenshot) is the handoff. My file was 8,855 bytes. The first lines name the schema AP242. Reloading it in a second program such as FreeCAD is the next check, and one worth doing on your machine.
How to use SolidCraft
Install the build for your system, then point solidcraft-cli at a JSON script. No window required.
The sample I ran sets a parameter named width to 60 mm, draws an L, extrudes that L by width, rounds one edge by 2 mm, then tries to cut two holes. Measuring it is one line:
solidcraft-cli eval bracket.jsonWriting the handoff file is the next line:
solidcraft-cli run bracket.json --out bracket.stepeval prints the body: volume, area, bounding box, center of mass, face types, and whether each timeline step failed. run does the same build and writes STEP. The script finished in 60 ms on this machine. The fillet took 33 ms of that. The sketch and the first extrude were about 1 ms each. Fast is not the same as correct, which is the next section.
The expressions carry units. 60 mm is not the bare number 60. A notes app will add 60 and 6 and hand you 66, which is nonsense if one is a length and one is a thickness. The same care is why a unit-aware calculator beats a plain one, which is the whole test in numbat vs insect.
What happens if I change one length?
Changing width from 60 mm to 80 mm scaled the volume by exactly 4/3, and the two holes in the script never cut the metal.
At 60 mm the solid was one body named Bracket. Volume was 22,988.46 mm³. The reported mass was 29.66 g. The bounding box was 40 mm by 60 mm by 30 mm. There were 9 faces: 8 flat, and 1 cylinder from the fillet. The center of mass sat halfway along the 60 mm length.
I edited one expression, 60 mm to 80 mm, and ran eval again. Volume was 30,651.28 mm³. Mass was 39.54 g. The length axis went to 80 mm. The center of mass moved from the 30 mm mark to the 40 mm mark. 22,988.46 times 80 divided by 60 is 30,651.28. Not close. Exact.
That is the parametric promise, measured. The solid is the recipe times the length. A screenshot of a longer bar would not have told me the math held.
| Width 60 mm | Width 80 mm | |
|---|---|---|
| Volume | 22,988.46 mm³ | 30,651.28 mm³ |
| Reported mass | 29.66 g | 39.54 g |
| Length axis | 60 mm | 80 mm |
| Center along that axis | 30 mm | 40 mm |
| Faces | 9 (8 flat, 1 cylinder) | 9 (8 flat, 1 cylinder) |
| Script time | 60 ms | same shape of run |
One caveat on the grams. The mass uses a default density of 1.29 g/cm³. That is not steel, and it is not aluminum. Trust the cubic millimetres. Ignore the grams until you set a real material. A shop quoting from 29.66 g would be quoting a plastic that this bracket is not.
The other caveat was a surprise. The script draws two circles and asks for a cut. The measured solid still has one cylindrical face, the fillet, not two extra cylinders for holes. The volume scales as a pure length change, which is what you get when the holes miss the part. The L is extruded along negative Y. The circles sit at positive Y. They never meet the metal. The command did not print an error. A finished run is not a hole. Look at face types before you print.
The profile sketch also reported 10 degrees of freedom (ways the lines can still move) even though its status was solved. Solved means the current numbers build a solid. It does not mean a dragged point is locked. If you build on this sample, lock the sketch before you trust a later edit.

Is SolidCraft worth it?
Yes, for a bracket, a jig, or a small enclosure, if you can live without a stress plot and a formal drawing.
I would use it when the part is a few features, I want the file on my own disk, and I might want a script to rebuild it. A browser build means a locked-down work laptop can still open it. The command line means I can change width in a file and get a new STEP without clicking. That is the same reason I keep a download tool that runs on Linux instead of the paid Windows one: the job is the file, not the account, which is what the timings showed for an open source IDM alternative.
I would not send a customer a drawing from SolidCraft yet. I found file.export_view_dxf, so a flat outline can leave. I found no command for a sheet with a title block, several views, and dimensions. If the shop asks for that sheet, FreeCAD is the install that already has the bench.
I also would not use the sample holes as proof the cutter works. My run says they missed. Make a cut you can see in the face count before you send plastic to a printer.
When should I stay on FreeCAD?
Stay on FreeCAD when the job is a dimensioned drawing, a stress check, or a part that already lives in a FreeCAD file.
FreeCAD has been the free mechanical tool for a long time. Its window shows separate benches for the solid, the assembly, the drawing, and FEM (a stress picture: you push on the model in the computer and it colors the places that bend). This test did not include a load case, so there is no load or color scale to quote here. The bench is there. SolidCraft’s list of 392 commands had no stress command. Components and joints are there, so an assembly is not the missing piece. A stress result is.
FreeCAD will feel slower on day one because you pick a bench before you sketch. That friction is also why a large assembly and a machine drawing have a place to live. If your files are already FreeCAD files, do not convert them for a prettier toolbar. Two tools that claim the same result still have to be run, not compared from a banner, which is the same rule I used when a three-second clip had two libraries fighting over it in manimgx vs manim.
Sheet metal is not a reason to leave. SolidCraft’s command list includes flanges, hems, fold, unfold, and a flat pattern. This test did not include a sheet-metal part, so the folds stay ungraded here. The commands exist. Grade them on your own bend.
How do I try this myself?
Download the build for your system, run the sample, then change one number and check that the volume moved.
- Get the desktop app or the command-line build from the SolidCraft project. On Linux the command is
solidcraft-cli. - Save the sample bracket as
bracket.json, or use the copy in the project examples. - Run
solidcraft-cli eval bracket.jsonand readvolume_mm3. - Change the width expression. Run eval again. The volume should scale with that length if the holes are not in the metal. If you add a hole that actually hits, the scale will not stay exact, and the face count should gain cylinders.
- Run
solidcraft-cli run bracket.json --out bracket.step. Open that STEP in FreeCAD for a second look at the same solid.
Give it ten minutes. If the volume does not move when the number moves, you are not in a parametric model. You are looking at a frozen shape.
Common questions about SolidCraft vs FreeCAD
Is SolidCraft worth it?
Yes for a simple part you will resize. No if you need a shop drawing or a stress result today.
The worth is the rebuild, not the promise of a full design suite. My 60 mm bar and my 80 mm bar are the same recipe. That is the feature I would pay for, and here it is free. The missing drawing sheet is the feature I would not pretend is there.
Can SolidCraft replace FreeCAD?
Not as the only install. It can replace FreeCAD for a bracket and a script. It does not replace the drawing bench or the stress bench.
Keep both. Open SolidCraft when the part is small and the size will change. Open FreeCAD when someone asks for a sheet or a load case. Uninstalling FreeCAD to “commit” is how you get stuck on a Friday.
How to use SolidCraft without opening the window
solidcraft-cli eval script.json measures the solid. solidcraft-cli run script.json --out part.step writes STEP.
You still need the script, which is a list of commands in a JSON file. The desktop app is nicer for drawing the first sketch with a mouse. The command line is how you prove a number changed the solid.
Is SolidCraft an open source Fusion alternative?
It is a free parametric modeler with one timeline, which is the part of that paid app people mean when they say the workflow. It is not a full stand-in for drawings, simulation, and years of odd edges.
If your bar is “does it feel like one history list, on my own disk, with no account,” yes. If your bar is “can my shop use it as the only CAD seat,” not yet.
Which one should you keep?
I kept SolidCraft for the bracket, because one number rebuilt the solid and the file stayed on my disk. I kept FreeCAD installed, because the day I need a dimensioned sheet I do not want to learn that bench in a hurry. Check the holes. A script that finishes is not a script that cut.




