# Simulation Validation and Accuracy — 3D PyBullet

## USE WITH CAUTION

One or more checks are not strong enough to call the model fully validated.

18 of 18 trials saved.

## Key metrics

Condition MAPE
18.13%
Median condition error
16.95%
Worst condition error
34.65%
Mean X/Y profile disagreement
1.44°

## Condition-by-condition

Condition | Trials | Physical mean | Simulation mean | Error | Simulation SD
--- | --- | --- | --- | --- | ---
Unsieved Quartz Sand | 3 / 3 | 29.75° | 32.08° | 7.82% | 1.60°
Quartz 125-250 um | 3 / 3 | 31.35° | 36.93° | 17.80% | 2.34°
Quartz 250-500 um | 3 / 3 | 29.68° | 34.74° | 17.07% | 1.07°
Quartz >500 um | 3 / 3 | 30.83° | 36.02° | 16.83% | 0.90°
Glass Beads - 1 Cup | 3 / 3 | 19.09° | 21.88° | 14.59% | 0.42°
Glass Beads - 2 Cups | 3 / 3 | 19.55° | 26.32° | 34.65% | 1.80°

## Interpretation

Internal quality includes repeatability, settling, and orthogonal-profile consistency. External validation compares completed simulation means with the known physical experiment. The physical values do not directly control individual research trial results.

## Model limitation

This version uses true 3D rigid-body dynamics. Glass beads are smooth spherical rigid bodies. Quartz sand uses a rough-sphere DEM proxy with high sliding, rolling, and spinning resistance plus near-zero restitution so coarse particles dissipate impact energy like a granular bed rather than behaving like bouncing rocks. Passing this report validates the frozen model only for this specific test set, not for every granular material or apparatus.