Live data from Hacker News

CADmium: A local-first CAD program built for the browser

mattferraro.dev

51–60 of 243 posts

Re: CADmium: A local-first CAD program built for the browser

#51

I'm very excited about what Matt is building, the world desperately needs a good open source parametric CAD package. One where the UI/UX is designed to be as "easy" to use a SolidWorks. The biggest reason this hasn't happened so far is the lack of a truly capable parametric kernel, Truck, the kernel that Matt is using looks like an incredible project and exactly whats needed. The only other kennel till now that been…

I love this idea. However, the value of solid works (and other expensive solutions) are the domain-specific assets that are available. SketchUp has a lot of community assets but these still leave you hanging almost immediately. You need to be able to scrounge up drawings of certain parts by part number that can be inserted quickly. This is surmountable but I think it would take at least a decade to reach parity...in…

I don't think think this is a problem at all, the industry has standardised on STEP for assets, as long as CADmium and Truck have STEP support (which they will) then they have access to all assets. True, there are dynamically configurable assets for SolidWorks, but any community around a cad package will quickly recreate those.

Re: CADmium: A local-first CAD program built for the browser

#52
post #49

It's exciting to see a new entry into this space, especially one that is trying to create a new kernel. Unfortunately, it seems unlikely to be successful. The top kernels in the industry have been in development for decades by armies of CAGD PhDs and programmers, with funding from automotive and aerospace companies. Getting to table-stakes with the feature set will take a long time. I also question what user problems…

I mean… Onshape, Creo, and Solidworks use the same kernel so it’s not too surprising the UI/UX is similar (I’m speculating for OnShape but given the company history, they probably are). Rhino and the like are geared towards 3D graphics on top of CAD so it’s not surprising either that they’re a Freeform surface modeler first. That being said, I don’t know about the open source part not being a goal. It’s like KiCAD vs Altium. If they manage to have 90% of what Onshape has to offer but open source, I can imagine people using it. I get the angle of cost though, since Solidworks license is about the order of $3-5K, most companies would rather pay it and use something proven.

FWIW, Onshape was created for less than $10M to make a MVP in less than 3 years. I don’t think you need decades of PhDs to make a new CAD program nowadays.

Re: CADmium: A local-first CAD program built for the browser

#53

I'm very excited about what Matt is building, the world desperately needs a good open source parametric CAD package. One where the UI/UX is designed to be as "easy" to use a SolidWorks. The biggest reason this hasn't happened so far is the lack of a truly capable parametric kernel, Truck, the kernel that Matt is using looks like an incredible project and exactly whats needed. The only other kennel till now that been…

> lands stable fillets (surprisingly one of the hardest features to make stable) Interesting. Any chance you could explain why fillets are hard(er)?

For fillets to work well they have to connect three important features of a parametric CAD package:

1. Surface tangency matching - perfectly matching the tangent of the connecting surface on either side of the corner.

2. Edge tangency following - you select an edge, and the fillet should be able to follow along all connected tangent edges.

3. Edge reference tracking - when you modify the model further up the feature tree the kernel needs to keep track of that edge, even if the surfaces that make it drastically change or are split.

All three are hard problems on their own, once you connect them all it becomes a great indicator of the capabilities and stability of a parametric kernel.

Re: CADmium: A local-first CAD program built for the browser

#54
post #49

It's exciting to see a new entry into this space, especially one that is trying to create a new kernel. Unfortunately, it seems unlikely to be successful. The top kernels in the industry have been in development for decades by armies of CAGD PhDs and programmers, with funding from automotive and aerospace companies. Getting to table-stakes with the feature set will take a long time. I also question what user problems…

People have said the same about browser engines, that it's impossible to start and new one and catch up due to the unfathomable number of man hours invested. But it's happing, Ladybird browser is making incredible progress. With modern tools, the learnings from older engines and the lack of entering debt it's possible for a small team to build things on par or better than 30yo software.

I have no doubt that a small dedicated team could build a new parametric kernel and CAD package, particularly one that's open source.

Re: CADmium: A local-first CAD program built for the browser

#55
As one of the Solvespace maintainers I have a few comments:

1) You don't want just 2D constraints, 3D is better. If you were writing in C++ I'd say just take our constraint solver (Like Dune3D did). Since you're loving Rust, I can point you to the work of Michael F Bryan who wrote one in Rust and blogged about it here: https://adventures.michaelfbryan.com/posts/constraints-part-...

