16 comments

[ 0.30 ms ] story [ 20.6 ms ] thread
At first glance, this looks really impressive.
Which modeling kernel does it use?
Changelog notes seem to hint at MEDUSA, though I've never heard of that particular one. Definitely going to give it a try, always up for more browser based CAD options!
From their Github, it looks like OpenCascade with Manifold for mesh boolean that they are calling MEDUSA.
The Release page has:

>Download the Source code ZIP below and extract it. It includes the application, its libraries and the OpenCASCADE WASM/data files.

Just a one minutes test:

    * Mouse over text takes too long, it should be visible instant. When I'm searching for a tool I don't want to wait 500ms for each symbol
    * Even empty it feels more laggy then onshape on same device / browser.
    * When I did a boolean operation there is no popup or similar where I can choose the tool and target. It's all based on selection order? How do I choose 2 tools and one target, or the other way around.
And it's all based on a single 16 000 large c++ file? https://github.com/Nx-Nass/NassCAD/blob/main/MEDUSA_SOURCE/n...

wut? That whole repo seems a mess.

I'm not sure if it's crashed or just very slow, but I've been waiting several minutes to preview a fillet on a cylinder end.
I'm glad people are working on this. The open source CAD world is not doing well (not you Blender<3) and even if you're willing to pay the big bucks for any of the proprietary options, they won't run on Linux without rather high levels of applied violence.

That leaves cloud only options like on-shape which means they get to hold your project files hostage. I'm not sure why any business has ever come to the conclusion that losing control of their design work is acceptable but here we are.

The thing is, there are already some notable projects:

- FreeCAD --- exactly what it says on the tin, and making huge improvements, so that I am quite hopeful of 26.3

- SolveSpace --- surprisingly capable/nimble/lightweight

- Dune 3D --- the new kid on the block, it is quite workable, and has quite good documentation: https://docs.dune3d.org/en/latest/simple-part.html

(and for the hardcore programmers there are OpenSCAD and derivatives such as PythonSCAD)

Wouldn't the compute from the tokens for these projects be better used improving existing projects? (there are more of these new 3D CAD tools than I can count: Cadivari, Layerling, OpenSketch, &c.)

FreeCAD and Dune3D are both OpenCascade based, so they are limited by OpenCascade's architecture (For example, OpenCascade uses per-entity tolerances, which means it is more bad geometry import tolerant, but if every face and edge has its own tolerance value in the kernel representation, then it creates a great amount of hidden tolerance drift.)

SolveSpace is still fairly limited on what it can do in terms of features such as fillet/chamfers, so it's not really suitable for pro work right now

For projects like SolidCraft, the SMLib kernel they are currently porting to Rust from Nvidia is currently about a decade behind OpenCascade, nevermind Parasolid/ACIS as they are still converting all geometry to NURBS instead of preserving analytical geometry, which means that their initial development is easier but it creates a near infinite amount of edge cases once they start going heavy into booleans and fillet/chamfers.

Can't comment on the fillet/chamfers but for boolean operations I didn't find it to be a decade behind at all https://github.com/IfcOpenShell/IfcOpenShell/pull/9958
Hmmm. Have you tested the hard case, surface/surface intersections between cylinders yet?

For your application in IFC, the architecture difference between OpenCascade and SMLib doesn't matter as much, but a geometric modeling kernel for mechanical CAD has much stricter requirements in terms of geometric correctness, which is the reason that Rhino, despite being BRep and widely used in architecture, isn't used very much in mechanical CAD at all.

I had really good results with using Solidcraft (https://solidcraft.io/) for home stuff. Does 99% (I use solidworks makers for the remainder 1) of what I need and has a MCP connection which makes it fun. They use Nvidia’s recently open sourced BREP engine but Solidcraft is porting it to Rust.