1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[]
= "rustsim-crowd"
= "0.0.1"
= "2021"
= "1.94.0"
= "MIT"
= "Microscopic crowd and pedestrian locomotion for rustsim: 2-D and layered 3-D, with Social Force, Collision-Free Speed, Generalized Centrifugal Force, Optimal Steps, and Anticipation Velocity models"
= true
= ["pedestrian", "crowd", "social-force", "simulation", "abm"]
= ["science", "simulation"]
= true
[]
# CUDA arm for rustsim-crowd. Mirrors the workspace convention: cudarc
# is optional and linked with `fallback-latest` +
# `cuda-version-from-build-system`, so the build succeeds without a
# local CUDA toolkit and the driver is dlopen'd at runtime. Modules
# gated on this feature live under `src/cuda/`.
= []
= ["dep:cudarc"]
# Optional multi-core CPU arm via rayon. Enables the `*_par` step
# variants (currently `social_force::step_scratch_par`) that
# parallelise the per-agent accel computation across a rayon thread
# pool. Bit-exact with the serial `step_scratch` because each worker
# writes only to its own `accels[i]` slot from an immutable view of
# the pedestrian slice. Kept off by default to preserve a lean
# single-threaded baseline; enable for CPU deployments above ~5 000
# agents where the serial pair loop becomes the bottleneck.
= ["dep:rayon"]
# Optional SIMD acceleration via `wide`. Adds vectorised pair-force
# helpers (4-wide `f64x4` lanes) for the per-pair inner loop in the
# force-based models. See `docs/rustsim-crowd.md` P1-5 for the
# upstream-decision rationale (chose `wide` over nightly `std::simd`
# and `core::arch` intrinsics: stable today on MSRV 1.94, single
# transitive dep, portable across x86_64 / aarch64 / wasm). Off by
# default; the scalar path remains the production baseline until
# every model has both a SIMD variant and a tolerance-bounded
# regression gate.
= ["dep:wide"]
# Heavy-validation arm: enables long-running calibration / validation
# tests that compare model output against published curves (Weidmann
# v(ρ), Seyfried fundamental diagram). These tests run for tens of
# simulated seconds at multiple densities and are skipped in the
# default CI lane to keep PR turnaround fast. Off by default; runs
# in the workspace's nightly soak / validation lane.
= []
[]
= { = true }
= { = "0.0.1", = "../../../foundation/rustsim-core" }
= { = "0.0.1", = "../../../foundation/rustsim-geometry" }
= { = "0.0.1", = "../../../infrastructure/rustsim-broadphase" }
= { = "0.19", = true, = ["cuda-version-from-build-system", "fallback-latest"] }
= { = "1.10", = true }
= { = "0.7", = true }
[]
= "0.8"
= { = true }
[[]]
= "crowd_scaling_bench"
= false
[[]]
= "crowd_large_scale_bench"
= false