The pieces on the previous page were enough for the two geometry solutions. They broke no glass on the held-out queue. Every solution with a fitted model inside it did worse: it either broke glasses or changed nothing. This page answers why. The project found four causes, and it measured each one rather than guessing. Under all four lies one more fact about the glasses, which the last section explains.
Contents#
- The first walk
- Four answers in five are looks
- The winner's curse
- Hands that swept the rims
- The copied push is smaller than the copier's error
- Nothing can tell in advance that a glass will slide
1. The first walk#
The causes are easier to follow once the failure itself is clear, so this section shows the first measured walk of each solution.
A walk is one pass down the held-out queue of fifty tables, until the fifteen arm minutes run out. The examiner describes the queue and the columns. The table below gives the middle of three walks for each solution, before any repair. Read "separated" as tables separated out of tables attempted. "Freed" is the number of glasses that gained room. "Broken" is the number of glasses knocked over.
| Solution | Separated | Freed | Broken | Share |
|---|---|---|---|---|
| one fixed nudge | 10 of 26 | +25 | 0 | 0.627 |
| geometry ranked | 7 of 25 | +19 | 0 | 0.582 |
| imitation | 0 of 10 | 0 | 0 | 0.400 |
| world model | 11 of 32 | +29 | 8 | 0.560 |
| borrowed model, as it downloads | 0 of 15 | −1 | 20 | 0.018 |
| borrowed model, fine-tuned | 0 of 8 | 0 | 8 | 0.103 |
Each link is the results file as it was committed at that walk. The table splits into three groups.
- The geometry solutions broke nothing.
- The world model freed more glasses than any other solution. It still scored below the geometry, because it broke 8 glasses.
- The three solutions that answer from a picture freed no glass between them, and broke 28. The imitation solution broke none, but it did nothing. It said "done" on 9 of its 10 tables while they were still crowded.
So there were two jobs. One was to stop the breaking. The other was to make a learned solution act on a glass at all. The next section begins with the cause that kept the picture solutions from acting.
2. Four answers in five are looks#
The first walk showed three picture solutions that did not push. This section shows that the teacher's own answers explain it.
The imitation solution and the fine-tuned model both learn by copying the teacher, which is the ranked geometry solution. What it copies is a set of 33,721 answers from 900 tables. In the pushing book, the camera hung above the table, so every recorded answer was a push. Here the teacher must drive the arm around to see, so most of its answers are moves to look.
The table below sorts the teacher's answers by kind. Read each row as how many answers of that kind there were, and what share of all answers that is.
| Kind of answer | Answers | Share |
|---|---|---|
| a move to look | 26,693 | 79% |
| a probe: ranging or testing | 5,283 | 16% |
| saying "done" | 888 | 3% |
| a push at the task | 857 | 3% |
The counts are in
demonstrations/collected.json,
where looking_share is 0.792. A probe is a 5 mm shove made to find something
out, either a ranging push or a test push. Only one answer in 39 is a push that
moves a glass toward room.

