# BRL-CAD Release 5.0 New Libraries

In addition to many capabilities that are new to release 5.0, a substantial portion of the functionality previously existing in `mged`(1) and `librt`(3) has been broken out and reorganized into various of the new libraries, which are summarized below.

- libbn
  General-purpose numerical and mathematical computation. Includes complex-number, matrix, and vector math; support for quaternions, random numbers, and wavelet operations; and more.
- libbu
  General-purpose software engineering utilities. Includes support for
  - magic numbers for data structures
  - bit vectors
  - color specifications
  - memory management with run-time diagnostic capabilities
  - parallel-safe programming
  - red-black (balanced binary) tree data structure
  - multiple units of measurement
  - variable-length strings
  among other capabilities.
- libdm
  Display-manager routines from `mged`(1). Includes support for
  - X windows
  - Open GL
  - UNIX `plot`(5)
  - PostScript
  among others.
- libmultispectral
  Material shader for IR (and other) bands.
- liboptical
  Various material shaders for synthesizing ray-traced rendered images in the visible.
- libpng
  Support for the portable network graphics (PNG) image format. This is the library available from the PNG web site .
- libz
  Data compression. Support for `gzip`(1)/`gunzip`(1), etc. This is the `zlib`(3) library available from the zlib web site .

<`devs@brlcad.org`>
BRL-CAD Release 5.0 Release Notes