Darwin2k - Version 0.88
-------------------------
Darwin2K is a system for simulation and synthesis (i.e. automated design) for
robotics.  It consists of a set of simulation capabilities and a multiobjective
distributed evolutionary algorithm.  The system started out as my (Chris
Leger's) thesis work at CMU.  More people seem to be interested in simulation
than synthesis, so I've split all the core simulation capabilities into a
standalone package called Dyno, which will probably be distributed separately
at some point. 

  Disclaimer: don't blame me if your genetically-engineered robot
  gets uppity and achieves world domination.  If this should happen, 
  please contact me and we'll write a paper about it.

*** NOTE: Please send me email (xrayjones@users.sourceforge.net)   ***
*** after you've tried out the system, even if you just compile it ***
*** (or try to)--any feedback will be useful to me.  Thanks!       ***

 -- Chris Leger

License information
-------------------
Darwin2K is free software, but it does have some license conditions.  The
parts that I've written (i.e. everything not explicitly stated to have been
authored by anyone; this applies to the bulk of the code) is covered by the
GNU Public License.  The Darwin2K distribution also contains source code by
S. Gottschalk; see src/RAPID/RAPID.h for license information. 

Contributors
------------
- Chris Lee (MIT) provided substantial automake/autoconf fu, XML support, and
d2k-demos, darwin2k-makemod, and darwin2k-config scripts.
- Andrew Wilmott (CMU) provided matrix inversion code.
- The RAPID collision detection library is by S. Gottschalk (UNC).
- Public-domain code for computing inertial properties of polyhedra is
from Brian Mirtich (see src/dyno/mechanism/volInt.cxx)
- RTC was written by Jorgen Pedersen.
- Jeff Smith gave me the OpenGL lighting, keyboard, and mouse code
- Public-domain arcball code for GL scene manipulation adapted from Ken
Shoemake's Graphics Gems IV article, via Victor Ng-Thow-Hing and
Michael Garland.

Mailing lists
-------------
You should consider joining one or both of the follow low-traffic mailing
lists about Darwin2K:
  
  darwin2k-devel@lists.sourceforge.net - Darwin2K development discussions
  darwin2k-users@lists.sourceforge.net - Darwin2K use

To join either of these, go to http://sourceforge.net/mail/?group_id=10967

Documentation
-------------
There are 'manual pages' generated by doc++ at:

  http://darwin2k.sourceforge.net/darwin2k-docs  

Additionally, if you are installing Darwin2K from a tarball, there should be a
'darwin2k-docs/' subdirectory under this directory.  index.html is a table of
contents, and HIER.html and HIERjava.html are class heirarchies in HTML and
Java, respectively.

Several text files are also included in this distribution:
  README - this file; general info
  INSTALL - installation instructions
  TODO - things to fix or add--volunteers welcome!
  BUGS - known bugs; these should also be reflected in the TODO list
  CHANGELOG - a list of changes made to the software
  RELNOTES - features and other useful information about the current release

You might also consider downloading the Darwin2K documentation:
  http://darwin2k.sourceforge.net/tutorial.pdf - a partial tutorial
  http://www.darwin2k.sourceforge.net/thesis.pdf - my thesis, explaining
    Darwin2K's internals, capabilities, and limitations

Software requirements
---------------------
Darwin2K has been tested under Irix6.2 and 6.4, several flavors of
Linux (Red Hat 6.1, 6.2, and 7.0 with gcc 2.91.66), and Solaris.
It should be easily portable to any UNIX platform.  In order to fully
utilize Darwin2K, you will need a few other packages: 

- Either OpenGL, MesaGL, or OpenInventor 
- Xforms (version 0.88, preferably)
- RTC (Real-Time Communications, an IPC library)

Some of the Darwin2K binaries are standalone programs and thus do not need
RTC.  You'll only need RTC if you're going to do automated synthesis, and not
just simulation.  You *can* build some targets that don't have any display
(and will thus not need GL or Xforms), but the only point in this is if (a)
you want to run simulations in batch mode or (b) you're doing automated
synthesis (in which case you'll be running lots of simulation processes).

The RTC home page is:
  http://www.rec.ri.cmu.edu/projects/rtc/

However, for the time being please download the RTC libraries, binaries, and
headers from: 
  http://darwin2k.sourceforge.net/rtc

In addition, if you're going to be running lots of distributed simulation
processed during synthesis runs, your life will be MUCH easier if you have ssh
and perl (5.003 or higher, I think) installed, as Darwin2K includes perl
scripts for firing off multiple processes on other machines via ssh.

If you have questions about Darwin2K, please send email to
darwin2k-users@lists.sourceforge.net.  

-- Chris Leger