Was BRL-CAD the tool I was looking for?

Was BRL-CAD the tool I was looking for?


It seems like it’s been almost half a year since I wrote TFME4: Tools of the Trade in which I explored the serious options for 3D CAD on GNU/Linux, and didn’t think we had much. I advocated building something on top of Blender, which may still be a decent idea.

But I’m starting to think I gave really short shrift to the US Army Research Lab’s BRL-CAD, which has recently released a new version (7.8.0) with support for Windows and a number of user interface and modeling tool improvements.

BRL-CAD’s design is based on the idea of “Constructive Solid Geometry” (CSG), a CAD representation model which has become less stylish in recent years. The more popular system these days is called “Boundary Representation” (BREP) which is what you see in Blender, for example. This is at least partly because BRL-CAD traces its origins back to 1979 at the US Army Research Laboratory. The program has been under continuous development during all that time, although it was only a few years ago that it was released under a free license.

BRL-CAD is a CSG-based CAD system developed by the US Army Research Lab. (Original caption: “Stryker ICV w/ Slat Armor rendered with ADRT/RISE”)BRL-CAD is a CSG-based CAD system developed by the US Army Research Lab. (Original caption: “Stryker ICV w/ Slat Armor rendered with ADRT/RISE”)

Given these facts, I was quick to dismiss BRL-CAD as incapable of representing a large amount of modern CAD data, and therefore somewhat questionable as a common interchange tool. However, the notes in the BRL-CAD Overview make a pretty strong case for why I should love CSG (and I have to admit that CSG seems more intuitive to me):

Why CSG Modeling?. Although BRL-CAD has been used for a wide variety of engineering and graphics applications, the package’s primary purpose continues to be the support of (1) ballistic and (2) electromagnetic analyses. Accordingly, developers have found CSG modeling to be the best approach in terms of model accuracy, storage efficiency, precision, and speed of computational analysis. . While polygonal and boundary representation (B-rep) modeling often focuses on just the surfaces of objects, CSG modeling focuses on the entire volume and content of objects. This gives BRL-CAD the capability to be “more than skin deep” and build objects with real-world materials, densities, and thicknesses so that analysts can study physical phenomena such as ballistic penetration and thermal, radiative, neutron, and other types of transport..

Wow. I hadn’t thought of that, but it’s obviously true. If you want to model the solid body properties of a system, then you need a model that defines the interior composition. As a system for space development (the main focus of my TFME series), I’m starting to think I should’ve written a more in-depth analysis of how to use BRL-CAD, and I suppose I will have to do that now.

BRL-CAD’s MGED is the main tool for modelling. CSG, because it models the interior of objects, is good for simulation models involving electromagnetic or other mass properties of materials.BRL-CAD’s MGED is the main tool for modelling. CSG, because it models the interior of objects, is good for simulation models involving electromagnetic or other mass properties of materials.
BRL-CAD has definitely been around for awhile! (Original caption: “Mike Muuss working with BRL-CAD on the PDP-11/70”)BRL-CAD has definitely been around for awhile! (Original caption: “Mike Muuss working with BRL-CAD on the PDP-11/70”)

BRL-CAD 7.8.0 is available as a source distribution from Sourceforge, along with pre-compiled binaries for Linux, BSD, Solaris, Irix, OS X, and Windows. I’m downloading a binary now to try out—maybe I’ll actually write a review after I’ve had a chance to play with it. I haven’t fully figured out if this was the tool I was looking for all along, but I am starting to wonder. I’d love to hear from anyone advocating BREP as to whether CSG is really a problem, as well as on the subject of integrating BRL-CAD models with other types of CAD and 3D models (Nurbana looks like an interesting lead, though there isn’t much written about it).

Category: 
Tagging: 

Comments

Terry Hancock's picture

While I'm sure it's possible, that sort of thing is what Blender is specifically designed to do, and by all accounts it is much better equipped.

