Interactive Swarm Space

The ISO Engines

ISO consists of two basic engines that are usually used independently from one another (compiled and executed separately). There are many reasons for this separation, the most prominent one being, we wanted to keep it as open and versatile as possible. More insights into this openness will be given further down this page. Let's now have a look at these engines:

ISO Flock enables the creation and exploration of virtual multi-agent simulations (aka Artificial Life simulations or simply virtual swarms) and features also a visualisation (OpenGL) of the created swarm(s). Agents within the swarm can have their own set of properties, behaviours and interact with other agents or whole swarms. These properties and behaviors can be freely defined to suit the user's specific vision of his swarm. An ISO Flock can be assigned to output specific data at runtime, e.g. the location of it's individual agents, their directions and velocities at each timestep. This realtime data can be used by other ISO engines or other OSC-compatible software products like MaxMSP, SuperCollider, etc. Vice versa, an ISO Flock can also be controlled at runtime via OSC, e.g. by sending a command to raise the number of agents in a specific swarm, change certain attributes or even change some environment parameters that influence all swarms/agents.

ISO Synth is a realtime synthesis engine that is especially suited for use with ISO Flock, but not exclusively. Since those two engines are completely separated from each other, ISO Synth can of course also be used for other means. If you are familiar with Music N languages and creating music by interconnecting functional units to form a signal chain, you should have no problems understanding the ways of ISO Synth. ISO Synth can of course also be controlled by external software or hardware controllers. ISO Synth has to a low performance footprint and can output massive-multi-channel audio.

How do these engines communicate with each other and with the outside world?

Most internal communication is done via UDP network packets, however with ISS we have also introduced a comprehensive OSC interface. More about these communication strategies can be found in the chapter Networking.

Who uses ISO engines?

Well, you, hopefully ;-). As you have seen, ISO has a very open architecture. So whether you are an artificial life researcher, a computer musician who just needs a music synthesis system, a psychoacoustics reasearcher, a creator of an interactive art installation or a visual artist with a knack for generative art - you all can benefit from the ISO tool set. Knowledge of programming is benefitial. However, we have made available a lot of example implementations and tutorials in order to get you started. The next section ("Where to Start") will explain the installation processes for all kinds of users from the curious casual user to the more experienced developer.

We wish you a lot of fun!

The ISS dev team

January, 2011

Last updated: May 15, 2024