29 comments

[ 2.1 ms ] story [ 45.3 ms ] thread
I've used FreeCAD and Fusion 360 for hobby projects. Is BRL-CAD at all similar to those?
Apparently not, it uses mostly textual input. Not sure how it compares feature-wise.
Anyone ever used this? Is it purely a c API, or is there also a GUI?
I used it once and really liked it. There is a geometric modeling editor GUI called `mged`. But in general you define your model based on textual input. BRL-CAD has its own DSL. To get a feeling, have a look on the reference card: http://brlcad.org/w/images/5/52/MGED_Quick_Reference_Card.pd...

I would say that this is not a tool for everyone, but everone who appreciates time-proven UNIX principles & tooling could find a hidden gem here.

could you compare to other common, current CAD-systems? From what I got out of the it, it's focussed on bridging between pure CAD and analysis (e.g. focus on meshes over geometry construction).

Does it have an assembly module?

From what I get from it, it's more similar contemporary (80ies) CAD systems. Once found a manual for EUCLID in my fathers engineering time-stuff and it looked similar.

No, I can't really compare. Back then, I needed to model a not too complicated geometry for some scientific programming applying raytracing to calculate some view factors. BRL-CAD provided all the tools I wanted (raytracing with `nirt` command: http://brlcad.org/w/images/f/fe/Interactive_Raytracing_-_The...) and I could finish that job in quite short time, this was really nice. But I have no wider CAD experience.
Is it a good alternative to OpenSCAD then?
Fun fact: the originator of this software also wrote ping. He was slightly miffed that ping got more attention.
https://en.wikipedia.org/wiki/Mike_Muuss

When I as messing with this program around 1999/2000 I found the tarball was missing some of the example models shown on the website. I emailed asking about them and he wrote me back with the models attached. This must have been shortly before he died :(

> Fun fact: the originator of this software also wrote ping. He was slightly miffed that ping got more attention.

ping got more attention because the original brl cad was only available from a .mil domain and you need to ask for a key to decrypt it. When it was finaly opened it was no more interesting .

Has anyone out there used this or have any thoughts on its functionality?
Sad thing is that in this day and age I have become so accustomed to more modern tools that the stack of sourceforge, svn, mailinglists and irc is to big of a hurdle for me to put in time to contribute. :/

You cannot immediately inspect the code or check out the type of discussion the devs on this project have around code reviews, issues etc...

I'm all in favor of open-source CAD. But BRL-CAD is not very interesting to me. At least from a cursory look at the website I can't really tell what kind of features it has.

I'd like to recommend FreeCAD to the audience, which is a fairly feature-rich CAD Software. FreeCAD is particularly good at parametric modeling. It's mainly C++ with Qt, and enjoys pervasive scriptability through Python. I've also written a Jupyter notebook integration, but it can be a bit tricky to install.

The bad parts: The GUI is very usable, but tends to annoy me quite often. It's also relatively easy to crash. There does not seem to be a clear formal structure behind the overall project, leading to forking and the co-existence of modules that don't play that well with each other. There is no clear path to learn the Software, but the effort is worth it. There are a lot of tutorials, though the ones I found the best where often in German, sometimes English by Germans.

I tried FreeCAD over a year ago and it was so crashy it was useless.

My goto for doing CAD stuff on Linux is currently SolveSpace. It's pretty great except it becomes unusably slow once models get complicated with lots of instancing through step+repeat operations.

Otherwise, its UI is minimal and stays out of the way for the most part, the way it encourages components residing in separate files then be linked into assemblies is very intuitive for a programmer like me, and it's proven to be quite stable.

I hope SolveSpace can get more attention to improve the performance problems, because I often find myself making models too complicated for it to handle before it gets bogged down then I end up halting progress on the project adding another "profile solvespace and optimize whatever is preventing further progress here" entry to my endless TODO list.

Edit:

Here's some context on the kind of SolveSpace limitations I've encountered...

The most recent thing was modeling a heat exchanger made of transversely stacked Coroplast sheets. I modeled the channel details of Coroplast w/a large step+repeat between two layers, then linked that sheet into an assembly twice in the two transverse orientations, those were then each step+repeated with a 1-sheet gap to accommodate one another to form the entire stack. It quickly degenerated into half-hour redraws and I gave up finishing the assembly. It's really too bad, because putting something like that together is otherwise super fast and easy in SolveSpace. I love using it for quick engineering project mockups.

If anyone is looking for a parametric CAD optimization rabbit hole to go down, please geek on on SolveSpace! I'm sure others would appreciate it.

At least for me it's not that bad. Most of the time it does crash is when I did things that probably are not the way they were intended...
Also the new Assembly3 module (which only works with an inofficial fork...) for FreeCAD partly uses the SolveSpace solver code.
>> If anyone is looking for a parametric CAD optimization rabbit hole to go down, please geek on on SolveSpace.

There are actually a few people that know quite a bit and can help people wanting to get involved. It all volunteers so be patient and willing to dig. Go through the open issues, there's a lot of variety.

Another fact I like to mention is that BRL-CAD is really a showcase for the UNIX philosophy (modularity&composition): There are 349 single programs in /usr/brlcad/bin. Man page says "brlcad - BRL-CAD programs for solid modeling, raytracing, graphics, and image processing" and lists 14 main categories of programs (comprising then many commands).
reminds me of early 90s cgi programs from sgi/unix

they too were a collection of programs unlike MS MFC based applications that were a set of dll and a single interface

I haven't scrutinized the implementation of FreeCAD, but the various "workbenches" (if memory serves, I think that's what they were called) feel like they're implemented essentially as separate programs that just share some common frontend piece switching between them.
Yep it maximized reuse and testability. Little shell programs can be tested easily, used at the CLI, and then called from the UI, which just becomes a wrapper. Makes sense to me.
It looks similar and appears to have some of the same challenges to opencascade which has a python module. Pythonocc. http://www.pythonocc.org/ As a heavy CAD user who wants to do some computer aided engineering I've found things like FreeCAD, OpenSCAD, and LibreCAD are great but not necessarily straightforward to work with programmatically. Pythonocc is easier but then lacks all the GUI tools for creating more detailed models.
Looks like a good projects, there aren't many open-source CAD options

However, that's got to be a very hard to google name

BRL-CAD is the relation between the Brazilian and Canadian currency https://finance.yahoo.com/chart/BRLCAD%3DX

BRL-CAD predates Google, and even the internet. Nevertheless, it is the first the result when googling for BRL-CAD, so not hard at all.
Good to see BRL CAD get some attention, it has been around for a while. I wonder if the "trusted by the US Military" line still sells - most people who are CAD users looking for a viable alternative are looking for productivity, features and format/export compatibility. Also, parametric modeling has been around for a long time but BRL CAD still works with primitives - not that this isn't useful, but perhaps parametric modeling is an essential feature of modern CAD.