# BRL-CAD 6.0 Release Notes

NEW DATABASE FILE FORMAT
  This is probably the most significant change in this release. It introduces a large number of new capabilities in BRL-CAD, including:
  Machine-Independent Data
    The geometry in the new file format is stored in an architecture-independent fashion. This removes the need to convert the geometry file to ASCII representation and back to binary when moving between machines of different architectures (e.g., between Big-Endian and Little-Endian machines).
  Unlimited-Length Object Names
    Names of objects in the geometry database were previously limited to 16 characters. This restriction was burdensome when constructing complex systems. The new database format (and MGED/rt) allows for unlimited-length names for objects. The only limits remaining are usability/human factors (i.e., the user may wish to think twice before using 1024-character names for all objects).
  Object Attributes
    All geometry file objects can now carry arbitrary text data. This information is stored as a series of name-value pairs. For example, it is possible to store an attribute called "modeler", which could indicate the name and organization of the person who created that portion of the geometry. Another attribute might be "density", whose value would be the density of the material from which the object was constructed. Analysis codes can store application-specific data in these attributes and retrieve them at run time. MGED has a GUI control panel for creating and editing object attributes.
  Opaque Binary Objects
    It is now possible to store arbitrary data in a BRL-CAD geometry database object. For example, the entire description from an external CAD system could be stored for reference. Several features of BRL-CAD geometry that require ancillary data can now use these database objects as a data source in addition to being able to use external disk files.
  Reduced Disk Space Requirements
    The new file format is more aggressive about space utilization. Many primitives now occupy significantly less disk space.
  New dbupgrade Utility for Easy Migration
    The dbupgrade command has been created to bring old databases up to the most current version of the file format.
  Hidden Objects
    It is now possible to mark objects in the database as "hidden". These will not be listed in ordinary displays of database content. This allows users to keep objects such as opaque binary objects from cluttering listings.
  Deprecation of Obsolete hf and poly primitives
    The dsp(Displacement Map) primitive is functionally equivalent to the hf and offers substantial performance advantages. The bot (bag of triangles) primitive is likewise a substantial improvement over the existing poly primitive. The dbupgrade utility converts existing hf and poly primitives into dsp and bot primitives, respectively. Both hf and poly primitives are deprecated.
  Introduction of 2D sketch primitive
    The sketch primitive consists of straight lines, circular arcs, and Bezier curves. There is a drawing utility in MGED for creating them.
  Introduction of extrude primitive
    The extrude primitive supports linear extrusion of closed-boundary sketch primitive drawings to create 3D objects.
  New ASCII File Format for New Binary File Format
    This new ASCII format is based upon the Tcl scripting language. It allows more convenient processing and manipulation of the ASCII format.

MGED GEOMETRY EDITOR IMPROVEMENTS
  In addition to supporting both the old and new geometry file formats, there have been numerous improvements. These include:
  New User's Manual
    This is a completely updated tutorial introduction to MGED and modeling with BRL-CAD. Delivered in PDF format and suitable for both online browsing and printing. It includes a complete command reference. Look for it in the MGED menus at:
    "Help->Manual->PDF MGED Tutorial" or
    "/usr/brlcad/html/manuals/mged/VolumeII-Introduction_to_MGED.pdf"
  Dual-Format Capability
    MGED and other BRL-CAD utilities retain the ability to work with geometry files constructed in previous versions of BRL-CAD as well as the new one. Users can upgrade geometry to the new format when they choose. New features implemented in the geometry file may not be available under the old format.
  Accelerators for Complex Shape Construction
    These allows user to automatically generate more complex primitives from existing ones. For example, rcc-cap creates an ellipsoidal top for a right circular cylinder. The list of accelerators includes: rcc-blend, rcc-cap, rcc-tgc, rpp-arch, rpp-cap, rpp-arch, tor-rcc, and sph-part.
  Improved Menu and Interface Layout
    Menus have been arranged in a more convenient layout. Default color selections have been improved.
  Abort on Raytrace Control Panel
    Users now have the option to abort a running raytrace process right from the control panel.
  Extended Primitive Type-In Support
    Two primitive types can now be created from the command prompt. These include:
    - kinematics control (grip)
    - arbitrary regular polyhedron (arbn)
  Extended Primitive Auto Generation
    Several primitive types can now be auto generated using the make command from within MGED. These include:
    - rectangular parallelepipeds (rpp)
    - arbitrary faceted (ars)
    - and arbitrary regular polyhedron (arbn)
    Primitives created with this command take their initial parameters from the view center and size.
  New/Improved Commands
    The following new commands have been implemented:
    - E: Extended options for creating evaluated wireframes.
    - adjust: Alter attributes of an object.
    - attr: Assign or retrieve a named text attribute from an object.
    - autoview: Set view size and center so that all displayed solids are in view.
    - bot_decimate: Perform facet reduction on bot by edge collapse.
    - bot_face_sort: Optimize a bot primitive for faster raytracing.
    - copyeval: Copy and evaluated/transformed primitive.
    - hide: Mark database object as hidden.
    - unhide: Mark database object as visible.
    - lt: Produce a listing like ls, but display output in a Tcl-friendly format.
    - nmg_collapse: Perform facet reduction on NMG by edge collapse.
    - nmg_simplify: Attempt to convert NMG to CSG primitive (ARB, TGC).
    - pathlist: Lists all existing paths that start from the specified combinations and end at a primitive.
    - rtedge: Command line interface to the rtedge program for generating line drawings.
    - shells: Separates an NMG primitive into many objects, 1 object per NMG shell.
    - showmats: List transformation matrices on a path.
    - summary: Provide database statistics.
    - xpush: An extended push that attempts to avoid degenerate conditions in matrix propagation.
  Build Pattern Tool
    This tool facilitates the construction of replicated objects in various rectangular grid and circular patterns. For example: lines of rivet heads, bolt holes, railroad ties, tire tread patterns.

