# From zero labels to 42/42: an unsupervised continual-learning loop on 14 geometric parts

**URL:** <https://forum.thousandbrains.org/t/from-zero-labels-to-42-42-an-unsupervised-continual-learning-loop-on-14-geometric-parts/1192>\
**Category:** Research and Theory\
**Tags:** continual-learning\
**Created:** [September 10, 2026, 5:47am UTC](https://forum.thousandbrains.org/t/from-zero-labels-to-42-42-an-unsupervised-continual-learning-loop-on-14-geometric-parts/1192 "2026-09-10T05:47:36Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![W\_Foxalike](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.thousandbrains.org/w_foxalike/32/1432_2.png) [@W\_Foxalike](https://forum.thousandbrains.org/u/W_Foxalike)\
**Post date:** [September 19, 2026, 8:18am UTC](https://forum.thousandbrains.org/t/from-zero-labels-to-42-42-an-unsupervised-continual-learning-loop-on-14-geometric-parts/1192/4 "2026-09-19T08:18:01Z")

</div>

A correction to how I scored it, and what I did after：

**The correction** : the 42/42 in this post only asked whether the right object model was reported,  
which I have since started calling the identity convention. On the evening the post went up I added  
a pose criterion (first learning happens at the 0-degree rotation, so the rotation applied  
afterwards is the ground truth; symmetric parts are folded through their own symmetry group, with a  
threshold of 30 degrees), and the same graph memory scored only **33/42**. This is not only about  
the score: targeted write-in transforms an observation into the object model’s frame using that  
model’s most likely pose hypothesis, so a wrong pose puts the material in the wrong place - before  
the trusted-band gate, 17% (389/2305) of the written points were more than 15 mm off the part’s true  
surface, and under unbounded scoring they still compete. Looking at identity alone, none of this is  
visible.

 ![image](https://canada1.discourse-cdn.com/flex034/uploads/thousandbrains/original/2X/f/fdcd61994369f7d17fe979371a5c0855a7499317.png)

_Figure: the same 42 episodes, two rulers. At the left is the graph memory used in the post; the  
four steps to the right are the four later protocol revisions._

**What it took** (pose 33/42 → 41/42):

- Fixing a defect of my own: after a write partway through an episode the official feature cache  
goes stale, and my fallback treated a feature it could not read as a complete mismatch (after the  
fix, self-checks passing on the first try went from 4/14 to 12/14, repair rounds from 41 to 5).
- Putting pose into the loop’s own criteria (the self-check looks at pose, checking the pose before  
writing, the pose at repair time given by the protocol), then three corrections on the write path
  - most of the gain comes from these two steps.

- Four other comparisons (the official hypothesis-testing jumps, re-checking the rival object  
model after a write) all stopped at 41/42 and cost more.
- Speed: one write per episode instead of point by point, a resident process, one thread per worker  
process, two places made parallel - verdicts and all 9741 written points stayed identical, and a  
loop went from 83 minutes to 37. Two negative results: ending recognition early cuts off  
pose convergence with it (39/42), and running first learning in parallel with the previous part’s  
sentinel checks changes the tour (the cylinder lost its entire top face).

The remaining loss is the washer at 90 degrees, recognized as the H-tube: not a viewpoint problem  
but the amount of material: 147 nodes in the washer’s object model against 704 in the H-tube’s.

---

_[View the full topic](https://forum.thousandbrains.org/t/from-zero-labels-to-42-42-an-unsupervised-continual-learning-loop-on-14-geometric-parts/1192)._
