sandpypi/Sand.Benchmarks

Sand Benchmarks

This project measures both the dense reference backend and the experimental chunk backend.

Modes

  • dense-baseline
  • chunk-baseline
  • app-sized
  • snapshot-scenes

Main workloads

  • empty
  • sparse_rain
  • dense_pile
  • gas_pocket
  • tool_stress
  • app-sized sand_fill
  • app-sized mixed_pile
  • app-sized paint_stress

Metrics

  • average Step time
  • average BuildRgbaFrame time
  • app-sized FPS-equivalent comparison numbers
  • chunk workload counters (loaded, active, stepped, dirty, field_cells)
  • estimated storage footprint

Run

dotnet run --project Sand.Benchmarks/Sand.Benchmarks.csproj -c Release -- --mode app-sized
dotnet run --project Sand.Benchmarks/Sand.Benchmarks.csproj -c Release -- --mode snapshot-scenes

Promotion gate

  • sparse step speedup must be >= 25%
  • sparse memory reduction at 1024x1024+ must be >= 40%
  • dense 512x512 regression must stay within 10%
  • deterministic snapshots must be reviewed after 120 and 300 steps before storage promotion