Hacker News new | ask | show | jobs
by phkahler 1399 days ago
>> Solvespace is cool though and that's the one I'm praying for, personally.

Current Solvespace maintainer here. IMHO there is a lot that can readily be added to solvespace. Then there could be a big effort to do hierarchical sketches. And it is reasonably possible to rewrite some of the geometry internals if needed. All of these things are a LOT of work. The problem is the number of people with the background, software skills, and interest in contributing is very very small.

Having said that, we will just keep chugging along. I've been very busy with personal stuff this year, but soon should have free time to address my backlog of stuff I personally want to do.

Open Source has the advantage of time as long as people stay at it ;-) OTOH Blender and FreeCAD have used the constraint solver. If they borrow some of UI ideas then we all win too!

2 comments

Licensing notwithstanding, it'd be cool if we could find a way to collaborate. I just learned about solvespace this past year and kudos on your progress.

Spot on the nose about number of people and their endurance tilting at the hard problems. BRL-CAD's been going at it longer than anyone, and the backlog only increases. I do believe open source CAD can get there, but it'll require more coordination.

>> I just learned about solvespace this past year and kudos on your progress.

Thanks!

>> Spot on the nose about number of people and their endurance tilting at the hard problems.

It worries me at times. The creator has moved on but can still be consulted on stuff. The 2nd lead maintainer burned out and nominated me. I see my position as somewhat temporary, but I'm willing to hold it until 1) I get the improvements done that I want to and 2) the right successor comes along - which I worry may never happen ;-)

>> I do believe open source CAD can get there, but it'll require more coordination.

Completely agree. Not sure how to focus all the different efforts though. Talking about it is certainly a start.

I'd be keen to be party to this - off the back of the recent Fusion 360 fiasco i've met a few others interested in this.

Currently researching geometric modelling kernels but collaboration in the community and bringing focus would solve this... even if it's better awareness and marketing so that solvespace folk and brlcad folk (and more!) aren't doubling up.

I'd like to get some kind of OSS CAD group going but I'm not sure how much collaboration we could really do. FreeCAD uses OCCT, Solvespace uses it's own thing, and I think BRL-CAD uses its own thing (several of them). Then there are things like gcad3d https://www.gcad3d.org/ which has its own hand written STEP reader/writer which I'd love to borrow some day.

If there is interest in creating a new geometry kernel I'd be happy to discuss how ours works, what the main challenges are, and what limitations the approach has.

Another topic is licenses. I see FreeCAD uses LibreDWG now but has to jump through some hoops because its GPLv3 (not LGPL) and they are GPL2.x.

It's both a social and technical issue.

For the prior, OpenCAx Association was created specifically to encourage and even sponsor OSS coordination. It's still in formation, but it's purpose has been to help underpin Google Summer of Code collaboration for BRL-CAD, FreeCAD, OpenSCAD, LibreCAD, STEPcode, IfcOpenShell, and most recently KiCAD.

For the latter, creating a shared product or even sharing small subsets of logic is a challenge. BRL-CAD fully invested in and helped establish STEPcode for STEP support, for example, and now it's its own project. Spent more than a million USD developing our STEP support.

BRL-CAD is arguably closest to developing something akin to ACIS or Parasolid as its libraries and converters collectively cover the most features, but not without limitations (e.g., lacking API design, dozen libraries). There's been some talk of integrating OCCT where they have features BRL-CAD lacks, but that's a lot like Creo bundling Parasolid and ACIS with Granite (i.e., lots of representation, conversion, and API considerations). We do have a long-term roadmap but it's all dependent upon what people volunteer and are interested in working on, what we're paid to work on, and what's the best path forward strategically (and from a maintenance perspective).

Right now, we're heavily focused on usability and creating reusable geometry conversion infrastructure (which includes AP242 and a couple dozen other formats) and are making progress getting funding as a multiyear development initiative. Long-term, we're working on the clean API problem developing what we calling the Modular Object-Oriented Solidity Engine (MOOSE).

> we're working on the clean API problem developing what we calling the Modular Object-Oriented Solidity Engine (MOOSE)

MOOSE meet Tovero the horse.

I guess everybody's gone from this post, but for posterity, it might be worth looking more closely at the source for Tovero, since we had to work around the lack of a formal C API when wrapping BRL-CAD with C++. In retrospect, I probably wouldn't even have chosen C++, but just done a C API which would be easier to use with the FFI of many languages like Python, Julia, or Common Lisp--and eliminated the need for SWIG. At least think about putting a C API on top of the OO of MOOSE, if you intend it to be accessed by other languages.

For an intelligent way of putting a C API over a C++ OO design see:

https://www.libfive.com

This project also demonstrates F-rep, a technique for modeling geometry with implicit functions and SDF, and Tovero 2.0 used it as an external dependency for its geometry kernel.

First I have heard of Solvespace so a naive zen-mind question.

Does any system aspire to be a Prolog for 3D? You sketch a variety of views and a system solves, if possible, for a solid geometry representation?

This is, in spirit, what Solvespace does--although like the other reply here says with extruded 2D.

From https://solvespace.com/tech.pl

> The core of any parametric CAD program is its geometric constraint solver.

and

> In SolveSpace, constraints are represented as equations in a symbolic algebra system. In general, these equations are solved numerically, by a modified Newton's method.

and from https://en.wikipedia.org/wiki/Geometric_constraint_solving#M...

> symbolic methods have been applied to this type of constraint solving (see Reference 20 on the Wikipedia link).

And your Zen "beginner mind" question got me to thinking, maybe I could use Prolog itself in my CAD system to directly make 3D shapes, since Prolog has been written in Lisp. Although Prolog does have a number of limitations:

https://en.wikipedia.org/wiki/Prolog#Limitations

>> Does any system aspire to be a Prolog for 3D? You sketch a variety of views and a system solves, if possible, for a solid geometry representation?

I'm not aware of any. Maybe slightly related, my plan for a "hole tool" in Solvespace is to add a hole entity to 2D drawings that will automatically create a featured hole when the sketch is extruded. But that's not actually solving anything in a math sense.