BRL-CAD is a
constructive solid geometry
Constructive solid geometry (CSG; formerly called computational binary solid geometry) is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combi ...
(CSG)
solid modeling
Solid modeling (or solid modelling) is a consistent set of principles for mathematical and computer modeling of three-dimensional shapes '' (solids)''. Solid modeling is distinguished from related areas of geometric modeling and computer graphi ...
computer-aided design
Computer-aided design (CAD) is the use of computers (or ) to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve c ...
(CAD) system. It includes an interactive
geometry
Geometry (; ) is, with arithmetic, one of the oldest branches of mathematics. It is concerned with properties of space such as the distance, shape, size, and relative position of figures. A mathematician who works in the field of geometry is c ...
editor,
ray tracing support for
graphics rendering
Rendering or image synthesis is the process of generating a photorealistic or non-photorealistic image from a 2D or 3D model by means of a computer program. The resulting image is referred to as the render. Multiple models can be defined ...
and geometric analysis,
computer network
A computer network is a set of computers sharing resources located on or provided by network nodes. The computers use common communication protocols over digital interconnections to communicate with each other. These interconnections are ...
distributed
framebuffer
A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Modern ...
support, scripting, image-processing and signal-processing tools. The entire package is distributed in
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
and
binary
Binary may refer to:
Science and technology Mathematics
* Binary number, a representation of numbers using only two digits (0 and 1)
* Binary function, a function that takes two arguments
* Binary operation, a mathematical operation that t ...
form.
Although BRL-CAD can be used for a variety of engineering and graphics applications, the package's primary purpose continues to be the support of ballistic and electromagnetic analyses. In keeping with the
Unix philosophy
The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. It is based on the experience of leading developers of the Unix operating system. Early Unix dev ...
of developing independent tools to perform single, specific tasks and then linking the tools together in a package, BRL-CAD is basically a collection of libraries, tools, and utilities that work together to create, raytrace, and interrogate geometry and manipulate files and data. In contrast to many other 3D modelling applications, BRL-CAD primarily uses
CSG rather than
boundary representation
In solid modeling and computer-aided design, boundary representation (often abbreviated B-rep or BREP) is a method for representing a 3D shape by defining the limits of its volume. A solid is represented as a collection of connected surface el ...
. This means BRL-CAD can "study physical phenomena such as ballistic penetration and thermal, radiative, neutron, and other types of transport". It does also support boundary representation.
The BRL-CAD libraries are designed primarily for the geometric modeler who also wants to tinker with software and design custom tools. Each library is designed for a specific purpose: creating, editing, and ray tracing geometry, and image handling. The application side of BRL-CAD also offers a number of tools and utilities that are primarily concerned with geometric conversion, interrogation, image format conversion, and command-line-oriented image manipulation.
History
In 1979, the U.S. Army
Ballistic Research Laboratory
The Ballistic Research Laboratory (BRL) was a leading U.S. Army research establishment situated at Aberdeen Proving Ground, Maryland that specialized in ballistics ( interior, exterior, and terminal) as well as vulnerability and lethality analysis. ...
(BRL) – now the United States
Army Research Laboratory
The U.S. Army Combat Capabilities Development Command Army Research Laboratory (DEVCOM ARL) is the U.S. Army's foundational research laboratory. ARL is headquartered at the Adelphi Laboratory Center (ALC) in Adelphi, Maryland. Its largest singl ...
– expressed a need for tools that could assist with the computer simulation and engineering analysis of combat vehicle systems and environments. When no CAD package was found to be adequate for this purpose, BRL software developers – led by
Mike Muuss
Michael John Muuss (October 16, 1958 – November 20, 2000) was the American author of the freeware network tool ping.
Career
A graduate of Johns Hopkins University, Muuss was a senior scientist specializing in geometric solid modeling, ray-tr ...
– began assembling a suite of utilities capable of interactively displaying, editing, and interrogating geometric models. This suite became known as BRL-CAD. Development on BRL-CAD as a package subsequently began in 1983; the first public release was made in 1984. BRL-CAD became an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
project in December 2004.
The BRL-CAD
source code repository
In version control systems, a repository is a data structure that stores metadata for a set of files or directory structure. Depending on whether the version control system in use is distributed, like Git or Mercurial, or centralized, like Subversi ...
is the oldest known public
version-controlled codebase in the world that's still under active development, dating back to 1983-12-16 00:10:31
UTC.
See also
*
PLaSM
PLaSM (Programming Language of Solid Modeling) is an open source scripting languageA. Paoluzzi: Geometric Programming for Computer Aided Design, Wiley, 2003 for solid modeling, a discipline that constitutes the foundation of computer-aided design ...
- Programming Language of Solid Modeling
*
Comparison of CAD editors
The table below provides an overview of notable computer-aided design (CAD) software. It does not judge power, ease of use, or other user-experience aspects. The table does not include software that is still in development ( beta software). For ...
References
External links
*
*
{{CAD software
Computer-aided design software for Linux
Computer-aided design software
Engineering software that uses Qt
Free computer-aided design software
Free software programmed in C
Free software programmed in Tcl
MacOS computer-aided design software
Software that uses Tk (software)
Software using the BSD license