basketball.casa

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

You can see who is tired: worn legs, beaten defenders and shots that leave the hands differently

basketball.casa is a basketball league where every game is simulated. Nobody scripts the plays. Each one comes out of who the players are at that moment: how tall, fast and tired they are, what they can see, and what they decide. You can watch any game back exactly as it happened. This update makes more of what the simulation already knows visible on the court, and makes the bodies on it behave more like bodies.

You can see who is tired

Every player in this league has legs that wear out. A player who has sprinted up and down the floor all quarter has used up part of what they had, and the simulation feels it: by the fourth quarter the most worn players in our test games ran about 27% slower and jumped about 35% lower than they did fresh. Until now none of that showed. A player running on empty looked exactly like one who had just come off the bench.

Now it shows in two ways. A tired player is drawn a little dimmer, in proportion to how much of their top speed they have lost. And when the ball is dead or they are standing about, a worn player bends forward, knees bent, the way real players lean on their knees at a free throw. The more worn the legs, the deeper the bend, and you can read it from the normal broadcast camera, not only up close. It is not an animation picked for effect: it is drawn from the same value the simulation used to decide how fast that player could run on the last play.

Who got beaten, and who was contesting

When a player drives past their defender and scores, the line at the top of the screen now says so, and how likely it was: after the shot's own odds, the line adds "after beating" the defender's name and the chance that drive had of getting by them. Some drives get by a slow defender almost every time; others are a long shot that happened to work.

The shooter's card now also names who was counted as contesting the shot, beside how close the nearest of them was. So when a shot goes up under pressure, you can see exactly whose hand was in the way.

Bodies that stay out of each other

A simulated court has a problem a real one never does: nothing stops two players from walking through each other unless the simulation makes sure of it. Ours had kept opponents apart in most situations, but when a team ran up the floor after a rebound or a made basket, players could pass straight through one another, teammates especially.

Now every runner heading up the floor goes around the players in their way, opponents and teammates alike. We also added a check that looks at every pair of players many times a second through whole games. In the test games it watches, the possessions where a player ran through an opponent on the way up the floor fell from about two in three to none, and the possessions where two teammates overlapped fell from about half to under one in eight. Some brushes remain, and the check keeps count of them so that number can only go down.

Every shot leaves the hands a little differently

Each player has their own shooting motion, quicker or slower depending on their body. But until now a player's jumper took the same time to get off every time. Real shooters are not that regular: one shot comes out quick, the next a touch slower when the catch is awkward.

Now every shot draws its own release time around the shooter's usual one. On two-point shots, half of all releases now fall between about a quarter of a second and eight tenths, and a defender closing out gets there a little more often because a shot came out late. Across 120 test games the shots were worth the same as before on average, about 1.2 points each, while the nearest defender at the release stood a few centimetres closer.

Open any game from the front page or the archive and watch the fourth quarter: when the whistle blows, look for who is bent over. Then pause on a made layup and see who got beaten on the way to the rim.