Index of /cobosoda/cobosoda-1.1
Name Last modified Size Description
Parent Directory 16-Apr-2008 15:35 -
LICENSE 06-May-2002 00:45 18k
Makefile 20-Jul-2003 15:01 1k
README 06-May-2002 00:50 2k
config.h 20-Jul-2003 15:55 1k
doc/ 06-May-2002 00:43 -
joint.cc 06-May-2002 00:22 3k
joint.h 06-May-2002 00:22 2k
main.cc 20-Jul-2003 15:17 7k
man/ 06-May-2002 00:25 -
mutate.cc 20-Jul-2003 16:29 14k
primitives/ 06-May-2002 00:23 -
runmutations.pl 06-May-2002 01:00 9k
samples/ 06-May-2002 00:35 -
spring.cc 06-May-2002 00:22 2k
spring.h 06-May-2002 00:24 2k
vector.cc 06-May-2002 00:23 2k
vector.h 06-May-2002 00:23 1k
winners/ 06-May-2002 00:26 -
world.cc.yy 20-Jul-2003 16:28 6k
world.h 06-May-2002 00:22 2k
Cobosoda v1.0
by Justin Day
INTRODUCTION
Cobosoda is a physics simulation modeled after Soda Constructor. It allows you
to build a moving model based on the interconnection of joints by springs and
muscles.
COMPILATION
Cobosoda requires the OpenGL libraries libGL and libGlut as well as the open
source lexical analyzer generator flex. It has only been tested with the GNU
C++ compiler, but others should work.
To build untar the archive and run make. If all goes well you should end up
with two binaries, 'cobosoda' and 'mutate' and one Perl script 'runmutations'.
USING COBOSODA
Cobosoda takes the filename of the world definition file as its only command
line arguement. If missing cobosoda will attempt to load 'world.def' by
default. Once the world definition file is loaded, cobosoda will immediately
begin the simulation. You can interact with the simulation by dragging any
of the models joints with the mouse.
CREATING COBOSODA MODELS
The cobosoda world defintion file contains both the information about the
environment and the definition of any models contained in that environment.
The syntax is as follows:
# This is a comment
keyword value [value]...
The following keywords are recognized:
gravity <value>:
Defines the force of gravity in m/s^2
springk <value>:
Defines the spring constant of each spring in N/m
mass <value>:
Defines the mass of each joint in kg
jointcount <num>:
Defines the number of joint definitions to follow
joint <x> <y> <fixed>:
Creates a joint in x meters to the right, and y meters up. If fixed
is non-zero then the joint will not be subject to external forces.
spring <a> <b>:
Connects joint 'a' to joint 'b' by a spring. The joint number is the
order of creation starting with zero.
muscle <a> <b> <frequency> <amplitude> <offset>:
Connects joint 'a' to joint 'b' by a muscle. Muscles oscillate at the
specified frequency and offset with the specified amplitude. For
example a muscle with frequency of 1, an amplitude of 1, and an offset
of 0 would artificially contract and expand completely once per second.
USING MUTATE AND RUNMUTATIONS
To evolve creatures you must use the mutate and runmutations programs. See the
man page on runmutations for details.
LICENSE
Cobosoda is (C)2002 Justin Day and is released under the GNU Public License.