Step 0: Verify your OS, Libraries, and Tools

The very first thing you must do before even bothering to get the simulator is to verify that you have all of the appropriate tools and libraries on your system. The simulator has been verified to work on Ubuntu Breezy and Dapper and Fedora Core 3+. Make sure that you have all of the software development tools (g++, make, etc..) and libraries (gtk2lib+, OpenGL, etc...) installed on your system. If you have built any software on your system before you are probably all set. If you want a better graphical experience with the simulator, be sure to install the proper hardware acceleration drivers for OpenGL. This has been verified to work with both nVidia and ATI cards, but as always with linux and graphics acceleration, you milage may vary...

Step 1: Get the Software

There are two methods of obtaining DPRSim. First, you can download a tarball of the latest stable release here: dprsim-1.2.0.tgz (February 26, 2007) or if you are interested in the bleeding edge (and have a CMU CS account), you can use CVS:

export CVS_RHS=ssh
export CVSROOT=username@machinename:/afs/cs/project/claytronics/cvsroot
cvs co src/dprsim_physics

Step 2: Unpack and install the Simulator

If you downloaded the tarball from the website, simply run:

tar xzvf dprsim-1.0.0.tgz
cd dprsim
./install.pl
Now (assuming you have all of the proper libraries installed on your machine), you should have a "target" sub-directory with the simulator, and some sample world and experiment files, after a brief (1-2 minute) compilation.

Step 3: Running the Simulator

To run the simulator you will need an experiment file (.exp) and a world file that it references (.world). Luckily for you, we have provided many examples in the DATA subdirectory. So here is an example of launching the simulator to run the "HexRotate" experiment:

cd target
./dprsimgr -e DATA/hexrotate.exp
That's it, the simulator should now launch and you should see a window with a rendered 3d world of cylindrical Catoms.

The command line is very powerful in DPRSim. The best way to think about it is ordered inline expansion of arguments. So for example you can type:

./dprsimgr -e DATA/hexrotate.exp WORLD=shrek.world
This "-e DATA/hexrotate.exp" part will be expended inline and all of the arguments will be placed on a queue, for example, one fo the arguments in hexrotate.exp is WORLD=smalltower.world" but on the commandline "WORLD=shrek.world" comes after and there for overwrites the previous WORLD setting. This continues etc...