Angle of Repose Research Report — 3D Physics
Run the complete digital-twin research workflow
Download the full demo — start with a clean experiment, run all 18 trials, and let the simulator generate the measurements, dataset, validation report, research graphs, and replays. The completed research shown below is also included separately in the download.
Physics is calculated in true 3D by PyBullet. VPython is the visual laboratory. The completed simulation and UCF experiment are compared with independently published experimental benchmarks.
Progress
COMPLETE — all 18 required research trials are saved.
Reliability: USE WITH CAUTION
One or more checks are not strong enough to call the model fully validated.
Graph 1 — Results Compared with Published Experiments
The published values are material- and size-matched comparison points, not universal “true” angles. Angle of repose also changes with particle shape, moisture, surface roughness, and measurement method.
Graph 2 — Percent Error from Published Benchmark
Percent error = |result − published benchmark| ÷ published benchmark × 100. Lower is closer to the published experiment.
Condition summary
| Condition | Trials | Published benchmark | UCF mean | Simulation mean | Simulation error | UCF error | Closer result |
|---|---|---|---|---|---|---|---|
| Unsieved Quartz Sand | 3 / 3 | 32.50° | 29.75° | 32.08° | 1.31% | 8.46% | Simulation |
| Quartz 125-250 µm | 3 / 3 | 34.50° | 31.35° | 36.93° | 7.06% | 9.12% | Simulation |
| Quartz 250-500 µm | 3 / 3 | 34.00° | 29.68° | 34.74° | 2.18% | 12.72% | Simulation |
| Quartz >500 µm | 3 / 3 | 33.00°* | 30.83° | 36.02° | 9.16% | 6.57% | UCF |
| Glass Beads - 1 Cup | 3 / 3 | 22.00° | 19.09° | 21.88° | 0.55% | 13.21% | Simulation |
| Glass Beads - 2 Cups | 3 / 3 | 22.00° | 19.55° | 26.32° | 19.64% | 11.15% | UCF |
*The published 500–1000 µm quartz class is used as the closest available match for the project’s open-ended >500 µm category. The same glass-sphere benchmark is used for one and two cups because sample quantity is not a material property.
Published benchmark sources
Quartz sand: Dasgupta & Manna (2011) reported 34.5° for 125–250 µm, 34.0° for 250–500 µm, 33.0° for 500–1000 µm, and 32.5° for a mixed granular-sand population. Published article and DOI.
Glass spheres: Barabási, Albert & Schiffer (1999) compiled dry 3D glass-sphere repose measurements around 22° (reported uncertainty ±2°); Friedman & Robinson (2002) independently found glass-sphere slope angles were effectively size-independent from 50 to 500 µm. Glass-sphere reference · Size-independence study.
Individual saved trials
| Condition | Trial | Simulation | UCF mean | Difference from UCF mean | Replay |
|---|---|---|---|---|---|
| Unsieved Quartz Sand | 1 | 31.65528° | 29.75° | 6.404301% | Open replay |
| Unsieved Quartz Sand | 2 | 33.843176° | 29.75° | 13.758575% | Open replay |
| Unsieved Quartz Sand | 3 | 30.727132° | 29.75° | 3.284476% | Open replay |
| Quartz 125-250 um | 1 | 39.138323° | 31.353333° | 24.829864% | Open replay |
| Quartz 125-250 um | 2 | 37.180622° | 31.353333° | 18.585867% | Open replay |
| Quartz 125-250 um | 3 | 34.484378° | 31.353333° | 9.98632% | Open replay |
| Quartz 250-500 um | 1 | 35.410635° | 29.676667° | 19.32147% | Open replay |
| Quartz 250-500 um | 2 | 33.509755° | 29.676667° | 12.916167% | Open replay |
| Quartz 250-500 um | 3 | 35.306158° | 29.676667° | 18.969418% | Open replay |
| Quartz >500 um | 1 | 35.460757° | 30.833333° | 15.007859% | Open replay |
| Quartz >500 um | 2 | 37.053941° | 30.833333° | 20.174943% | Open replay |
| Quartz >500 um | 3 | 35.550108° | 30.833333° | 15.297649% | Open replay |
| Glass Beads - 1 Cup | 1 | 22.315053° | 19.093333° | 16.873531% | Open replay |
| Glass Beads - 1 Cup | 2 | 21.84346° | 19.093333° | 14.403594% | Open replay |
| Glass Beads - 1 Cup | 3 | 21.479727° | 19.093333° | 12.498569% | Open replay |
| Glass Beads - 2 Cups | 1 | 24.399376° | 19.546667° | 24.826278% | Open replay |
| Glass Beads - 2 Cups | 2 | 26.583357° | 19.546667° | 35.999437% | Open replay |
| Glass Beads - 2 Cups | 3 | 27.978746° | 19.546667° | 43.138197% | Open replay |
3D model notes
Two cups: twice the 3D material count is used, so extra material can spread in depth instead of being forced upward in a 2D plane.
Unsieved quartz: broad particle sizes are normalized by total sphere volume, not 2D area.
Quartz vs glass: both use stable spherical contact geometry. Quartz uses more, smaller representative grains with moderate sliding/rolling resistance and low restitution to represent dry non-cohesive sand; glass beads remain smoother and more mobile. Each class has one shared contact model. The simulator diagnostics use published behavior bands and do not read or tune against the UCF measurements.
Replay: raw replay data stores X/Y/Z particle coordinates. Browser replay pages show a side projection, while the in-app replay reconstructs the saved 3D positions.