The odor simulation plugin is based thefilament-based atmospheric dispersion model proposed by Farrell et al. in 2002. That is, odor is simulated as filaments in the air, which represent odor packets of a certain size and concentration. The odor simulation plugin therefore consists of five main components: a wind model, an odor filament propagation model, an odor source model, as well as a wind sensor and an odor sensor model.
Wind can be simulated in different ways:
Note that none of the wind fields takes obstacles (i.e. the robots) that you place withinwebots into account.
Odor filaments motion is based on two mechanisms:
Each filament represents a gaussian-shaped cloud of molecules. When filaments age, this could gets wider, but the concentration drops (to keep the number of molecules in a filament constant). The odor concentration at one point is the sum of the concentrations contributed by all filaments.
The odor simulation plugin supports multiple odor sources to be placed in the environment. Each source can release a different type of chemicals. A source is modeled as a circular area in which filaments appear.

Odor sensors are modeled as sensors which return a noisy concentration measurement at one precise point. The noise is gaussian around the actual concentration. In addition, odor sensors can be configured to return a running average of the actual concentration.
Wind sensors return a 3d vector of the wind measured at one specific point. The vector is a combination of the wind vector interpolated from the wind field, and gaussian noise. The wind sensor can be configured to return a running average of that value.