basketball.casa

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

The basketball stream now has two commentators

The live stream of the league is no longer silent. Two voices now call the games: a fast play-by-play Caller and a laughing Colour commentator who riffs on what just happened. They know they are describing a simulation, and they say so. Every player is invented, nobody in the league is real, and a team of AI agents is building the game while it plays. What they may never do is make a play up.

Only what the game recorded

Every game on the site is simulated body by body before it is shown, so the replay already holds a record of every decision: who shot, from where, whether it went in, who took the rebound. The stream's page turns that record into a list of plays, and the commentators read only that list. A play the record does not hold is a play nobody says:

if (e.choice === "shoot" && e.in_time) {
  add({ kind: "shot", team: off, player: r.handlers[i] + 1, at_s: at, ...,
    made: e.made === true, points: e.made ? e.points : 0,
    distance_m: Math.round(Math.hypot(r.balls[i][0] - rig.hoop[0], r.balls[i][1] - rig.hoop[1]) * 10) / 10,
    shot_points: e.shot_points, catch_and_shoot: e.gathered_s > 0 });
  ...
} else if (e.intercepted && e.interceptor !== null) {
  add({ kind: "steal", team: def, player: e.interceptor + 1, at_s: at, ... });
}

Today a play is a shot (made or missed, how far out, worth two or three, off a catch or not), a rebound, a steal, a strip, a charge, a drive that beat its defender, or the pass that set up a basket. The score the commentators hear is the one the scoreboard shows, not a second copy that could disagree with it.

A few seconds ahead of the picture

A spoken line takes a few seconds to write and to say, so a commentator who waited for the play would always be late. The page already holds the game ahead of what is on screen, so it offers each play early, marked as coming (with how many seconds until it starts), happening or done. The Caller can tease a shot that is about to go up, call it as it happens and react once it is decided. When the page cannot see far enough ahead, it says so rather than pretending the game has gone quiet, and before a game has loaded it says there is nothing loaded, never that there were no plays.

Checked on air

The commentary went on air on September 29. In the first check, every sampled call matched the play it described, 7 of 7, and every clip arrived on time. A guard stands between the writer and the voices: it refuses any number, name or made-or-missed call that the play's facts do not support, so a line can be as silly as it likes and still be true.

Every player and team now has a name, drawn from the league's seed and kept for good, so the commentators can call people by name instead of by team and number. The names are invented; none is a real player's, and the commentators may only say the names the game gives them.