Monotonicity: error at each prefix, v5.5 against the new version

Updated 2026-10-30 18:04; built by sections/monotonic/ (README.txt there).

Does the error always fall as atoms are added? One encode per object and version, every atom kept, decoded at 23–27 prefixes on a 128³ grid; a rise is a step up of more than 0.5 % in Chamfer. parts="tracked-fit", 256 layers, N 64, M 24; the 12 objects of the other pages, one run each. v5.5 is 7ccd2a39. The new version is the v5.5-encoder-fixes branch (ca4ad834): a part's centre stored with its first shape atom (decision 33), plus decision 32 and the changes to _parts.py in that branch. It keeps more parts (jogger 78 → 183, shoe 35 → 162), so this compares the two versions, not decision 33 alone.

Twelve log-log panels of Chamfer against atoms for v5.5 and the new version; rises are ringed, all at 64 atoms or fewer
Chamfer against atoms, log-log, one panel per object. Ringed: rises of more than 0.5 %.

Monotonicity: from 64 atoms up the error falls at every step on all 12 objects in both versions (largest rise above that: +0.07 %). Below it neither version is monotone: 6 rises on 5 objects in v5.5 (worst +30 %, dog bowl), 4 rises on 3 objects in the new version (worst +25 %, mug ace); the rises move rather than go away. Low budgets: the new version is mixed: much better on the dino (surface from 8 atoms, against 32) and the horse, worse on others (flower pot 3.1× at 8 atoms, serving bowl 2.3× at 16, mug 1.6× at 32), and the spring needs 192 atoms for a surface, against 128. From 256 atoms: the two versions stay within 13 % of each other; the shoe and the jogger, where the part count jumps, are 5–13 % worse in the new version at 512–4096 atoms. All atoms: the new version is better on 10 objects (by up to 13 %) and identical on the spring and the knot.

objectpartsfirst surface, atomsrisesworst rise new / v5.5 at 32 atomsat 64at 256at 1024at 4096all atoms
mug10 → 138 → 80 → 0– → –1.641.171.040.950.910.87
mug ace11 → 138 → 81 → 1+2.2 % → +24.8 %1.221.151.030.990.970.94
bowl7 → 98 → 80 → 0– → –1.741.391.031.001.000.99
bowl serving6 → 78 → 80 → 0– → –1.140.980.980.940.900.88
bowl dog7 → 88 → 81 → 2+30.2 % → +11.3 %1.031.000.901.010.990.99
flower pot7 → 138 → 80 → 0– → –1.021.211.041.020.980.97
shoe35 → 1628 → 82 → 0+1.7 % → –1.220.871.031.051.070.94
jogger78 → 1838 → 81 → 0+0.5 % → –1.190.740.901.091.070.90
dino34 → 4932 → 80 → 0– → –0.440.680.961.000.970.93
horse20 → 2112 → 81 → 1+1.3 % → +1.1 %0.870.721.001.011.010.99
spring33 → 33128 → 1920 → 0– → –––0.991.001.001.00
knot12 → 1248 → 480 → 0– → ––1.001.001.001.001.00

Pairs read v5.5 → new. Ratios below 1 favour the new version; – where a version has no surface.

The horse in detail

One encode of the horse per version (parts="tracked-fit", 256 layers, N 64, M 24, every atom), decoded on a 128³ grid at 25 prefixes. Current version: v5.5 (7ccd2a39), 20 parts, 55446 atoms. New: the v5.5-encoder-fixes branch (ca4ad834), where a part's centre is stored with its first shape atom (decision 33), 21 parts, 55587 atoms. Chamfer and p95 in % of the diagonal. One object, one run.

Log-log plots of Chamfer and p95 error against atoms for v5.5 and the new version; the curves coincide from about 256 atoms; each has one small rise below 16 atoms
Error against atoms, log-log. Ringed: the steps where the error rises.
Horse decoded at 8 to 128 atoms: the same atoms in the current order (top, no surface at 8 atoms) and with each part's centre ranked with its first shape atom (bottom), beside the ground truth
The order alone: one encode (21 parts) with the same atoms and values, decoded at 8–128 atoms. Top, the order before decision 33; bottom, each part's centre ranked with its first shape atom, which draws a surface at 8 atoms and the legs earlier. A prototype of the reorder, so its numbers differ slightly from the new version's curve above (4.54 % against 4.35 % at 8 atoms).

Low budgets: the new order gives a surface at 8 atoms (4.35 %, v5.5 has none) and a lower error at every prefix up to 192 atoms (1.15 % against 1.59 % at 64 atoms). Monotonicity: neither version is strictly monotone. v5.5 rises once, 12→16 atoms (+1.3 %); the new version rises once by a similar amount, 8→12 (+1.1 %), then stays flat at 12→16 (+0.01 %) and 24→32 (−0.04 %). Every later step falls in both. High budgets: from 256 atoms the two agree within 0.72 % at every prefix.

atomsChamfer %, v5.5Chamfer %, newnew / v5.5p95 %, v5.5p95 %, new
8no surface4.35354–no surface19.8558
125.770744.403200.76323.705519.9997
165.844424.403630.75323.978619.9924
244.537303.441660.75919.780919.0409
323.959693.440320.86919.774419.0403
482.539162.318500.91312.439411.7793
641.590391.150850.7244.97302.5835
960.660470.614680.9311.79941.7010
1280.550020.512410.9321.48201.3688
1920.411120.406910.9901.17731.1516
2560.321430.321541.0000.87920.8787
3840.244050.244141.0000.67000.6656
5120.197810.199131.0070.54290.5419
7680.146410.146851.0030.40620.4097
10240.115950.116781.0070.31600.3187
15360.087240.087160.9990.23800.2359
20480.071100.071341.0030.19370.1951
30720.054960.055291.0060.15020.1512
40960.045870.046141.0060.12700.1278
61440.036690.036530.9960.10400.1027
81920.031340.031341.0000.09070.0903
122880.026740.026650.9970.08130.0816
163840.024800.024730.9970.07860.0789
245760.023420.023461.0020.07760.0776
554460.02312––0.0772–
55587–0.02295––0.0766