5 ms·
SolveSpace is a wonderfully different take on parametric CAD, but development has really slowed, and it seems fundamentally incapable of some pretty rudimentary
by MrDOS 6mo ago
SolveSpace is a wonderfully different take on parametric CAD, but development has really slowed, and it seems fundamentally incapable of some pretty rudimentary features (like chamfers[0]). Dune 3D[1] seems like a pretty effective spiritual successor.
0: https://github.com/solvespace/solvespace/issues/149 https://github.com/solvespace/solvespace/issues/149
1: https://dune3d.org/ https://dune3d.org/
- julbaxter 6mo agoDune3D uses SolveSpace behind the scene.
- phkahler 6mo agoOnly for the constraint solver. Dune uses OCCT for the solid model.
- amelius 6mo agoI'm curious why you didn't go with OCCT for Solvespace.
- phkahler 6mo ago>> I'm curious why you didn't go with OCCT for Solvespace. I didn't start Solvespace, but Jonathan was apparently in a DIY mode after developing his take on constraint-based sketching. It's also very easy to go from NURBS curves to NURBS surfaces, the challenge begins at boolean operations which continue to be a source of bugs for us. This is really the only option other than OCCT and the code is small and approachable so I try to make it better.
- amelius 6mo agoWould it be worthwhile to consider switching to OCCT (or make it optional)? It would make certain things such as fillets/chamfers much easier, I suppose, and it would make those boolean operation bugs go away. And exporting to various formats would be easy.
- phkahler 6mo ago>> Would it be worthwhile to consider switching to OCCT It would, and it has been considered. The sketch elements in solvespace are significantly decoupled from the solid model. That means we could substitute (via wrapper maybe) an OCCT object instead of our SShell class. Then you'd have to change a set of solvespace curves to OCCT curves to make extrusions from them and such. But that would be most of the work. We do tag all triangles in the mesh with a sketch entity handle for flat surfaces so you can constrain points to a face. I'm not sure how that would be handled. We will also be tagging edges of the solid with sketch entity handles in the future so we can do chamfers and fillets - say by selecting a line entity and applying a modifier to it which gets applied to the NURBS shell. I'm not sure how that would go with OCCT. But yes I've given a bit of thought to it ;-)
- amelius 6mo agoPerhaps you could create both the shell and the OCCT object. Then when an edge is chamfered, you could look it up in the OCCT object (simply find all segments which are sufficiently close to the chamfered edge). And then call the OCCT chamfer function. Or something along those lines.
- jwesthues 6mo agoYeah. To quantify, OCCT is >1M lines of code, and SolveSpace's NURBS kernel is <10k. This general smallness is what subsequently made stuff like the browser target feasible, though it obviously comes with downsides too. We'd welcome contributions, and it's much easier to contribute to the smaller codebase. I think there's potential for coding agents to accelerate this work since robust point-in-shell and shell-is-watertight tests are mostly sufficient to judge correctness, allowing the agent to iterate; loosely you could define your geometric operation as a function of whether a point should lie within the output region, then ask the agent to convert that to b-rep. I wouldn't currently expect useful progress without deep human effort and understanding though.
- phkahler 6mo agoOh, and the Blender CAD Sketcher add-on also uses our constraint solver.
- IshKebab 6mo agoFreeCAD doesn't have the limitations of SolveSpace, and the UX is actually decent now. I moved to that.
- l-albertovich 6mo agoI just tested it out of curiosity and found that viewport manipulation behaves in a very similar way to onshape which feels very natural to me. I've been thinking about trying to implement this in freecad but I'm still exploring the idea.
- Karliss 6mo agoThere are more than dozen different viewport navigation manipulation modes, latest version added two more (Solidworks and Siemens NX). You can pick whichever behaves closest to the program you are most used to.
- l-albertovich 6mo agoYeah, I tried all of them with all the combinations of presets and orbit styles and the closest I could get was using tinkercad but couldn't match the orbit style correctly.
- jabl 6mo agoSome years ago I tried to learn CAD by doing some FreeCAD tutorials, and failed. But I hear 1.0 was a big step forward, and the recently released 1.1 is also a big step, and it should be somewhat decent nowadays. Maybe I need to try again one day.
- IshKebab 6mo agoYeah it's vastly better in 1.0 than it used to be. I still think you might be a bit lost if you aren't familiar with parametric CAD, but it's no harder than Blender for example.
- jonpurdy 6mo ago
- phkahler 6mo agoChamfers and Fillets are my next major undertaking. Don't expect them any time soon, but they've moved to the top of my list. They are extremely difficult to do in the general case - so we will not cover all cases. Several years ago I tried an experiment: https://github.com/solvespace/solvespace/issues/453#issuecomment-521376948 https://github.com/solvespace/solvespace/issues/453#issuecom... That could only do the top or bottom of a straight extrusion. This time will be a more general than that. Not looking forward to doing corners where 3 fillets meet ;-)
- MrDOS 6mo agoOh, sorry, I didn't recognize that this had been posted by a SolveSpace maintainer! Rad. I am glad to hear the project is still moving. I also appreciate the difficulty of generalizing chamfers/fillets. There's a reason that basically all FOSS CAD packages have struggled with it.
- echelon 6mo ago> difficulty of generalizing chamfers/fillets. There's a reason that basically all FOSS CAD packages have struggled with it. Could you decompile CAD, run it through an LLM, and call it a day?
- yonatan8070 6mo agoAren't there licesing issues with porting a proprietary implementation into an open-source one that could open up the project to legal issues with the proprietary vendor?
- faangguyindia 6mo agoAll we need is a genius, with unlimited claude and codex credit and he will replace Fusion 360 atleast in 3d printing and machining space It's so sad most guys aren't comming together to build some great CAD engine which open source really needs! Gimp is shame, photoshop is increasingly being lockdown and people who have smarts to fix that are doing nothing.
- ezst 6mo agoThat people on this forum convinced themselves that it's a reasonable take to vibe code a useful geometric kernel is profoundly depressing.
- faangguyindia 6mo agoJust wait for sometime, there will be one. There are many geniuses on HN for tacking up challenge
- fainpul 6mo agoSo you think AI can do this – why exactly is a genius needed?
- faangguyindia 6mo agogenius is needed in pilot seat to guide AI :)
- WillAdams 6mo agoVibe coding only seems to work, insofar as it does when the training data includes multiple exemplars of solutions to a given problem. As noted elsethread, there's only one geometric kernel which is decently far along and opensource and it's over 1 million LOC --- I doubt it's being included in any training data, and I doubt that an LLM could regurgitate such a large project which would then compile w/o errors and then work as expected --- the number of tokens required to get such a project to an initial state is a marked hurdle as well.
- brcmthrowaway 6mo agoHow does Dune3D compare to FreeCAD?
- phkahler 6mo ago>> How does Dune3D compare to FreeCAD? Dune3D is more like Solvespace with a few improvements and bug fixes vs being anywhere near FreeCAD in terms of capability. Improvements include using STEP files in assemblies and having some ability to make Fillets or Chamfers. Bugs fixes would be due to using OCCT for NURBS surfaces - solvespace frequently fails with NURBS boolean operations. As for overall capability, FreeCAD does everything these others do but also supports lofting and other modeling options, BIM for architecture, I think it does pre- and post- processing for FEA, and maybe some other "big tool" things.
- mordae 6mo agoIt takes 10× as long to sketch in it compared to SolveSpace. At least for me.