I think his code is over at gitlab. I haven't looked at it in a couple years. He wrote that after I nerd-sniped him ;-)

2) For geometry kernels... I've got 3 classes of bugs I want to squash in the Solvespace kernel and then it should do booleans pretty reliably, but I haven't had the time. Ours is just under 6k LOC so you could learn a lot from it. My email is the same ID at gmail if you want to ping on this topic. Its been a while since I looked at Truck and I thought it had stagnated a bit. This is a really hard problem, which is why there are so few options out there even in the commercial world. Even triangulating a trimmed NURBS shell is tricky.

3) History/feature tree is closely related to the "topological naming problem" that FreeCAD has. Solvespace handles this by creating each entity from a set of known things. If you try to recreate (regenerate in our lingo) it will just return a handle to the existing entity rather than creating a new one. In other words, every entity "came from something" and that relationship is remembered. Where we handle topological naming it works perfectly. But not everything in solvespace is covered by this. You need to bake this in from the start, it's not something you can easily bolt on afterward.

4) where is the link to try out CADmium?

Re: CADmium: A local-first CAD program built for the browser

#56

Earlier quoted context omitted.

> lands stable fillets (surprisingly one of the hardest features to make stable) Interesting. Any chance you could explain why fillets are hard(er)?

For fillets to work well they have to connect three important features of a parametric CAD package: 1. Surface tangency matching - perfectly matching the tangent of the connecting surface on either side of the corner. 2. Edge tangency following - you select an edge, and the fillet should be able to follow along all connected tangent edges. 3. Edge reference tracking - when you modify the model further up the feature…

For Solvespace I was looking at using curve offsetting to determine where the fillet touches the surface. This would not produce a "rolling ball" fillet in more complex cases, but should be fine for simpler extrusions. It turns out generating an offset curve is another somewhat hard problem in itself.

Re: CADmium: A local-first CAD program built for the browser

#57
> 3D CAD apps are among the most complex UIs that exist.

I agree.

> If you want to make a good one and you only have a small team, the framework had better do a lot of heavy lifting!

I am skeptical that general-purpose UI frameworks can be a good long-term solution for 3D CAD. At times, a nice UX will need to think about many of the following at once:

    - the parametric 3D model
    - its mesh approximation
    - its hidden-surface projection into lines and patches
    - the pixels in the frame buffer
    - UI widgets.
The frameworks make too many assumptions about information being easily partitioned and limited in size.

Maybe the frameworks will help for prototyping, but if the project grows, I expect at some point they will end up ditching frameworks for the core 3D viewport interactions, and have mostly their own code in between OpenGL (or similar) and mouse/keyboard events.

Frameworks for buttons, lists, etc. will probably be fine, but even those tend to be much more dynamic in 3D CAD than in average apps.

Re: CADmium: A local-first CAD program built for the browser

#58
Hopefully it's an easy to use CAD, because my preferred CAD right now on Linux is FreeCAD is way too complex and the user input in the UI horrendously clunky.

The good side is that all CADs have a very steep learning curve, with most tutorials made by people who are oblivious to the ignorant masses. The landscape is so complex today, that it's easier to use a vector drawing tool and transform it into a 3D model than to use any CAD to make a cylinder.

Re: CADmium: A local-first CAD program built for the browser

#60

I'm very excited about what Matt is building, the world desperately needs a good open source parametric CAD package. One where the UI/UX is designed to be as "easy" to use a SolidWorks. The biggest reason this hasn't happened so far is the lack of a truly capable parametric kernel, Truck, the kernel that Matt is using looks like an incredible project and exactly whats needed. The only other kennel till now that been…

Maybe I'm not enough of an evangelist, but I just want a good, non-subscription local-first CAD package.

I've recently moved over to Alibre Atom3D, which, while not open-source, costs $200. Once. Then (as long as your host OS doesn't change too much) you can access your designs forever. It runs on the ACIS kernel.

"Browser first" and (from the readme) "Beyond that, I will try to monetize by offering a hosted version of the software as a paid product." reads to me like this project is doomed to either fizzle or to grow and transform into an open-core, subscription-requiring product, accumulating more complicated dependencies to install and "security features" that make it harder and harder to run in truly local fashion.

Post reply on HN