The dice are fair. Here's the proof.
Every craps app gets accused of rigging the dice, and most answer with a shrug. We can answer it twice: the engine that throws the dice has no access to your bets, and we measured 10,000 real throws to confirm the distribution is what a fair pair produces.
Download the full report (PDF)Proof one — the design
The dice cannot see your bets
The usual accusation is that the game watches what you wager and adjusts. In Press It! that is not a policy we promise to follow — it is something the code cannot do.
Rolls come from a physics simulation: two rigid bodies thrown into a walled table with the velocity, spin and angle varied the way a human wrist varies them. Bullet drives it on Android, SceneKit on iOS. Whatever face is up when they stop rolling is your number. Nothing selects a total in advance and animates dice to agree with it.
The physics engine is a sealed module. Your bankroll, your bets and the state of the table are simply not passed into it — there is no wiring through which the throw could learn what you have riding on it, even if it wanted to.
The statistics are held to the same standard. Only genuine physics throws are counted — scripted tutorial rolls and debug rolls are excluded from the tally, so the dashboard describes the real engine and nothing else.
Proof two — the measurement
10,000 rolls, chi-square tested
A physics table could still be biased by its own geometry, so we did not take the design on faith either. An instrumented test drives the production engine headlessly, throws the dice 10,000 times and records every settled face. Those counts are compared against the distribution a genuinely fair pair produces, at a 0.01 significance level.
- Rolls measured
- 10,000Real physics throws, not synthetic data
- Verdict
- FAIRAt α = 0.01
- Totals χ² (2–12)
- 5.95 / 23.21Observed vs critical, 10 degrees of freedom
- Per-die χ² (1–6)
- 4.81 / 15.09Observed vs critical, 5 degrees of freedom
Both statistics come in far under their critical values — the totals at roughly a quarter of the threshold, the per-die at under a third. There were 0 settlement failures across the whole run: not one roll where a die landed cocked or failed to settle. The full methodology, the raw counts and the distribution charts are all in the report.
Don't take our word for it
Our sample is one dataset. Yours is another, and the apps ship the tools to check it: a fairness dashboard plotting your own lifetime roll distribution against the expected curve, for both dice totals and individual faces.
Export your entire roll history as CSV and run whatever analysis you like on it. If our dice were weighted, your own numbers would say so.
Fair dice, honest odds — and a house edge
Fair dice are not the same as a winnable game. Every bet on a craps table carries a house edge, and ours are the real ones: the field still costs 2.78%, any seven still costs 16.67%, and only the odds behind the line pay true.
That is the point of a simulator built this way. You can see exactly what the maths does to a bankroll over a long session, without it being distorted by dice that were never honest in the first place.
