scrub the curve · carve it · click to draw an outcome
shifted lognormal
The bell curve is a polite fiction.
A normal distribution says a receiver is as likely to fall eight points short of his projection as to land eight points past it. Football disagrees. A floor is hard — you cannot score minus eleven — but a ceiling is soft: one broken tackle, one blown coverage, and the same player triples his median. Outcomes pile up left and streak out right.
So SimSlate never fits a normal. Every marginal is a right-skewed shifted lognormal, fit to the projection, the volatility, the ceiling, and the measured Boom/Bust probabilities — with the tail capped at realistic NFL maxima. When you pressed Normal above, you were looking at the strawman. Every other shape is the doctrine.
remapping
Every grain keeps its rank.
Each particle is born with one uniform draw u and never lets it go. Its horizontal home is the inverse-CDF of the current distribution at that u — so when the shape changes, the particle doesn't teleport to a random address, it slides to the same percentile of the new curve. The p94 grain stays the p94 grain whether the fit is a tight volume-back or a slate-breaking punt.
u[i] = random() // its percentile, forever
x[i] = invCDFshape(u[i]) // home slides when the shape morphs
y[i] = v[i] · pdfshape(x[i]) // stacked under the density
// morph = rank-preserving remap — the same trick SimSlate's
// latent layer uses to re-rank correlated sims onto fitted marginals
This is not a decorative choice. It is the exact mechanism — rank-remapping onto a fitted marginal — that SimSlate's correlation engine uses to make fifty thousand correlated sims respect every player's own distribution. The hero animation is the algorithm.
The cursor is unprojected through the camera onto the density's plane, so the hole you carve has real depth; a spring pulls every grain home the moment you leave. Damping sits at 0.68 at rest — crisp ink, not comet trails.