OTHER ENHANCEMENTS
  Opaque Binary Object Support for dsp Primitive and Texture Shaders
    The dsp primitive can accept an opaque binary object as the source for its elevation data. Likewise, texture shaders can now accept opaque binary objects as the source for their image data.
  Improved bot Primitive Raytracing
    The bot primitive supports a multiple bounding-box technique to achieve a substantial speedup during raytracing.
  Improved dsp Primitive Raytracing
    The bot primitive implements an octtree bounding-box technique to achieve a substantial speedup during raytracing.
  ASCII Representation for ebm and vol Primitives
    These two primitives did not have an ASCII representation in previous releases. This omission has been corrected.
  Support for MacOS X
    BRL-CAD again supports the MacOS platform. It requires that the XDarwin or other X11 server be installed for correct operation.
  Improved Pro/Engineer Interface
    The converter for Pro/Engineer has been improved and brought up to date with Pro/Engineer 2001. Improvements include:
    - Oriented and non-oriented triangle support.
    - Unlimited-name-length support.
  FASTGEN4 Name Extensions
    The FASTGEN4 converter fast4-g now supports names longer than 16 characters.
  Improved Hidden-Line Drawing Support
    A new program called rtedge is included for rendering hidden-line drawings through a raytracing technique.
  Software Library for Multiply Referenced Objects
    A C implementation of the Tcl/Tk dual-ported object type is included.
  New Shaders
    Two new shaders flat and invisible are included. The flat shader support per-channel alpha blending.

NEW UTILITIES
  The following are new to release 6.0:
  pixcmp
    This program Compares two pix format images. Although not technically new (it was formerly included in source distributions), pixcmp is now installed.
  rtedge
    This program raytraces models, detects edges, and writes BRL-CAD color image (.pix) files.
  g_diff
    This program compares two geometry database files and reports differences between the two. This allows databases that contain the same objects in different orders to be recognized as being the same.
  dbupgrade
    This program upgrades an old BRL-CAD database to the current BRL-CAD release file format. This allows older geometry to take advantage of space savings and new functionality only available with the newer database formats (e.g., convert a database created with BRL-CAD rel4.5 to one that is fully functional in BRL-CAD rel6.0).

DEVELOPER NOTES
  These items are of interest to developers and others who compile BRL-CAD:
  - Compile-time optimizations that significantly increase raytrace performance (at cost of run-time debugging).
  - Removed dependency on X (and Tk) during source compilation.
  - Consolidated cake build options.
  - MGED db developer command facilities.
  - New and improved regression test suite.
  - Improved ANSI source conformance (still in transition).
  - New general-purpose Bourne-shell-based utility library (part of regression suite).

    Includes support for file locking, semaphores, stdout/stderr/file logging, mail, cvs, packaging, and remote-host querying facilities.

DEPRECATED FEATURES
  lgt
    lgt is being replaced by the new rtedge tool.
  Redirection of I/O in g2asc and asc2g
    To support the new database file format, it was necessary to remove the ability to run g2asc and asc2g on streaming data.
SPECIAL ACKNOWLEDGMENT
  This release is the last to introduce new features developed by Mike Muuss. Mike embodied a unique blend of unparalleled intellect, unquenchable curiosity, and unending enthusiasm to advance the capabilities and performance of everything and everyone he touched. He was the original architect of BRL-CAD and for 20 years guided its development and emergence as one of the most advanced physically based computer-aided design packages in the world. His presence and his abilities will be missed.