# BRL-CAD Overview

## What Is BRL-CAD?

The BRL-CAD Package is a powerful Constructive Solid Geometry (CSG) based solid modeling system. BRL-CAD includes an interactive geometry editor, a ray tracing library, two ray-tracing based lighting models, a generic framebuffer library, a network-distributed image-processing and signal-processing capability, and a large collection of related tools and utilities. The software has been undergoing continuous development since 1979.

BRL-CAD supports a great variety of geometric representations, including an extensive set of traditional CSG primitive solids such as blocks, cones and torii, solids made from closed collections of Uniform B-Spline Surfaces as well as Non-Uniform Rational B-Spline (NURBS) Surfaces, purely faceted geometry, and n-Manifold Geometry (NMG). All geometric objects may be combined using boolean set-theoretic operations such as union, intersection, and subtraction.

Material properties and other attribute properties can be associated with geometry objects. This combining of material properties with geometry is a critical part of the link to applications codes. BRL-CAD supports a rich object-oriented set of extensible interfaces by means of which geometry and attribute data are passed to applications.

BRL-CAD is used at over 800 sites located throughout the world. It is provided in source code form only, and totals more than 280,000 lines of "C" code.

A few of the applications linked to BRL-CAD include:

- Optical Image Generation (including specular/diffuse reflection, refraction, multiple light sources, and articulated animation)
- An array of military vehicle design and evaluation V/L Codes
- Bistatic laser analysis
- Predictive Synthetic Aperture Radar Codes (including codes due to ERIM)
- High-Energy Laser Damage
- High-Power Microwave Damage
- Weights and Moments-of-Inertia
- Neutron Transport Code
- PATRAN [TM] and hence to ADINA, EPIC-2, NASTRAN, etc. for structural/stress analysis
- X-Ray image calculation

## System Requirements

BRL-CAD requires the UNIX(tm) operating system. It has been ported to more than a dozen product lines from workstations to supercomputers, including:

- Alliant FX/8 and FX/80, Alliant FX/2800
- Apple Macintosh II running AUX
- Convex C1
- Cray-1, Cray X-MP, Cray Y-MP, Cray-2
- Digital Equipment VAX
- Gould/Encore PN 6000/9000
- IBM RS/6000
- Intel-based ``PC'' macines running:
  - BSD/OS
  - FreeBSD/OpenBSD/NetBSD
  - Linux
- Pyramid 9820
- Silicon Graphics 3030 through O2/Origin Series
- Sun Microsystems Sun-3 and Sun-4 ``SparcStation''.

Porting to other UNIX systems is very easy, and generally requires only one or two man-days of effort.

Some users report being able to build the package under VAX/VMS(tm) with some expenditure of effort.