In the picture, see how thin the bar for pushes is beside the bar for looks.
Copying learns the average answer. Behaviour cloning explains the method. The model is trained to make its answer as close as possible to the teacher's. When the picture does not show clearly which kind of answer the teacher would give, the closest answer on average is the common one. Here the common one is a look. So the model learns to travel well and never to push.
The solutions that copy were changed to deal with this. The imitation chapter and the fine-tuned chapter describe what each one did.
This cause is about copying a teacher. The world model does not copy anybody, yet it broke glasses. The next section answers why.
3. The winner's curse#
The section above explained the picture solutions. The world model fails for a different reason, and the reason is in how it searches.
The world model learns to predict where the glasses will end up after a push. Then it tries a few thousand imagined pushes against that prediction, and makes the one with the best predicted result. The forward model and the cross-entropy method explain both parts.
The prediction is not equally good everywhere. Where the model has seen pushes like this one, it predicts well. Where it has not, it guesses. A guess that is too hopeful looks exactly like a really good push. So the search, which takes the best of thousands, tends to pick the pushes where the model is most wrong in the hopeful direction. This is called the winner's curse. Taking the best of many uncertain guesses picks the largest error, not the best action.
The project measured it on the model's guess of whether a push will topple a glass. On pushes chosen at random, the model caught 56 of 70 topples. On the pushes its own search chose, it caught only 13 of 40. The only change was who chose the pushes. The numbers are in the world model's README. The world model chapter says what was done about it.
Both causes so far are about choosing an answer. The next cause is not about choosing at all. It is about carrying an answer out.
4. Hands that swept the rims#
The two causes above are about learning. This one has nothing to do with learning, and it was the cheapest to remove.
Most of the early broken glasses were not broken by a push. They were broken
while the arm was travelling between places to look.
bench/keeping_clear.py
records this finding at its top.
The borrowed model learned the height at which the teacher travels. It then swept across the table at about that height. But a waypoint names the middle of the hand, and the fingers hang about 70 mm lower. The hand hangs below the waypoint explains this. So the fingers crossed the table at the height of the glasses' rims.
A glass hit high does not slide. It tips. A glass slides only when it is shoved low, through its foot. The pushing book's slide-or-tip limit is worked out for that low height and for no other. So a sweep at rim height knocks over every glass it meets.
The cell's interlock did not stop these sweeps. The one safety check the cell keeps says why. That is how the borrowed model broke 20 glasses in its first walk.
This is a mistake in carrying out an answer, not in choosing one. So more training cannot fix it, but arithmetic can. The clearance check is that arithmetic.
Once the sweeps were stopped, the picture solutions began to push. Their pushes still freed almost nothing. The next section answers why.
5. The copied push is smaller than the copier's error#
This cause only showed once the imitation solution began to push, after the repairs on the next page.
Three distances do not fit together. The table below gives each one. Read the first two rows as facts about the task, and the third as a fact about the copying model.
| Distance | Size |
|---|---|
| how far one of the teacher's pushes moves a glass | about 13 mm |
| how much room a glass needs before the gripper fits | about 76 mm |
| how far off the copying model places a point on a push | about 18 to 20 mm |
The three numbers are stated in driven_home in
bench/keeping_clear.py.
The model's error on pushes it never saw is measured for each of its three
fits in
weights/training.json.
The 76 mm is the pushing book's
room the gripper needs.

In the picture, see that the push being copied is shorter than the copier's own error.
The teacher frees a glass over a run of small pushes. It looks again after each one. So no single teacher push is meant to finish the job. The student, which is the model doing the copying, is asked to copy a motion smaller than its own mistakes. Over twenty tables, the pushes the student made moved their glass a median of zero millimetres. The hand stopped at the near edge of the glass instead of driving past its middle. More training cannot fix this, because the thing to copy is smaller than the noise.
A push is carried on until its glass has room is the repair. It hands the distance to arithmetic.
These four causes are about the solutions. The next section is about the glasses themselves, and it explains why the teacher probes before it pushes.
6. Nothing can tell in advance that a glass will slide#
The causes above all end in a glass on its side. This section shows that no solution can know beforehand which glasses will slide.
The pushing book's tipping rule gives one of three answers for a glass: it will
slide, it will tip, or it depends on the friction.
The number nobody has
explains why the friction is unknown. The rule says "it will slide" only for a
glass whose foot is wider than 107 mm. The widest foot this book's draw ever
makes is 94 mm. So the rule never answers "it will slide" for any glass in this
book. Every glass is either "it will tip" or "it depends".
bench/test_keeping_clear.py
and the
geometry solution's README
state the two widths. The project's
record of changes
checks this over a large sample of drawn glasses. A minority get "it will
tip". All the rest get "it depends".
"It depends" means that a probe is safe and a full push is a gamble. That is why the teacher always probes first and pushes only a glass it has watched slide. The learned solutions skipped that step. They pushed glasses that nothing had tested.
The camera cannot see friction. So no amount of looking or learning can turn "it depends" into "it will slide". Only a test push can. This is the fact under all four causes, and it is why a safe solution has to gather evidence before it pushes.
The next page answers which repairs made the learned solutions safe, which did not, and why.
← Looking, remembering and stopping · What fixed them, and what did not →