The breve Simulation Environment Documentation


Table of Contents

Preface
1. The Origin of breve
2. About This Documentation
3. Getting Help With breve
4. Thanks and Acknowledgments
5. What's New in Version 2.5.1
New Features in Version 2.5.1
Important Notes on Plugins in Version 2.5
Upgrading Simulations From Version 1.x
6. 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
7. "steve" Language Reference
Hello, World
A Simple Example
The Controller Object
Building Classes
Types in "steve"
Expressions
Program Control Structures
Garbage Collection and Memory Management
Directives
8. Defining Basic Agents
A Simple Mobile Agent
Changing the Appearance of Agents
Moving Agents Around the 3D World
Scheduling Events for a Specific Time
9. 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
10. 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
11. 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
12. Graphical User Interface
The Simulation Menu and Contextual Menus
Responding to Keyboard Events
Displaying a Dialog Box
Loading ".nib" Files for Customized Interfaces
13. Saving Movies and Snapshots
Saving Movies
Saving Snapshots
14. Archiving and Dearchiving Objects and Simulations
Saving and Loading Individual Objects
Saving and Loading the Entire State of a Simulation
15. Networking
Starting a Network Server
Sending and Receiving breve Objects
Using a Web-interface to a breve Simulation
16. Plugins
The Plugin API: Writing Plugins
Building Plugins
Archiving Plugin Data With The data Type
Using Plugins in Simulations
17. 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
18. The Python Bridge
Writing Python Code for Inclusion in breve
Importing and Executing Python Code From Steve
Additional Notes
19. The "Push" Language
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
20. The Built-In breve Class APIs
Mobile
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
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
21. Index