Interactive Swarm Space


Agent swarm individual
  • has specific parameter values, e.g. position and force
  • has specific behaviors and can act on these
Swarm collective of agents / collective entity
  • contains agents
  • can be treated as an agent itself *
  • has a list of swarm parameters
  • has a list of agent parameters, common to all contained agents
  • has a list of swarm behaviors
  • has a list of agent behaviors, shared by all of its agents
  • can randomize the values of its agent or swarm parameters
  • can add and remove agent(s) at runtime (not recommended though)
  • can be scheduled to set the value of its parameters using the ISO event system
Parameter numeric state of an agent
  • this refers to both the parameter type (e.g. "force") as well as the individual parameter value (e.g. "0.75").
  • any parameter names and value ranges can be defined, even social/emotional parameters or character traits
  • All agents of a swarm have the same list of parameter types - but of course with individual parameter values
  • Parameter knows to which agent it belongs
Behavior cause and effect relation between parameters (both intra- and inter-agent)
  • knows three types of parameters:
    • input parameters (cause)
    • internal parameters
    • output parameters (effect)
  • the internal parameters are not always used. They're mostly used as parameter memory or for temporary calculations
  • input/output parameter types are stored in a parameter string (e.g. "force acceleration curiousness"; delimited by spaces)
  • Behavior knows to which agent it belongs
  • has a set of spaces
  • 15 predefined behaviors: Acceleration, Alignment, Mirror, Wrap, Repulsion, Cohesion, Copy, Damping, Evasion, Grid Average, Dist. Field Follow, Randomize, Reset, Spiral, Spline Follow.
Space Parameter space for interaction
  • has n dimensions (e.g. three for position)
  • has n parameters which share most commonly the same parameter type
  • can be accessed by behaviors to write to or to read from
  • can calculate an agents neighborhood relative to the specific parameter type (e.g. what's the closest neighbor or what other agents have the most similar social parameter values)
  • more?

* The swarm class inherits from the agent class and extends it by forwarding certain instructions to its contained agents.