balls 0 t = 0.00 s
KE 0 J vmax 0 m/s
packing – void –
✓ STEADY STATE
Balls
0.030
0.050
0.0050
1500
0.30
0.30
0.60
Balls spawn as a rain from random (x, y) starting
drop height above the container rim. Mass comes from density:
m = ρ·(4/3)π(d/2)³ (spheres in the 2D plane), so
bigger balls are proportionally heavier. With a size increment > 0,
diameters take the discrete values dmin,
dmin+Δd, … dmax (0 = continuous).
Friction: μslide=√(r₁r₂), μroll=0.05√(r₁r₂).
Container
2.0
2.0
0.0
0
0.60
0.30
10^3.5
max sidebar deflection (m)–
inner width at mid-height (m)–
Red walls are slidable pistons (1 degree of freedom along
their outward normal). Bendable sidebars are elastic chains pinned at
both ends (stiffness in N/m per node, log slider) — use them to study
applied force vs deformation of the ensemble. The container rests on a
fixed ground plane.
Piston force — experiment 2
0
2.0
chamber size (m)–
piston reaction (N)–
Void distribution — experiment 1
packing fraction–
void fraction–
Void fraction per height slab (exact disk–slab areas).
Auto-measured at steady state.
0.50
12
v(r): pick a random particle center, measure the void
fraction inside probe disks of diameter r = Δ, 2Δ, … where
the increment Δ is set in units of the mean ball diameter d̄
(exact circle–circle areas; probes must lie fully inside the bed
region), averaged over all samples. Chart plots v against r/d̄.
Set center particle size to restrict the picked centers to
one disk size class ("for a given size").
Tapping — ensemble statistics
4.0
mean specific volume ῡ–
variance σ²–
DOS shape k / scale θ–
υmin–
compactivity X–
partition function Z(X)–
entropy S−SRCP–
bed height / Δh (m)–
Volume distribution P(υ) per Chang, Chang &
Chao, PRE 114, 015410 (2026): specific volumes υi
from Voronoi cells (wall & surface layers excluded), free volume
v = υ − υmin, Gamma DOS Ω(v),
Z(X) = (X/(X+θ))k, X = θv̄/(kθ−v̄).
k and υmin come from the structural relation
ῡ = υmin + √k·σ
fitted across recorded states (tap at several Γ values for a
good fit); θ from the loosest state. Chart: P(υ)
histogram + factorized-Gamma prediction; below it, ῡ
vs tap number.
Physics
extra damping when nearly
still — helps hard-to-reach steady states
9.81
1.0×
Time step is set automatically from contact stiffness and
the lightest ball. Scroll to zoom, drag to pan, double-click to re-fit.
For runs beyond ~5,000 balls use the Python engine (same physics, C core,
up to 125,000 balls).