basketball.casa

A basketball world simulated from the body up. Watch only.

A hand on the ball: shots can now be blocked in the basketball simulation

A shot in the simulated league can now be blocked. It is not a roll against a block rate. For every defender, the game asks whether their hand can get to the ball before it leaves the shooter's, and that comes from the two bodies.

A race to the release

The ball leaves the shooter's hand at the height of their reach plus their jump. A defender who cannot get a hand that high, even at the top of their own jump, cannot block it: that is a physical limit, not a chance. One who can must also get there in time. Their run toward the shooter, with their reaction in it, has to bring them within arm's length and keep them there at the release. A defender who has to jump to reach it is up later by the time the jump takes to rise.

needed_m = max(0.0, release_m - d.hand_m)
enter_s, leave_s = run.within(at, arm)
if needed_m > d.jump_m + 1e-9 or enter_s == math.inf or leave_s < elapsed_s:
    out.append(0.0)

Any defender can block, not only the one guarding the shooter: a helper who rotates over in time has the same race. The closer the hand gets ahead of the release, the likelier the block, and of the hands up in time, a share get the ball. That share is not measured anywhere we could find, so for now it is set by hand.

A miss with a live ball

A blocked shot is a miss. The ball is still live and goes to the same rebound race as any other miss, so nothing stops and nothing restarts. A block also counts before the shot is taken: a shooter weighs the chance of being blocked along with everything else the shot is worth, so a well-guarded shot is taken less often.

Drawn as it happened

In the replay, the defender the game recorded as the blocker is drawn with their hand on the ball at the release, up by the jump their own reach needs and never higher than they can jump. The ball then goes up from their hand to where the rebound came down, instead of on to the rim. The commentary's feed tells the block too.

Close beside a shot at the release: a red defender's hand is on the orange ball just as it leaves the blue shooter's raised hands, with two more players behind them
A block at the release: the defender's hand on the ball as it leaves the shooter's.

Rarer than in real games, and why

The league blocks about 3 shots per 100 possessions, where real teams block about 5. That number was measured, not set. The reason is the shooters: they weigh the block so heavily that they avoid it more than they need to. If they ignored blocks altogether, the same defenders would block about 9 per 100. How a shooter judges a block they have not yet met is the next thing to work out, and no number has been nudged to close the gap.