model swarmはシミュレートされる世界を単独で定義しますが、実験には、実験されるオブジェクトだけでなく、観測や測定に使う実験装置も含まれます。Swarmのコンピュータシミュレーションでは、観測オブジェクトはobserver swarmに置かれます。
observer swarmで最も重要なオブジェクトは、調査されるmodel swarmです。model swarmはobserver swarmの1つのコンポーネントで、研究台のペトリ皿の中の小世界のようなものです。他の観測オブジェクトは、次にデータをmodel swarmに入力し(たとえばシミュレーションパラメータをセット)、model swarmからデータを読み出す(エージェントの振る舞いに関する統計を収集)ことができます。
model swarmのセッティングと同様に、observer swarmはオブジェクトのコレクション(計器)、アクティビティのスケジュール、一連の入出力を持ちます。observer swarmのスケジュールのアクティビティは、データコレクションを駆動すること、つまりモデルからこの数を読み出したり、グラフにそれを書いたりすることです。observer swarmへの入力は、たとえば生成するグラフ群に何を選ぶかといった観測ツールのコンフィギュレーションで、一方の出力は観測値です。
グラフィクスモードで実行するとき、observer swarmオブジェクトは、ユーザインターフェイスの仲介としておおいに利用されます。たとえばHeatbugでは、HeatbugObserverSwarmはRasterウィジット、EZGraph、Probeを作成します。これらのオブジェクトはすべてHeatbugModel swarmに接続されてデータを読み込み、さらにグラフィカルインターフェイスオブジェクトへとつながります。これにより、コンピュータの前に座っている人はその世界を観測できるようになるわけです。
モデルを用いた対話的でグラフィカルな実験の良いところは、直感的であることです。しかし、重要な実験では統計値を集めなければなりません。つまり、数多くのランを経て分析用のデータを格納する必要があります。そのためには、グラフィカルなobserver swarmに代え、対話なしで実行されるbatch swarmsを作成すると良いでしょう。batch swarmは、一切の対話をせずに実行されることを目的としたobserver swarmで、美しいグラフィクスを作成するのでなく、その代わりにファイルからデータを読み込んでモデルをコントロールし、分析用のデータを他のファイルへ書き出します。ここで重要なのは、batch swarmで使われるmodel swarmは、グラフィカルなobserver swarmで使うそれとまったく同じモデルだということです。唯一の違いは、observer(バッチまたはグラフィカル)が、そのモデルに接続するツールに何を使うかということだけです。