The breve Simulation Environment Documentation


Table of Contents

Notes on this documentation
1. Preface
The Origin of breve
About This Documentation
Getting Help With breve
Thanks and Acknowledgments
2. Introduction to breve
What is breve?
Installing and Running the breve Application on Mac OS X
Installing and Running Command-Line breve on Mac OS X, Linux and Windows
Installing and Running breveIDE on Linux and Windows
3. What's New in Version 2.6
New Features in Version 2.6
Important Notes on Plugins in Version 2.6
Upgrading Simulations From Versions of breve Prior to 2.0
4. Writing Simulations in breve
Overview to breve's Simulation Structure: For All Frontend Languages
Writing breve Simulations With Python
Writing breve Simulations With "steve"
Bridging Code Between steve and Python
5. Basic Agent Behaviors
A Simple Mobile Agent
Changing the Appearance of Agents
Moving Agents Around the 3D World
Scheduling Events for a Specific Time
6. Graphics and Sound
Lighting
Shadows and Reflections
Loading Image Files
Displaying Objects as Bitmaps
Texturing Objects
Displaying Objects as "Lightmaps"
Using the "Image" Class
Custom Drawings with the "Drawing" Class
Playing Sound Effects
Sounds Included With breve
7. Interactions Between Agents
Interacting With the Controller Object
Triggering Events When Agents Collide
Finding Neighboring Objects
Finding the Closest Object
Triggering Events Using Notifications
Finding All Objects of a Given Type
Testing Whether an Object Responds to a Method Call
Testing the Type of an Object
8. Physical Simulation
When to Use Physical Simulation
Enabling Physical Simulation
Fast Physical Simulation
Writing Stable Physical Simulations
The Components of Physically Simulated Bodies
Dynamically Creating and Destroying Joints
Using Springs
Using Terrains With Physical Simulation
9. Graphical User Interface
The Simulation Menu and Contextual Menus
Responding to Keyboard Events
Displaying a Dialog Box
Loading ".nib" Files for Customized Interfaces
10. Saving Movies and Snapshots
Saving Movies
Saving Snapshots
11. Archiving, Dearchiving and Networking Objects and Simulations
Methods Called for Objects During Archiving and Dearchiving
Saving and Loading Individual Objects
Saving and Loading the Entire State of a Simulation
12. Networking
Starting a Network Server
Sending and Receiving breve Objects
Using a Web-interface to a breve Simulation
13. Plugins
The Plugin API: Writing Plugins
Building Plugins
Archiving Plugin Data With The data Type
Using Plugins in Simulations
14. The breve Source Code
The basic structure of the breve source code
Adding a frontend language to the breve engine: the breve object API
Embedding breve In Another Program
15. "Push": a Language for Evolutionary Computation Integrated With breve
A Brief Introduction to Push
Creating and Configuring Push Environments
Running and Evolving Push Programs
Genetic Programming With the PushGP Class
Interacting with the Simulated World Using Callback Instructions
16. Index
17. The Built-In breve Class APIs
Abstract
BallJoint
BraitenbergControl
BraitenbergHeavyVehicle
BraitenbergLight
BraitenbergSensor
BraitenbergVehicle
BraitenbergWheel
Camera
Control
Cube
CustomShape
Data
Drawing
FFNetwork
File
FixedJoint
Floor
GADirectedGraph
GADirectedGraphConnection
GADirectedGraphNode
GADirectedGraphParameterObject
GAIndividualTransporter
GeneticAlgorithm
GeneticAlgorithmIndividual
Genome
Graph
Image
Joint
Line
Link
Matrix
Matrix2D
Matrix3D
MatrixImage
MenuItem
MeshShape
Mobile
Movie
MultiBody
NetworkServer
NeuralNetwork
Object
Patch
PatchGrid
PatchToroid
PhysicalControl
PolygonCone
PolygonDisk
PrismaticJoint
PushClusterGP
PushDiversityPool
PushGP
PushGPIndividual
PushInterpreter
PushProgram
PushProgramTransporter
QProgram
QSystem
Real
RevoluteJoint
Shape
Sound
Sphere
Spring
Stationary
Terrain
Tone
Tracer
TurtleDrawing
UniversalJoint
Vector
VectorImage
Wanderer
IRSensor