Swarmアプリケーションは、Swarmのコンセプトにそって構築されます。基本的にSwarm群は複数のSwarmシミュレーションを重ねた積み木です。1つのSwarmはオブジェクトのコレクションとそれらのオブジェクトの上にあるアクティビティのスケジュールを組み合わせたものです。コレクションはSwarmの成分のようなもので、一方、スケジュールはオブジェクトを時間的に進める矢のようなものです。
我々の現在のデモでは、Swarmアプリケーションには2つのSwarmが含まれています。コアとなるのがmodel swarmで、これはシミュレートされるモデルをカプセル化するSwarmです。model Swarmにあるすべてのものはモデル化された世界にあるオブジェクトに相当します。たとえばHeatbugのHeatbugModelSwarmには、Heatbugエージェントのコレクション、世界の物理的特性を表すHeatSpace、Heatbugエージェントのアクション、エージェントの位置を格納するGrid2dが含まれます。
model swarmには、オブジェクトコレクションに加え、モデル上でのアクティビティスケジュールも含まれます。スケジュールはモデル上で経過する時間が及ぼす影響を定義します。heatbugのスケジュールは単純で、HeatSpaceが更新され(熱を世界中に拡散する)、次に各heatbugエージェントが自身を移動するように告げられるだけです。
model Swarmは一連の入力と出力で構成されます。HeatbugModelSwarmへの入力は、世界のサイズ、HeatBugの数、熱の拡散率といったモデルパラメータです。一方、HeatbugModelSwarmの出力は、個々のHeatbug、世界中の熱分布など、モデルの観測値です。