https://brlcad.org/w/api.php?action=feedcontributions&user=128.63.32.62&feedformat=atomBRL-CAD - User contributions [en]2024-03-28T10:33:16ZUser contributionsMediaWiki 1.32.2https://brlcad.org/w/index.php?title=Early_Raytracing_History&diff=4935Early Raytracing History2013-01-24T22:07:40Z<p>128.63.32.62: /* MAGIC */ Update JTCG/ME manuals to use DTIC links</p>
<hr />
<div>Even though the BRL-CAD computer aided design package has a very long development history by the standards of most modern software, it is actually the latest in a line of raytracing systems dating back to the 1960s. Much of that history is documented in technical reports from the Ballistic Research Laboratory (later the U.S. Army Research Laboratory.) A first hand account of Richard Hoyt's earliest work on vehicle shotline calculations by Davidson C. Hardison can be found in [http://www.arl.army.mil/arlreports/1999/ARL-SR-90.pdf ARL-SR-90], starting at the bottom of page 29. Although the report does not explicitly date Hoyt's work, from context it appears to have taken place in the mid to late 1950s. This account details what may very well be the first true raytracing of a geometric model, done quite literally ''by hand!'' Although not computerized, this work appears to be the original foundation on which all of the Ballistic Research Laboratory's subsequent computerized raytracing systems were designed - if anyone knows more about this very early work and whether any records of it still survive, the BRL-CAD developers would be quite interested to see it!<br />
<br />
<br />
= MAGIC =<br />
<br />
Although there were immediately efforts to use available computer systems like ORDVAC to assist with the enormous bookkeeping involved in shotline calculations, the first computerized raytracer at the Ballistic Research Laboratory that appears in technical reports was the MAGIC system, developed by Mathematical Applications Group, Inc. (MAGI) in the mid 1960s. Richard Hoyt is listed as BRL's technical supervisor on the project. MAGI later went on to play a [https://design.osu.edu/carlson/history/tree/magi.html significant role] in the commercial development of CGI. The seminal report detailing the original MAGIC work is "A Geometric Description Technique Suitable for Computer Analysis of Both the Nuclear and Conventional Vulnerability of Armored Military Vehicles," published in August 1967. This report slightly pre-dates even Appel's papers and cites no previous reports as source material for its raytracing techniques (which is suggestive but not conclusive - if anyone knows of earlier reports bearing on this topic we would very much like to know about them.) As it was not approved for public release until much later, its direct impact outside military circles was limited. Also, the primary purpose of this technique from the Army's point of few was analysis rather than realistic images. Nevertheless MAGI-6701 stands out as an important historical document in the field of computer graphics.<br />
<br />
The other significant sources of information known to exist about the first MAGIC system are a set of manuals prepared by the Joint Technical Coordinating Group for Munitions Effectiveness (JTCG/ME) in 1970-71 and the proceedings of the first (and apparently last?) conference held for the users of the MAGIC and SAM-C codes in 1971. <br />
<br />
{| border=1 <br />
!Report Title<br />
!Number<br />
!Date<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/847576.pdf A Geometric Description Technique Suitable for Computer Analysis of Both the Nuclear and Conventional Vulnerability of Armored Military Vehicles]<br />
|MAGI-6701<br />
|August 1967<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/a567888.pdf MAGIC Computer Simulation - Volume I. User Manual]<br />
|61 JTCG/ME-71-7-1<br />
|1970<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/a567889.pdf MAGIC Computer Simulation - Volume II. Analyst Manual Part 1]<br />
|61 JTCG/ME-71-7-2-1<br />
|1971<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/a567890.pdf MAGIC Computer Simulation - Volume II. Analyst Manual Part 2]<br />
|61 JTCG/ME-71-7-2-2<br />
|1971<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/728124.pdf The First Conference of Users of the Magic and SAM-C Programs]<br />
|AD728124<br />
|1971<br />
|}<br />
<br />
(Note: Subsequent reports mention something called the SHOT GENERATOR Computer program that appears to date to the same time period as MAGIC, but I currently have no information about this code, the JTCG/ME reports that document it, or what role it played - it is referenced as an influence in the GIFT code design, so more information (if available) would be interesting.)<br />
<br />
= GIFT =<br />
<br />
Geometric Information for Targets (GIFT) succeeded MAGIC as BRL's primary raytracer. By 1975, the first volume of a GIFT user manual had been published documenting the new system. The second volume followed in 1979.<br />
<br />
{| border=1 <br />
!Report<br />
!Number<br />
!Date<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/b006037.pdf The Gift Code User Manual. Volume I. Introduction and Input Requirements.]<br />
|BRL-1802<br />
|1975<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/a078364.pdf The Gift Code User Manual. Volume II. The Output Options.]<br />
|ARBRL-TR-02189<br />
|1979<br />
|}<br />
<br />
<br />
Unlike MAGIC, which apparently lasted only a couple years, GIFT was in production use at BRL for a long period of time. Consequently, there are a significant number of reports that detail uses of the GIFT system and the development of solid modeling at BRL during the GIFT years.<br />
<br />
{| border=1 <br />
!Report<br />
!Number<br />
!Date<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/a037898.pdf MIFT: GIFT Combinatorial Geometry Input to VCS Code.]<br />
|ADA037898 <br />
|MAR 1977<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/a089818.pdf The Prone Protected Posture]<br />
|AMSAA-TR-284<br />
|August 1980<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/b060185.pdf Combinatorial Geometry Computer Models of Sitting and Standing Crew Personnel ]<br />
|ARBRL-MR-03125<br />
|AUG 1981 <br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/a145001.pdf COM-GEOM Interactive Display Debugger (CIDD)]<br />
|ARBRL-TR-02574<br />
|August 1984<br />
|-<br />
|[http://www.dtic.mil/dtic/tr/fulltext/u2/a161828.pdf A Combinatorial Geometry Target Description of the High Mobility Multipurpose Wheeled Vehicle (HMMWV)]<br />
|BRL-TR-2686<br />
|October 1985<br />
|}<br />
<br />
= BRL-CAD =<br />
<br />
The final transition from GIFT to BRL-CAD was accomplished in (??). A number of reports in this era deal with solid modeling as a technique more than the specifics of BRL-CAD vs. GIFT, and so may reasonably be regarded as applying to both.<br />
<br />
{| border=1 <br />
!Report<br />
!Number<br />
!Date<br />
|-<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
= Other Early Computational Analysis Efforts =<br />
<br />
== The Air Force's MAGIC System ==<br />
<br />
Although it is not a direct ancestor of BRL-CAD, Bell Aerospace was also developing an early computer based analytical system in the late 1960s and early 1970s for the Air Force Flight Dynamics Laboratory called MAGIC:<br />
<br />
{| border=1 <br />
!Report<br />
!Summary<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0685190 MAGIC: An Automated General Purpose System for Structural Analysis. Volume 1.]<br />
|Engineer's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0691893 MAGIC: An Automated General Purpose System for Structural Analysis. Volume 2.]<br />
|User's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0685191 MAGIC: An Automated General Purpose System for Structural Analysis. Volume 3.]<br />
|Programmer's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0726564 MAGIC II: An Automated General Purpose System for Structural Analysis. Volume 1.]<br />
|Engineer's Manual (Addendum)<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0726565 MAGIC II: An Automated General Purpose System for Structural Analysis. Volume 2.]<br />
|User's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0726566 MAGIC II: An Automated General Purpose System for Structural Analysis. Volume 3.]<br />
|Programmer's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0755368 MAGIC III: An Automated General Purpose System for Structural Analysis Volume 1.]<br />
|Engineer's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0755369 MAGIC III: An Automated General Purpose System for Structural Analysis. Volume 2.]<br />
|User's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0755370 MAGIC III: An Automated General Purpose System for Structural Analysis. Volume 3.]<br />
|Programmer's Manual <br />
|}</div>128.63.32.62https://brlcad.org/w/index.php?title=Building_from_SVN&diff=4230Building from SVN2012-07-25T13:22:09Z<p>128.63.32.62: autotools -> CMake</p>
<hr />
<div>== Obtain the sources ==<br />
<br />
BRL-CAD has recently [[Cvs2svn|switched from CVS to the Subversion system]]. In the new system some of the earlier complexities inherent to CVS are gone, no ''-dP'' option is required and developers will not need their passwords or usernames until it is time to commit a change.<br />
<br />
For non-developers:<br />
<pre>svn checkout https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk brlcad</pre><br />
<br />
Note: If you do not yet have an SVN client installed, go to http://subversion.tigris.org for information on obtaining an appropriate SVN client for your platform. Most modern Linux/BSD/UNIX distributions will also have SVN available in their package repositories.<br />
<br />
BRL-CAD also requires the build tool CMake. Again, most Linux/BSD/UNIX distributions will provide a package for CMake - for platforms that do not, CMake is available from http://www.cmake.org<br />
<br />
== Configure the build system ==<br />
cd brlcad<br />
mkdir bulid<br />
cd build<br />
cmake .. (for a default build)<br />
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release (for a release build)<br />
<br />
When building for multiuser file servers it is often useful to make the install_dir reflect the version and/or architecture of the compile. An example would be "-DCMAKE_INSTALL_PREFIX=/usr/brlcad/rel-7.20.2" to install into a /usr/brlcad/rel-7.20.2 directory. (When CMAKE_BUILD_TYPE is set to Release, the installation directory automatically is assigned the appropriate directory and the user doesn't have to do so manually.) This way a single system can have multiple versions of BRL-CAD installed or multiple binary formats for various architectures if installing on a network file system. Symbolic links are then usually added to point to the "current" or "main" version that is preferable to provide so that users only need to add /usr/brlcad/bin to their path. Examples include:<br />
<br />
;By version<br />
:/usr/brlcad/rel-7.8.0 (release 7.8.0)<br />
:/usr/brlcad/rel-7.6.0 (release 7.6.0)<br />
<br />
;By architecture<br />
:/usr/brlcad/ia32 (linux on Pentium)<br />
:/usr/brlcad/ia64 (linux on Itanium)<br />
:/usr/brlcad/x86_64 (linux on Opteron)<br />
<br />
;By version and architecture<br />
:/usr/brlcad/rel-7.8.0/mips32 (IRIX on MIPS in 32-bit mode, release 7.8.0)<br />
:/usr/brlcad/rel-7.8.0/mips64 (IRIX on MIPS in 64-bit mode, release 7.8.0)<br />
:/usr/brlcad/rel-7.8.2/mips32 (IRIX on MIPS in 32-bit mode, release 7.8.2)<br />
<br />
IMPORTANT!!! - Because BRL-CAD has such a long development history, it predates some library naming conventions in modern operating systems. This means an attempt to configure for an install in the "/usr" path on Linux (for example) will stand a good chance of damaging important system libraries - e.g. BRL-CAD libraries put in "/usr/lib" may overwrite system libraries with the same names. Using "/usr/brlcad" or "/opt/brlcad" means all installed files will be safely contained in the brlcad directory.<br />
<br />
== Compile and test your build ==<br />
make<br />
<br />
At this point, you should have a fully installed and working system. You can test things by doing:<br />
<br />
make test<br />
make benchmark<br />
<br />
Both the test and benchmark should report successfully if everything is working correctly. Report any failures to the BRL-CAD [http://sourceforge.net/tracker/?group_id=105292&atid=640802 bug tracker].<br />
<br />
== Install ==<br />
make install<br />
<br />
If you created a prefix as described above for multiple versions or multiple architectures, you should now create your symbolic links for user convenience and consistency. Example where /usr/brlcad/rel-7.8.0/mips32 was used as the install_dir prefix:<br />
<br />
<pre>% ln -s rel-7.8.0/mips32 /usr/brlcad/stable<br />
% ln -s stable/bin /usr/brlcad/bin<br />
% ln -s stable/include /usr/brlcad/include<br />
% ln -s stable/lib /usr/brlcad/lib<br />
% ln -s stable/man /usr/brlcad/man<br />
% ln -s stable/share /usr/brlcad/share<br />
% ls -l /usr/brlcad<br />
total 48<br />
lrwxr-xr-x 1 root wheel 10 12 Apr 09:00 bin -> stable/bin<br />
lrwxr-xr-x 1 root wheel 14 12 Apr 09:00 include -> stable/include<br />
lrwxr-xr-x 1 root wheel 10 12 Apr 09:00 lib -> stable/lib<br />
lrwxr-xr-x 1 root wheel 10 12 Apr 09:00 man -> stable/man<br />
drwxr-xr-x 7 root wheel 238 11 Apr 18:00 rel-7.8.0<br />
lrwxr-xr-x 1 root wheel 12 12 Apr 09:00 share -> stable/share<br />
lrwxr-xr-x 1 root wheel 9 12 Apr 09:00 stable -> rel-7.8.0/mips32</pre><br />
<br />
''Future versions of BRL-CAD may provide this symbolic link operation for you as a CMake configuration option.''<br />
<br />
== Setup environment (optional) ==<br />
At this point, everything should be ready for use. If the default prefix of /usr/brlcad was used or if the corresponding symbolic links were created, users should only need to add /usr/brlcad/bin to their PATH in order to find binaries for the package (optionally setting their MANPATH as well):<br />
<br />
For bash:<br />
<br />
export PATH=/usr/brlcad/bin:$PATH<br />
export MANPATH=/usr/brlcad/man:$MANPATH<br />
<br />
For csh/tcsh:<br />
<br />
set path=( /usr/brlcad/bin $path )<br />
setenv MANPATH /usr/brlcd/man:$MANPATH<br />
rehash<br />
<br />
If users do not want to modify their PATH, they can get by providing the full path to the binaries (e.g. /usr/brlcad/bin/mged). To find BRL-CAD manual pages without setting your MANPATH, use the provided "brlman" binary instead of "man".<br />
<br />
== Test installation ==<br />
If everything went well, there should now be more than 400 command-line applications at your disposal for processing images and geometry. A quick test of functionality (and performance) is to run the BRL-CAD benchmark again, which is installed as the benchmark tool:<br />
<br />
benchmark<br />
<br />
Additionally, you can run the MGED solid modeler:<br />
<br />
mged<br />
<br />
[[Category:Documentation]]</div>128.63.32.62https://brlcad.org/w/index.php?title=Early_Raytracing_History&diff=3213Early Raytracing History2011-11-02T18:53:31Z<p>128.63.32.62: Stub out page for organizing early raytracing historical reports</p>
<hr />
<div>Even though BRL-CAD has a very long development history, it is actually the latest in a line of raytracing systems dating back to the 1960s. Much of that history is documented in technical reports from the Ballistic Research Laboratory.<br />
<br />
<br />
= MAGIC =<br />
<br />
The very first raytracer at BRL was...<br />
<br />
{| border=1 bgcolor=#444444<br />
!Report Title<br />
!Summary<br />
|-<br />
|MAGIC<br />
|Summarize...<br />
|-<br />
|MAGIC<br />
|Summarize...<br />
|-<br />
|}<br />
<br />
<br />
= GIFT =<br />
<br />
{| border=1 bgcolor=#444444<br />
!Report<br />
!Summary<br />
|-<br />
|Gift 1<br />
|Summary<br />
|-<br />
|Gift 2<br />
|Summary<br />
|}<br />
<br />
<br />
<br />
= Other Early Computational Analysis Efforts =<br />
<br />
== The Air Force's MAGIC System ==<br />
<br />
Although it is not a direct ancestor of BRL-CAD, Bell Aerospace was also developing an early computer based analytical system in the late 1960s and early 1970s for the Air Force Flight Dynamics Laboratory called MAGIC:<br />
<br />
{| border=1 bgcolor=#444444<br />
!Report<br />
!Summary<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0685190 MAGIC: An Automated General Purpose System for Structural Analysis. Volume 1.]<br />
|Engineer's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0691893 MAGIC: An Automated General Purpose System for Structural Analysis. Volume 2.]<br />
|User's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0685191 MAGIC: An Automated General Purpose System for Structural Analysis. Volume 3.]<br />
|Programmer's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0726564 MAGIC II: An Automated General Purpose System for Structural Analysis. Volume 1.]<br />
|Engineer's Manual (Addendum)<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0726565 MAGIC II: An Automated General Purpose System for Structural Analysis. Volume 2.]<br />
|User's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0726566 MAGIC II: An Automated General Purpose System for Structural Analysis. Volume 3.]<br />
|Programmer's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0755368 MAGIC III: An Automated General Purpose System for Structural Analysis Volume 1.]<br />
|Engineer's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0755369 MAGIC III: An Automated General Purpose System for Structural Analysis. Volume 2.]<br />
|User's Manual<br />
|-<br />
|[http://www.dtic.mil/docs/citations/AD0755370 MAGIC III: An Automated General Purpose System for Structural Analysis. Volume 3.]<br />
|Programmer's Manual <br />
|}</div>128.63.32.62