Considerable attention is put into verification and validation throughout BRL-CAD. BRL-CAD includes regression tests that will compare runtime behavior against known results and report any deviations from previous results as failures. Generally there should be a compelling motivation to remove any existing functionality, but improvements are encouraged.īRL-CAD has a longstanding heritage of maintaining verifiable, validated, and repeatable results in critical portions of the package, particularly in the ray tracing library. The code adheres to a published change deprecation and obsolescence policy 8 whereby features that have been made publicly available are not removed without appropriate notification. As such, BRL-CAD maintains support for many legacy systems and devices provided that maintaining such support is not a significant burden on new development. Tenets of Good SoftwareīRL-CAD's architecture is designed to be as cross-platform and portable as is realistically and reasonably possible. The ray tracing library uses a suite of other libraries for other basic application functionality. BRL-CAD specifies its own file format (files with the extension. At the heart of BRL-CAD is a multi-representation ray tracing library named LIBRT. To support what has grown into a relatively large software system, BRL-CAD takes advantage of a variety of support libraries that encapsulate and simplify application development. These tools include geometry and image converters, signal and image processing tools, various raytrace applications, geometry manipulators, and much more. The following diagram illustrates how the number of lines of code in BRL-CAD has changed over time: System ArchitectureīRL-CAD is designed based on a UNIX 7 methodology of the command-line services, providing many tools that work in harmony to complete a specific task. We credit all contributors in BRL-CAD's authorship documentation 6. The project has historically received support from numerous organizations within academia, commercial industry, various government agencies, and from various independent contributors. Since the project's inception, more than 200 people have directly contributed to BRL-CAD. And on December 21, 2004, BRL-CAD became an open source project 5.īRL-CAD is a mature code base that has remained active over decades due to continual attention on design and maintainability. Development as a unified package began in 1983. History of the CodeĪs mentioned previously, the initial architecture and design of BRL-CAD began in 1979. You should, however, do some basic research to make sure what you plan to contribute isn't already in the BRL-CAD code base. You can generally focus in on the enhancement or change that interests you without being too concerned with other portions of the code. BRL-CAD has been intentionally designed with layering and modularity in mind. ![]() ![]() BRL-CAD provides all of the necessary third-party dependencies for download and compilation convenience within source distributions but by default will build using system versions of those dependencies if available.Īs with any large system that has been under development for a number of years, there are vast sections of code that may be unfamiliar, uninteresting, or even daunting. The project aims for an It Just Works approach to compilation whereby a functional build of BRL-CAD is possible without needing to install more than a compiler, CMake, and a build environment-for example, GNU Make or Microsoft Visual Studio. Every released version of BRL-CAD is tested and tagged. A separate branch (named STABLE) provides a higher level of quality assurance. Trunk development is generally stable, but cross-platform compilation is not guaranteed. The source code and most project data are stored in a Subversion 4 version control system for change tracking and collaborative development. BRL-CAD uses the CMake 3 build system for compilation and unit testing. POSIX 2 shell scripts are used for deployment integration testing. ![]() There is also some support for, and bindings to, other languages available. The majority of BRL-CAD is written in highly portable C and C++, with some GUI and scripting components written in Tcl/Tk 1. BRL-CAD consists of more than 1 million lines of source code spanning more than 20 foundation libraries and 400 application modules.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |