
BRL-CAD: Open-Source Solid Modeling - brudgers
http://brlcad.org/
======
stonogo
Fun fact: the originator of this software also wrote ping. He was slightly
miffed that ping got more attention.

~~~
justinsaccount
[https://en.wikipedia.org/wiki/Mike_Muuss](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 :(

------
bayesian_horse
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.

~~~
newnewpdro
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.

~~~
bayesian_horse
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...

------
smartmic
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).

~~~
agumonkey
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

~~~
newnewpdro
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.

------
jonititan
It looks similar and appears to have some of the same challenges to
opencascade which has a python module. Pythonocc.
[http://www.pythonocc.org/](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.

------
jwr
I still remember getting BRL-CAD back in 1994 or so. I think they required
mailing a written export control statement for people outside the US.

This software has quite a bit of history.

~~~
jakeogh
#1! April 1983
[https://blog.openhub.net/2007/08/worlds_oldest_source_code_r...](https://blog.openhub.net/2007/08/worlds_oldest_source_code_repositories/)

------
nerdponx
I've used FreeCAD and Fusion 360 for hobby projects. Is BRL-CAD at all similar
to those?

~~~
bayesian_horse
Apparently not, it uses mostly textual input. Not sure how it compares
feature-wise.

------
aiexplorations
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.

------
tehsauce
Anyone ever used this? Is it purely a c API, or is there also a GUI?

~~~
smartmic
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...](http://brlcad.org/w/images/5/52/MGED_Quick_Reference_Card.pdf)

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.

~~~
fock
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.

~~~
smartmic
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...](http://brlcad.org/w/images/f/fe/Interactive_Raytracing_-
_The_nirt_Command.pdf)) and I could finish that job in quite short time, this
was really nice. But I have no wider CAD experience.

------
raverbashing
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](https://finance.yahoo.com/chart/BRLCAD%3DX)

~~~
yiyus
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.

------
Quipunotch104
Has anyone out there used this or have any thoughts on its functionality?

------
splittingTimes
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...

