The physical body of an organism is made up of a collection of the body parts listed below. Some of the body parts listed below are rigid bodies,
which is a body that doesn't allow self deformation. In other words, the distance between any two given points of a rigid body remains constant
regardless of external forces exerted on it. For example, if you have a box and apply a large force to the center of that box, the box will not
dent, cave in on it self, or crack. Instead, the box will move according to the force applied. The other body part types are functional body parts,
such as muscle actuators that produce force, a mouth that can consume food energy, or an odor sensor that senses odor. By combining these body parts in
certain patterns you can build your organism just like you would build a simple machine using
Lego® blocks.
An organism is made up of parts that are added in a tree format. So it has a
root node that has no parent, but every node below that can have any number of
children. Each node has only joint linking it to its parent object (except the
root of course). You add parts by first putting the editor into "Add Parts" mode
by on the command toolbar. Now when
you click on any existing part, or on the empty screen for the root object, a
new part is added to the parent part you selected where you clicked the mouse.
The type of part and the type of joint connecting them is determined by the
default body part type and default joint type drop downs on the command toolbar.
Body Part Types
These are the available body part types.
 |
|
|
|
Connect muscles and springs to attachment points. attachment points can be added to any part and placed
where you need them. Then you can specify which attachments, and their order, when string muscles and springs
onto your organisms body. |
 |
|
|
|
Rectangular box where you can specify length, width, and height. |
 |
|
|
|
A rectangular sensor that can detect when any objects intersect this volume. |
 |
|
|
|
Truncated cone. You can specify the radius of the top and bottom parts and the height. |
 |
|
|
|
Cylinder body part. You can specify the radius and the height. |
 |
|
|
|
Cylindrical sensor that can detect when any other part intersects this volume of space. |
 |
|
|
|
This is a linear hill biomechanical model of muscle. Muscles are used to produce movements in biological organisms.
The muscle is composed of a spring in series with another spring
and dashpot that are in parallel with a force generator. |
 |
|
|
|
This is a linear hill biomechanical model of a stretch receptor. Stretch receptors are dynamic sensors that can detect
length and velocity changes in muscle. The receptor is composed of a spring in series with another spring
and dashpot that are in parallel with a force generator. Output is the spikes per second for Ia and II fibers. |
 |
|
|
|
Specify a general mesh. You can build an object that looks like any part to get more realistic parts than basic
geometric parts. For example, with this you can build a model of the bones in the arm and they would look like the arm
and have collision and dynamics of those volumes as well. |
 |
|
|
|
This part allows your organism to ingest food from food sources in the environment. When the mouth
is close enough to the food source it can transfer food to a stomach as new caloric energy. |
 |
|
|
|
A spring that can be connected to multiple attachment points. You can use this to simulate other types of connectors
like ropes and wire. |
 |
|
|
|
A sensor that can detect gradient odors from odor sources in the environment. This is a very simple odor system that
uses linear gradients. Turbulence and other complexities are not modeled. The strength of the odor at the sensor is determined
by the inverse of the distance from the source, the diffusion coefficient, and the amount of odorant. |
 |
|
|
|
Simple sphere. You can set the radius. |
 |
|
|
|
A damped spring that can connect two points. You can specify the damping coefficient and spring constant. |
 |
|
|
|
This is an energy reservoir for your organism. The mouth can take food from a food source in the environment
and place it in the stomach as caloric energy. As the animal moves energy is used and the animal can track
the amount of energy it still has remaining. |
General Properties
All body parts are derived from the Body Part object and share the properties
of that items. Check below for a list of common properties of a body part.
Click on each body part type for a description of that body part and a list of
any additional properties specific to that body part.
 |
| Figure 1. Properties panel showing properties common to all body part types. |
The location of the body relative to it's own origin. Each body part
has it's own local coordinate system which is the center of the body's parent
body part..
(click here for an example of the difference between local and world coordinates)
Default value: (0,0,0)
Acceptable range: -infinity - infinity
The location of the body relative to the world origin. The world origin
is center of the root body
(click here for an example of the difference between local and world coordinates)
Default value: The distance from the center of the root body part
Acceptable range: -infinity - infinity
The transparency value determines how transparent a body part is. The higher the
transparency value the more transparent a body will be. 1 is fully
transparent and 0 is
fully opaque.
Default value: 0 (opaque)
Acceptable range: 0 - 1
The color of the body. The user can enter a color value using R (Red) G
(Green) B (Blue) values or they can use the color chooser. To use
the color chooser, click on the color property and a dropdown arrow will appear.
.
Click the drop down arrow to open up the color chooser and then select the
desired color.

Default value: Red (255, 0, 0)
Acceptable range: R: 0 - 255, G: 0 - 255, B: 0 - 255;
Enter the density of the body.
Is this body a food source?
Default value: False
Acceptable values: True, False
Only applies to the root body of an organism. If Freeze is set to true
then the root body will remain in place during a simulation while any attached
body parts will be affected by physics. If Freeze is set to false, the
entire organism will be affected by physics.
Default value: False
Acceptable values: True, False
The name of this body
Default value: If it is the first body in an organism, "root".
Otherwise the name is "body_xx" where xx is the number in which the body was
added.
This allows the user to configure this body part to emit an odor. Please
see the page on odor sensors for more information.
The texture file to use for this body (if applicable). Texture files
must be in the .bmp format. When the user selects the texture property a
button with an ellipsis will appear. The user can press ellipsis to open a
file selector dialog box.
Default value: No texture file
Acceptable values: Any .bmp file that has a dimension of any
combination of 128 and 256 (i.e. 128 X 256, 256 X 256, 128 X 128)
Determines if this body is visible within the
simulation. If you set this value to false then this body will still be included
in the simulation and any dynamics related to this object will still be
calculated, but no graphics will be generated for the user. This property does
not effect visibility in the editor. If you wish to make something invisible in
the editor then you will need to use the alpha value described above.
Default value: True
Acceptable values: True, False
The rotation of the body about the X axis. This value can be directly
entered by the user or they can use the mouse by right clicking the center
selection box and dragging the mouse while holding the x-key down.
Default value: Dependent on what part of the parent body this body was added
Acceptable range: -360 - 360
The rotation of the body about the Y axis. This value can be directly
entered by the user or they can use the mouse by right clicking the center
selection box and dragging the mouse while holding the y-key down.
Default value: Dependent on what part of the parent body this body was added
Acceptable range: -360 - 360
The rotation of the body about the Z axis. This value can be directly
entered by the user or they can use the mouse by right clicking the center
selection box and dragging the mouse while holding the z-key down.
Default value: Dependent on what part of the parent body this body was added
Acceptable range: -360 - 360
Food Properties
These properties are only seen if the Food Source property is true. Please see the section on using food sources for more information.
This is how many calories a single piece of food is worth.
Default value: 1 KC/Q (Kilo-Calorie/Quantity of food)
Acceptable range: Any value greater than or equal to 0.
This is how many pieces of food are available in this part.
Default value: 100
Acceptable range: Any value greater than or equal to 0.
How fast the food is replenished.
Default value: 1 Q/s
Acceptable range: Any value greater than or equal to 0.
The maximum amount of food this part can contain. It will not be replenished beyond this amount.
Default value: 10 K
Acceptable range: Any value greater than or equal to 0.
|