Shepherding simulator

The reactive shepherding library of El-Fiqi et al., IEEE Access 2020 (DOI 10.1109/ACCESS.2020.3037325), compiled unchanged to WebAssembly - running live in your browser
steps/s ready

Space runs and pauses; Step advances one timestep at a time. Settings can be changed at any moment, including mid-run: the Run button becomes "Apply & Run", or press Restart to start over with them. Every run is seeded and exactly repeatable; change the seed for a different episode. The dashed circle is the goal region: the task completes when every sheep is inside it.

Model (the IEEE Access comparison)

Regulated forces, distance-based neighbourhood, circular path planning: the model proposed in the paper.

Scenario

total obstacle area per field area; Exp. 2 of the paper sweeps 0 to 10% in 0.2% steps
radius of each circular obstacle (paper: 1 unit)
parameters (Table 2 of the paper)

Symbols, descriptions and defaults follow Table 2 of the paper (hover a field for its config-file name). The sheepdog sensing range Rβπ defaults to 65 (unlimited in practice), matching the paper-era model. Two obstacle constants are fixed inside the library and not configurable: Wπo = 3 (repulsion from obstacles) and Raπo = 5 (obstacle avoidance range).

Telemetry

timestep
0
sheep in goal region
0 / 100
flock centre to goal
-
flock spread (max from centre)
-

Flock centre to goal distance

run to populate

Legend

sheep (swarm being herded) sheepdog goal region (radius from config) obstacle (sheep repulse; the sky shepherd does not)

Same physics as the Visual Studio / SDL2 build: the library is compiled to WebAssembly, not reimplemented. Trajectories differ from a native run with the same seed only through standard-library random-draw and rounding differences (see docs/web_simulator_validation.md).