Despite the complaints about the interface, the program is really very powerful, and once you get used to it, even the interface is not so bad (I'd compare it to using some of the venerable old programmer's editors like vi and emacs -- lots of hotkeys to learn).

In general, I don't learn programs by carefully following tutorials, but Blender is an exception -- I really recommend that you do start by following some of the available tutorials, as it is otherwise easy to get in over your head.

However, I did produce some nice renderings and animations using it awhile back (unfortunately I then proceeded to forget quite a bit of it, so I'll have some re-learning to do next time I try it out).

However, Blender is not so good for technical applications which is what BRL-CAD is good for. I'm not really sure what the status is, but I have even heard some discussions of compatibility tools to get information from one into the other (although they use quite different internal models, so this isn't trivial to do). I hope to look into that further.

(Both are free-licensed, of course).

Terry Hancock's picture

My blog entries at Free Software Magazine may be reprinted with this notice:
Copyright (C)2004-2006 Terry Hancock / License CC-By-SA 2.5+
http://creativecommons.org/licenses/by-sa/2.5
Originally at http://www.FreeSoftwareMagazine.com

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

It looks like the Blender folk were able to incorporate much of the Nurbana code.

http://mediawiki.blender.org/index.php/BlenderDev/NurbsCurvesNurbana

-Sebastien Bailard
reprap.org - self-reproducing 3D printer project

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Terry Hancock,

Am I allowed to translate this blog entry to the dutch language for our www.cad4linux.nl portal. I will put your Copyricht notice under the translated text:
Copyright (C)2004-2006 Terry Hancock / License CC-By-SA 2.5+
http://creativecommons.org/licenses/by-sa/2.5
Originally at http://www.FreeSoftwareMagazine.com

Thanks in advance,

Emiel van Rossum

http://www.cad4linux.nl

Terry Hancock's picture

Yes absolutely, that's one of the main reasons I like to use the By-SA.

I do appreciate being told, because everybody likes props, but it's not actually required by the license.

claymore1977's picture

Greets all, just wanted to give you some detailed info as I work with BRL-CAD daily and am very involved with the development team.

The windows distro of BRL-CAD is nowhere near completely ported. BRL-CAD has its roots in the *nix systems and the distros of those platforms are very very complete. As it stands, BRL-CAD for windows 7.8.0 has the ability to convert ASCII, FASTGEN-4, STL and IGES to BRL-CAD native format (.g). 7.8.0 for Irix, for instance, can convert ASCII, AutoCad DXF, Elysium Neutral Facetted, ELUCID, FASTGEN-4, IGES, Jack, NASTRAN, Pro/E, STL, TANKILL, Unigraphics and Viewpoint to BRL-CAD native format. Details on this reside on the brlcad.org website at: http://ftp.brlcad.org/VolumeIV-Converting_Geometry.pdf

The most refined of the converters is the AutoCad DXF and since most commercial CAD packages, both CSG and BREP, will export to DXF. There is currently efforts in motion to port more of the converters over tothe windows version. Work is also underway to implement NURB support natively in BRL-CAD and allow for conversion of STEP file format to BRL-CAD native format... but its still a year or so away.

As BRL-CAD is an open sourced project, community contributions are always welcomed... including gripes and complaints. The dev team spends a substantial amount of time creating custom scripts and functionality for job specific tasks, so if there is something that doesn’t exist and you need it to, just ask!

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Hi,

I'm looking for open source C++ libraries that convert iges files to another format which enables easier comparison of 2 models. I was wondering if the BRL format might be good option. Also, can the open source C++ libraries included in the BRL-CAD package be used in VC++ on Windows XP.

I need libraries (open source) that I can use - just the converting software won't suffice for my work.

Any help will be greatly appreciated !

Thanks a bunch,

-Karthik

Author information

Terry Hancock's picture

Biography

Terry Hancock is co-owner and technical officer of Anansi Spaceworks. Currently he is working on a free-culture animated series project about space development, called Lunatics as well helping out with the Morevna Project.