2026-10-29 10:58 · fcp v5.31 (CUDA), package untouched (KAPPA patched in the process) ·
scripts/degree_sweep.py → report/degree_sweep.csv (360 rows, 10 objects) ·
Chamfer: mean of both directions, % of the diagonal; >30°: share of decoded-surface samples whose face normal is over
30° from the nearest clean-mesh sample's (unsigned)
tracked-fit (decision 22: tracking, the fit cut, the step rule that puts
the cut on the event) but cut only where a part really breaks (a ledge, a joint), and let a higher height degree follow the
rest. Step 1: the same rule against the degree cap, M and KAPPA (largest condition number of the
Chebyshev basis on a part's layer centres; at 1e2 the degree is at most 11 / 17 / 25 / 35 on 16 / 32 / 64 / 128 layers).
A higher cap lets one fit follow more, so the rule cuts less by itself. The SDF decode reads a part only at its layer
centres, so a higher degree cannot wobble between layers there. Meshes only (exact slices, no slicer noise), 128 layers,
up = +z, decoded on the SDF default at 128. (tracked, no cuts, is in the CSV but not shown: it is the old rule
and loses the joints.)Default row shaded (tracked-fit, κ 1e2, M 24). Green: 2 % better, red: 2 % worse. Parts and
encode time summed over the objects; longest deg: the largest degree any part reached.
| rule | κ | M | objects | parts | longest deg | Chamfer × 256 | Chamfer × 1024 | Chamfer × 6144 | >30° × 256 | >30° × 1024 | >30° × 6144 | encode s |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 10 | 134 | 24 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 3.95 |
| tracked-fit | 100 | 35 | 10 | 132 | 34 | 1.006 | 1.001 | 1.000 | 1.052 | 1.079 | 1.035 | 3.46 |
| tracked-fit | 100 | 50 | 10 | 132 | 34 | 1.006 | 1.001 | 1.000 | 1.052 | 1.079 | 1.035 | 3.42 |
| tracked-fit | 100 | 80 | 10 | 132 | 34 | 1.006 | 1.001 | 1.000 | 1.052 | 1.079 | 1.035 | 3.40 |
| tracked-fit | 1000 | 24 | 10 | 123 | 24 | 1.103 | 1.032 | 1.001 | 1.281 | 1.398 | 1.120 | 3.28 |
| tracked-fit | 1000 | 35 | 10 | 122 | 35 | 1.075 | 1.029 | 1.001 | 1.180 | 1.311 | 1.025 | 4.01 |
| tracked-fit | 1000 | 50 | 10 | 121 | 41 | 1.107 | 1.030 | 1.000 | 1.277 | 1.437 | 1.067 | 3.98 |
| tracked-fit | 1000 | 80 | 10 | 121 | 41 | 1.107 | 1.030 | 1.000 | 1.277 | 1.437 | 1.067 | 3.74 |
| tracked-fit | 10000 | 24 | 10 | 110 | 24 | 1.106 | 1.049 | 1.001 | 1.355 | 1.500 | 1.217 | 3.13 |
| tracked-fit | 10000 | 35 | 10 | 110 | 35 | 1.123 | 1.051 | 1.001 | 1.388 | 1.585 | 1.066 | 4.18 |
| tracked-fit | 10000 | 50 | 10 | 108 | 47 | 1.125 | 1.052 | 1.001 | 1.363 | 1.580 | 1.045 | 4.19 |
| tracked-fit | 10000 | 80 | 10 | 108 | 47 | 1.125 | 1.052 | 1.001 | 1.363 | 1.579 | 1.044 | 4.39 |
scripts/split_2x2.py: tracked-fit's cut decision with the default or a high cap (fewer cuts), and the
stored height basis with the default or a high cap (higher degrees). Ratios to default / default (shaded).
| cut decision | stored basis | objects | parts | Chamfer × 256 | Chamfer × 1024 | Chamfer × 6144 | >30° × 256 | >30° × 1024 | >30° × 6144 |
|---|---|---|---|---|---|---|---|---|---|
| default (κ 1e2, M 24) | default | 10 | 134 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| default (κ 1e2, M 24) | high | 10 | 134 | 1.000 | 1.000 | 0.998 | 1.000 | 1.026 | 0.982 |
| high (κ 1e4, M 50) | default | 10 | 108 | 1.131 | 1.137 | 1.137 | 1.442 | 2.714 | 3.484 |
| high (κ 1e4, M 50) | high | 10 | 108 | 1.125 | 1.052 | 1.001 | 1.363 | 1.580 | 1.045 |
| object | parts cut lo | parts cut hi | Chamfer % lo/lo 256 | Chamfer % lo/lo 6144 | Chamfer % lo/hi 256 | Chamfer % lo/hi 6144 | Chamfer % hi/lo 256 | Chamfer % hi/lo 6144 | Chamfer % hi/hi 256 | Chamfer % hi/hi 6144 |
|---|---|---|---|---|---|---|---|---|---|---|
| battery_stepped | 4 | 4 | 0.25864 | 0.25864 | 0.25864 | 0.25864 | 0.26519 | 0.26319 | 0.26134 | 0.25938 |
| dress | 17 | 13 | 0.35159 | 0.15516 | 0.35159 | 0.15498 | 0.37309 | 0.16067 | 0.37748 | 0.15484 |
| elephant | 27 | 22 | 0.78699 | 0.23325 | 0.78699 | 0.23303 | 0.73605 | 0.24164 | 0.73539 | 0.23336 |
| bowl_of | 5 | 3 | 0.20927 | 0.19665 | 0.20927 | 0.19689 | 0.3102 | 0.27931 | 0.29625 | 0.1972 |
| bowl_gso | 6 | 4 | 0.21864 | 0.19861 | 0.21864 | 0.19864 | 0.25738 | 0.2145 | 0.25407 | 0.1983 |
| mug | 8 | 6 | 0.28218 | 0.22037 | 0.28218 | 0.219 | 0.33674 | 0.23137 | 0.34094 | 0.22004 |
| dino | 25 | 21 | 0.40409 | 0.13395 | 0.40409 | 0.13293 | 0.41297 | 0.14586 | 0.41297 | 0.13404 |
| shoe | 22 | 18 | 0.43926 | 0.19044 | 0.43926 | 0.18977 | 0.58311 | 0.29357 | 0.57616 | 0.19142 |
| open_box | 2 | 2 | 0.25683 | 0.25655 | 0.25683 | 0.25663 | 0.25683 | 0.25655 | 0.25683 | 0.25663 |
| horse | 18 | 15 | 0.37328 | 0.14231 | 0.37328 | 0.14223 | 0.4457 | 0.1738 | 0.44793 | 0.14256 |
scripts/body_track.py elephant → report/elephant_body.txt (per layer: rings in the
slice, area, perimeter, coefficient step; then the coefficient and shape misses of the stretches).
track layers 6-99, cuts at [13, 19, 26, 28, 30, 36, 45, 48, 51, 61, 62, 70, 77, 83, 84, 85, 91, 91, 96]
layer rings area perim step cut
6 8 0.094 1.717 0.000
7 6 0.268 2.516 0.312
8 3 0.835 5.720 0.547
9 1 1.194 7.589 0.401
10 1 1.329 7.485 0.045
11 1 1.432 7.488 0.035
12 1 1.512 7.482 0.024
13 1 1.675 5.627 0.470 <--
14 1 1.699 5.653 0.024
15 1 1.709 5.659 0.019
16 1 1.705 5.669 0.044
17 1 1.680 5.632 0.049
18 1 1.643 5.520 0.045
19 2 1.615 5.304 0.081 <--
20 2 1.589 5.298 0.041
21 1 1.570 5.285 0.028
22 1 1.551 5.264 0.057
23 1 1.530 5.170 0.112
24 1 1.514 5.374 0.052
25 1 1.486 5.584 0.063
26 2 1.380 4.805 0.226 <--
27 2 1.360 4.799 0.014
28 2 1.334 4.909 0.084 <--
29 2 1.288 5.204 0.064
30 4 1.185 4.301 0.249 <--
31 3 1.165 4.256 0.010
32 2 1.145 4.206 0.018
33 1 1.126 4.145 0.010
34 1 1.103 4.073 0.011
35 1 1.078 4.007 0.011
36 1 1.050 3.930 0.028 <--
37 1 1.027 3.844 0.028
38 1 1.002 3.766 0.013
39 1 0.984 3.697 0.020
40 1 0.964 3.645 0.020
41 1 0.948 3.599 0.011
42 1 0.929 3.548 0.022
43 1 0.904 3.502 0.015
44 1 0.882 3.448 0.012
45 2 0.859 3.419 0.022 <--
46 2 0.837 3.323 0.023
47 2 0.815 3.274 0.012
48 3 0.791 3.222 0.009 <--
49 3 0.767 3.170 0.012
50 2 0.782 3.907 0.195
51 1 0.870 4.881 0.287 <--
52 1 0.872 4.852 0.022
53 1 0.865 4.836 0.024
54 1 0.854 4.850 0.021
55 1 0.842 4.861 0.018
56 1 0.834 4.870 0.022
57 1 0.826 4.882 0.019
58 1 0.816 4.912 0.017
59 1 0.809 4.959 0.014
60 1 0.807 4.990 0.026
61 1 0.812 5.051 0.020 <--
62 2 0.820 5.093 0.016 <--
63 2 0.836 5.081 0.025
64 1 0.888 5.181 0.060
65 1 0.901 5.121 0.025
66 1 0.910 5.072 0.020
67 1 0.919 5.045 0.024
68 1 0.921 5.047 0.013
69 1 0.920 5.048 0.010
70 1 0.926 5.019 0.050 <--
71 1 0.932 5.065 0.040
72 1 0.939 5.087 0.011
73 1 0.943 5.121 0.012
74 1 0.942 5.151 0.013
75 1 0.941 5.173 0.014
76 1 0.943 5.173 0.023
77 1 0.946 5.168 0.032 <--
78 1 0.946 5.174 0.022
79 1 0.946 5.201 0.027
80 1 0.943 5.192 0.033
81 1 0.936 5.040 0.083
82 1 0.919 5.018 0.031
83 2 0.887 4.848 0.067 <--
84 3 0.856 4.736 0.052 <--
85 3 0.827 4.469 0.085 <--
86 2 0.795 4.364 0.019
87 1 0.755 4.204 0.054
88 1 0.709 4.090 0.044
89 3 0.650 3.683 0.141
90 1 0.608 3.618 0.030
91 2 0.529 2.862 0.236 <--
92 3 0.498 2.820 0.024
93 1 0.457 2.807 0.025
94 1 0.410 2.772 0.032
95 1 0.363 2.773 0.050
96 4 0.193 1.737 0.236 <--
97 2 0.141 1.512 0.050
98 2 0.088 1.260 0.062
99 5 0.025 0.625 0.109
layers 14- 26 ( 13) kappa 100 deg 10: coef miss max 0.0294 shape rms max 0.0065
layers 14- 26 ( 13) kappa 10000 deg 12: coef miss max 0.0000 shape rms max 0.0000
layers 31- 50 ( 20) kappa 100 deg 13: coef miss max 0.0115 shape rms max 0.0034
layers 31- 50 ( 20) kappa 10000 deg 17: coef miss max 0.0036 shape rms max 0.0014
layers 36- 50 ( 15) kappa 100 deg 11: coef miss max 0.0071 shape rms max 0.0031
layers 36- 50 ( 15) kappa 10000 deg 14: coef miss max 0.0000 shape rms max 0.0000
layers 52- 89 ( 38) kappa 100 deg 19: coef miss max 0.0316 shape rms max 0.0117
layers 52- 89 ( 38) kappa 10000 deg 26: coef miss max 0.0222 shape rms max 0.0075
layers 52- 70 ( 19) kappa 100 deg 13: coef miss max 0.0128 shape rms max 0.0087
layers 52- 70 ( 19) kappa 10000 deg 17: coef miss max 0.0075 shape rms max 0.0024
layers 61- 89 ( 29) kappa 100 deg 16: coef miss max 0.0312 shape rms max 0.0093
layers 61- 89 ( 29) kappa 10000 deg 22: coef miss max 0.0142 shape rms max 0.0053
layers 36- 89 ( 54) kappa 100 deg 23: coef miss max 0.1490 shape rms max 0.0450
layers 36- 89 ( 54) kappa 10000 deg 31: coef miss max 0.1199 shape rms max 0.0386
scripts/shape_test.py: tracked-fit unchanged (tracking, cut search, step rule, tolerance 0.01,
default cap) except that a fit follows its part when every ring is within the tolerance in shape (nearest-point RMS
between the fitted and the sliced ring, both ways) instead of in coefficients. Green / red: shape better / worse than coef.
Renders: shape-fit images in each object's section.
| object | parts coef | parts shape | Chamfer % coef 256 | Chamfer % shape 256 | Chamfer % coef 1024 | Chamfer % shape 1024 | Chamfer % coef 6144 | Chamfer % shape 6144 | >30° % coef 256 | >30° % shape 256 | >30° % coef 1024 | >30° % shape 1024 | >30° % coef 6144 | >30° % shape 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| battery_stepped | 4 | 4 | 0.2586 | 0.2586 | 0.2586 | 0.2586 | 0.2586 | 0.2586 | 3.04 | 3.04 | 3.04 | 3.04 | 3.04 | 3.04 |
| dress | 17 | 16 | 0.3516 | 0.3532 | 0.1852 | 0.1845 | 0.1552 | 0.1549 | 42.65 | 41.98 | 31.49 | 31.42 | 26.85 | 26.41 |
| elephant | 27 | 23 | 0.7870 | 0.7507 | 0.3720 | 0.3667 | 0.2333 | 0.2351 | 59.85 | 52.89 | 42.52 | 39.47 | 16.53 | 17.83 |
| bowl_of | 5 | 5 | 0.2093 | 0.2093 | 0.1976 | 0.1976 | 0.1966 | 0.1966 | 4.80 | 4.80 | 0.30 | 0.30 | 0.32 | 0.32 |
| bowl_gso | 6 | 5 | 0.2186 | 0.2234 | 0.1984 | 0.1999 | 0.1986 | 0.1992 | 7.44 | 8.84 | 1.10 | 2.09 | 0.99 | 1.83 |
| mug | 8 | 8 | 0.2822 | 0.2822 | 0.2249 | 0.2249 | 0.2204 | 0.2204 | 12.68 | 12.68 | 0.96 | 0.96 | 0.52 | 0.52 |
| dino | 25 | 25 | 0.4041 | 0.4041 | 0.1943 | 0.1943 | 0.1340 | 0.1340 | 37.36 | 37.36 | 18.05 | 18.05 | 7.28 | 7.28 |
| shoe | 22 | 17 | 0.4393 | 0.4251 | 0.2511 | 0.2514 | 0.1904 | 0.1908 | 33.74 | 31.68 | 26.47 | 24.52 | 7.57 | 8.35 |
| open_box | 2 | 2 | 0.2568 | 0.2568 | 0.2567 | 0.2567 | 0.2566 | 0.2566 | 1.00 | 1.00 | 1.01 | 1.01 | 1.10 | 1.10 |
| horse | 18 | 17 | 0.3733 | 0.3835 | 0.1851 | 0.1868 | 0.1423 | 0.1425 | 27.84 | 28.10 | 10.95 | 10.53 | 2.89 | 3.14 |
| all (geometric mean of shape / coef) | 134 | 122 | × 0.997 | × 1.000 | × 1.001 | × 0.998 | × 1.046 | × 1.089 |
scripts/fit_audit.py: per part, the worst shape distance over its layers between the sliced ring
and the ring given back at the layer centre, in layer heights (0.0172 canonical; the cut tolerance 0.01 is 0.58 of
one). Counts of parts by their worst miss. "full fit": all degrees of the part's height basis (what the cut test judges).
Images: per object and cut test, the four parts that miss most: equivalent radius sqrt(area / pi) along the part (sliced,
full fit, 6144, 1024 atoms) and the miss per layer.
| object | cut test | parts | 6144: ≤ 0.1 | 6144: 0.1-0.25 | 6144: 0.25-0.5 | 6144: > 0.5 | 6144 worst | 1024: ≤ 0.1 | 1024: 0.1-0.25 | 1024: 0.25-0.5 | 1024: > 0.5 | 1024 worst | full fit worst |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| battery_stepped | coef | 4 | 4 | 0 | 0 | 0 | 0.00 | 4 | 0 | 0 | 0 | 0.00 | 0.00 |
| battery_stepped | shape | 4 | 4 | 0 | 0 | 0 | 0.00 | 4 | 0 | 0 | 0 | 0.00 | 0.00 |
| dress | coef | 17 | 9 | 6 | 2 | 0 | 0.30 | 0 | 0 | 3 | 14 | 1.18 | 0.31 |
| dress | shape | 16 | 7 | 7 | 2 | 0 | 0.30 | 0 | 0 | 2 | 14 | 1.46 | 0.31 |
| elephant | coef | 27 | 21 | 6 | 0 | 0 | 0.20 | 0 | 0 | 3 | 24 | 1.97 | 0.18 |
| elephant | shape | 23 | 18 | 3 | 1 | 1 | 0.55 | 0 | 0 | 3 | 20 | 2.34 | 0.54 |
| bowl_of | coef | 5 | 5 | 0 | 0 | 0 | 0.07 | 3 | 2 | 0 | 0 | 0.16 | 0.07 |
| bowl_of | shape | 5 | 5 | 0 | 0 | 0 | 0.07 | 3 | 2 | 0 | 0 | 0.16 | 0.07 |
| bowl_gso | coef | 6 | 6 | 0 | 0 | 0 | 0.10 | 2 | 3 | 1 | 0 | 0.36 | 0.10 |
| bowl_gso | shape | 5 | 4 | 0 | 0 | 1 | 0.52 | 1 | 2 | 1 | 1 | 0.52 | 0.52 |
| mug | coef | 8 | 7 | 1 | 0 | 0 | 0.15 | 0 | 2 | 6 | 0 | 0.43 | 0.15 |
| mug | shape | 8 | 7 | 1 | 0 | 0 | 0.15 | 0 | 2 | 6 | 0 | 0.43 | 0.15 |
| dino | coef | 25 | 18 | 6 | 1 | 0 | 0.38 | 0 | 4 | 5 | 16 | 1.27 | 0.38 |
| dino | shape | 25 | 18 | 6 | 1 | 0 | 0.38 | 0 | 4 | 5 | 16 | 1.27 | 0.38 |
| shoe | coef | 22 | 8 | 14 | 0 | 0 | 0.25 | 0 | 0 | 0 | 22 | 2.17 | 0.23 |
| shoe | shape | 17 | 5 | 8 | 3 | 1 | 0.51 | 0 | 0 | 0 | 17 | 2.37 | 0.51 |
| open_box | coef | 2 | 2 | 0 | 0 | 0 | 0.01 | 2 | 0 | 0 | 0 | 0.02 | 0.01 |
| open_box | shape | 2 | 2 | 0 | 0 | 0 | 0.01 | 2 | 0 | 0 | 0 | 0.02 | 0.01 |
| horse | coef | 18 | 13 | 5 | 0 | 0 | 0.20 | 0 | 0 | 5 | 13 | 1.13 | 0.19 |
| horse | shape | 17 | 11 | 6 | 0 | 0 | 0.22 | 0 | 0 | 5 | 12 | 1.19 | 0.22 |
scripts/part_profile.py dino 1e4 50 and dino 1e2 24: the largest part, the sliced rings at
the layer centres (dots) and the stored polynomial drawn continuously at 1024 and 6144 atoms (equivalent radius, five single
coefficients, the shape miss at the centres).
MAX_ATOMS = 2048 and decoding 1024 gives the dino's descriptor and mesh bit for bit as 6144 does. The waves at
1024 are the selection's: it keeps the atoms of largest energy (185 of 1021 values in the dino's body part, scattered over
degrees 0-16), so the error left is the sum of the dropped degree polynomials, an oscillation along the height
(0.4-0.6 of a layer). A smaller dictionary (scripts/nm_sweep.py; the cut test fits with the same M, so
a lower M also cuts more): lowering N loses the angular detail (8 / 8: Chamfer 1.07-1.17 times, normals 1.6-1.8 times at
1024 / 2048; the battery and the open box worst); the dino's body at N 8, M 8 is smooth along the height at 1024 (degrees up
to 4 kept) but 0.35-0.55 of a layer off the ground truth, and 0.25-0.5 still at 6144: 8 harmonics cannot draw its section
(the dots there are the N 8 rings, not the truth). Keeping N 16 and lowering M only: Chamfer within 0.4 % at every budget;
normals over 30° 8 % fewer at 256 (M 12 or 8), 4-10 % more at 1024 / 2048; elephant better (42.5 → 37.2 % at 1024, M 8),
dress worse. A lower degree trades the waves for more parts; at 1024 the error stays about the same size.| N | M | parts | Chamfer × 256 | Chamfer × 1024 | Chamfer × 2048 | >30° × 256 | >30° × 1024 | >30° × 2048 |
|---|---|---|---|---|---|---|---|---|
| 16 | 24 | 134 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| 16 | 16 | 138 | 0.997 | 0.999 | 1.000 | 0.997 | 1.012 | 1.012 |
| 16 | 12 | 139 | 0.997 | 1.000 | 1.000 | 0.920 | 1.045 | 1.045 |
| 16 | 8 | 154 | 1.003 | 0.996 | 0.998 | 0.921 | 1.101 | 1.096 |
| 12 | 16 | 137 | 1.011 | 1.026 | 1.040 | 1.016 | 1.131 | 1.182 |
| 8 | 12 | 139 | 1.061 | 1.117 | 1.169 | 1.077 | 1.606 | 1.703 |
| 8 | 8 | 154 | 1.067 | 1.112 | 1.169 | 1.088 | 1.634 | 1.775 |
| 6 | 6 | 178 | 1.168 | 1.307 | 1.403 | 1.150 | 2.116 | 2.367 |
| 4 | 4 | 198 | 1.294 | 1.607 | 1.767 | 1.452 | 3.075 | 3.748 |
scripts/dp_split.py: each track partitioned by dynamic programming into the fewest pieces (at
least FIT_MIN = 4 layers) whose full fit misses no ring by more than the tolerance; among those the least total squared miss
(cuts on the events). dp-coef: the package's measure and tolerance (coefficients, 0.01), so its difference from
greedy (the package) is the search alone; dp-shape-t: the miss in shape, the tolerance t layer
heights. Worst part miss: over all parts of all objects, the full fit's worst ring, in shape (layer heights). Ratios to
greedy. Renders at 1024 atoms below the tables (6144 in img/).
10 objects complete.
| partition | parts | worst part miss (layer heights) | parts over 0.25 layer | Chamfer × 256 | Chamfer × 1024 | Chamfer × 6144 | >30° × 256 | >30° × 1024 | >30° × 6144 |
|---|---|---|---|---|---|---|---|---|---|
| greedy | 134 | 0.38 | 3 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| dp-coef | 128 | 0.38 | 4 | 1.099 | 1.036 | 1.001 | 1.204 | 1.258 | 1.052 |
| dp-shape-0.1 | 145 | 0.97 | 1 | 1.097 | 1.053 | 1.000 | 1.186 | 1.173 | 1.019 |
| dp-shape-0.15 | 137 | 0.15 | 0 | 1.101 | 1.039 | 0.999 | 1.215 | 1.232 | 1.017 |
| dp-shape-0.2 | 131 | 0.20 | 0 | 1.093 | 1.040 | 0.998 | 1.209 | 1.239 | 1.015 |
| dp-shape-0.3 | 126 | 0.28 | 1 | 1.101 | 1.045 | 0.999 | 1.218 | 1.251 | 1.013 |
| object | greedy parts / worst | dp-coef parts / worst | dp-shape-0.1 parts / worst | dp-shape-0.15 parts / worst | dp-shape-0.2 parts / worst | dp-shape-0.3 parts / worst |
|---|---|---|---|---|---|---|
| battery_stepped | 4 / 0.00 | 4 / 0.00 | 4 / 0.00 | 4 / 0.00 | 4 / 0.00 | 4 / 0.00 |
| dress | 17 / 0.31 | 16 / 0.31 | 19 / 0.97 | 19 / 0.15 | 18 / 0.17 | 16 / 0.24 |
| elephant | 27 / 0.18 | 25 / 0.31 | 28 / 0.05 | 25 / 0.15 | 24 / 0.20 | 24 / 0.20 |
| bowl_of | 5 / 0.07 | 5 / 0.07 | 5 / 0.07 | 5 / 0.07 | 5 / 0.07 | 5 / 0.07 |
| bowl_gso | 6 / 0.10 | 5 / 0.28 | 5 / 0.10 | 5 / 0.10 | 5 / 0.10 | 5 / 0.10 |
| mug | 8 / 0.15 | 8 / 0.14 | 9 / 0.03 | 8 / 0.14 | 8 / 0.14 | 8 / 0.14 |
| dino | 25 / 0.38 | 25 / 0.38 | 28 / 0.10 | 27 / 0.13 | 27 / 0.13 | 26 / 0.24 |
| shoe | 22 / 0.23 | 21 / 0.23 | 24 / 0.09 | 23 / 0.11 | 21 / 0.20 | 19 / 0.28 |
| open_box | 2 / 0.01 | 2 / 0.01 | 2 / 0.01 | 2 / 0.01 | 2 / 0.01 | 2 / 0.01 |
| horse | 18 / 0.19 | 17 / 0.19 | 21 / 0.10 | 19 / 0.14 | 17 / 0.19 | 17 / 0.19 |
scripts/ring_steps.py: along each track (before any cut), the shape change from one ring to the
next (each ring evaluated at 256 points from its Fourier series, the RMS distance of each one's points to the other's
polyline, both ways: no fit, and no dependence on where a ring starts), log scale, with the package's cuts (red).
scripts/spike_split.py: a cut where that step is at least 2.5 times the median of the steps within 4 layers
on either side and at least one layer height; pieces down to 2 layers. spike: nothing else;
spike+fit: then the package's cut search inside any piece whose fit still misses by more than 0.25 of a layer
in shape.




10 objects complete.
| partition | parts | worst part miss (layer heights) | parts over 0.25 layer | Chamfer × 256 | Chamfer × 1024 | Chamfer × 6144 | >30° × 256 | >30° × 1024 | >30° × 6144 |
|---|---|---|---|---|---|---|---|---|---|
| greedy | 134 | 0.38 | 3 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| spike | 127 | 14.79 | 12 | 1.012 | 1.043 | 1.062 | 0.857 | 1.435 | 1.658 |
| spike+fit | 142 | 0.24 | 0 | 0.958 | 0.978 | 0.999 | 0.669 | 0.907 | 1.011 |
| object | greedy parts / worst | spike parts / worst | spike+fit parts / worst |
|---|---|---|---|
| battery_stepped | 4 / 0.00 | 4 / 0.00 | 4 / 0.00 |
| dress | 17 / 0.31 | 17 / 2.68 | 22 / 0.24 |
| elephant | 27 / 0.18 | 25 / 0.47 | 27 / 0.21 |
| bowl_of | 5 / 0.07 | 4 / 0.81 | 5 / 0.07 |
| bowl_gso | 6 / 0.10 | 4 / 14.79 | 5 / 0.10 |
| mug | 8 / 0.15 | 9 / 0.15 | 9 / 0.15 |
| dino | 25 / 0.38 | 28 / 0.24 | 28 / 0.24 |
| shoe | 22 / 0.23 | 18 / 0.64 | 23 / 0.23 |
| open_box | 2 / 0.01 | 2 / 0.01 | 2 / 0.01 |
| horse | 18 / 0.19 | 16 / 0.70 | 17 / 0.22 |
scripts/and_test.py: the package's cut search unchanged; a piece is cut only when its fit misses
a ring by more than 0.01 in coefficients (the points at the same t) and by more than t layer heights in shape (closest
points). Sliding along the ring (large in coefficients, small in shape) no longer cuts.
scripts/and_scatter.py: every piece the package's cut search tests, its
fit's worst miss in coefficients and in shape). 144 pieces tested on the ten meshes, 60 cut. The shape miss is about half
the coefficient miss (median 0.48; 10-90 % 0.27-0.73), and the points sit close to that line: a piece that fails the
coefficient test (over 0.58 of a layer) is almost always over 0.3 of a layer in shape too. Of the 60 cuts, the shape miss
is under 0.15 for 1, under 0.25 for 5, under 0.3 for 6, under 0.4 for 9, under 0.58 (the same number as the coefficient
tolerance) for 12. AND spares only those; the rest are real shape misses.
10 objects complete.
| partition | parts | worst part miss (layer heights) | parts over 0.25 layer | Chamfer × 256 | Chamfer × 1024 | Chamfer × 6144 | >30° × 256 | >30° × 1024 | >30° × 6144 |
|---|---|---|---|---|---|---|---|---|---|
| greedy | 134 | 0.38 | 3 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| and-0.15 | 133 | 0.38 | 3 | 0.998 | 1.000 | 1.000 | 0.997 | 0.998 | 0.997 |
| and-0.2 | 133 | 0.38 | 3 | 0.998 | 1.000 | 1.000 | 0.997 | 0.998 | 0.997 |
| and-0.25 | 129 | 0.38 | 3 | 0.998 | 1.000 | 1.000 | 0.990 | 0.991 | 1.007 |
| and-0.3 | 128 | 0.38 | 4 | 1.000 | 1.000 | 1.000 | 0.986 | 0.986 | 1.012 |
| object | greedy parts / worst | and-0.15 parts / worst | and-0.2 parts / worst | and-0.25 parts / worst | and-0.3 parts / worst |
|---|---|---|---|---|---|
| battery_stepped | 4 / 0.00 | 4 / 0.00 | 4 / 0.00 | 4 / 0.00 | 4 / 0.00 |
| dress | 17 / 0.31 | 17 / 0.31 | 17 / 0.31 | 16 / 0.31 | 16 / 0.31 |
| elephant | 27 / 0.18 | 27 / 0.18 | 27 / 0.18 | 25 / 0.21 | 25 / 0.21 |
| bowl_of | 5 / 0.07 | 5 / 0.07 | 5 / 0.07 | 5 / 0.07 | 5 / 0.07 |
| bowl_gso | 6 / 0.10 | 6 / 0.10 | 6 / 0.10 | 6 / 0.10 | 6 / 0.10 |
| mug | 8 / 0.15 | 8 / 0.15 | 8 / 0.15 | 8 / 0.15 | 8 / 0.15 |
| dino | 25 / 0.38 | 25 / 0.38 | 25 / 0.38 | 25 / 0.38 | 25 / 0.38 |
| shoe | 22 / 0.23 | 21 / 0.23 | 21 / 0.23 | 21 / 0.23 | 20 / 0.28 |
| open_box | 2 / 0.01 | 2 / 0.01 | 2 / 0.01 | 2 / 0.01 | 2 / 0.01 |
| horse | 18 / 0.19 | 18 / 0.19 | 18 / 0.19 | 17 / 0.22 | 17 / 0.22 |
scripts/mug_handle.py mug: along the body track, the step between neighbouring rings in
coefficients (points at the same t: what the fit sees) and in shape (closest points), with the package's cuts; below, the
rings around the four largest steps (start point dotted; the slice's other rings, the handle, in grey).
scripts/neck_split.py mug: every solid ring cut at its narrowest neck (the pair of points with the
least chord / shorter arc, under 0.3, chord inside, both pieces at least 3 % of the area), then the package's tracking,
Fourier and cut rule unchanged.
scripts/momentum.py mug: after tracking, a long solid track is fitted along the height on the layers
it follows; at the others the clean body is interpolated (PCHIP per coefficient) from the undisturbed layers on either side.
Where a ring is the clean ring plus a lobe (reaching 2 layer heights out, meeting the clean ring along at most 40 % of it),
the track keeps ring AND clean ring and the lobe (widened 1.5 layer heights into the body, so the parts overlap) goes to the
track it touches (the handle). Then the package's cut rule.
../fcp_devel_union, branch union-sdf)
The v6 work (the evaluation on meshes and clouds, the short-track filter, atoms="auto", lobe parts) has its own
report: fcp_2910_v6/report/index.html.
battery_stepped dress elephant bowl_of bowl_gso mug dino shoe open_box horse
Green / red: better / worse than the default row by 2 % (Chamfer) or 5 % (normals).
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 4 | 24 | 29.0 | 0.2586 | 0.2586 | 0.2586 | 3.04 | 3.04 | 3.04 | 0.5573 |
| tracked-fit | 100 | 35 | 4 | 27 | 29.0 | 0.2586 | 0.2586 | 0.2586 | 3.04 | 3.04 | 3.04 | 0.5573 |
| tracked-fit | 100 | 50 | 4 | 27 | 29.0 | 0.2586 | 0.2586 | 0.2586 | 3.04 | 3.04 | 3.04 | 0.5573 |
| tracked-fit | 100 | 80 | 4 | 27 | 29.0 | 0.2586 | 0.2586 | 0.2586 | 3.04 | 3.04 | 3.04 | 0.5573 |
| tracked-fit | 1000 | 24 | 4 | 24 | 29.0 | 0.2586 | 0.2586 | 0.2586 | 3.04 | 3.04 | 3.04 | 0.5573 |
| tracked-fit | 1000 | 35 | 4 | 33 | 29.0 | 0.2586 | 0.2586 | 0.2586 | 3.04 | 3.04 | 3.04 | 0.5573 |
| tracked-fit | 1000 | 50 | 4 | 33 | 29.0 | 0.2586 | 0.2586 | 0.2586 | 3.04 | 3.04 | 3.04 | 0.5573 |
| tracked-fit | 1000 | 80 | 4 | 33 | 29.0 | 0.2586 | 0.2586 | 0.2586 | 3.04 | 3.04 | 3.04 | 0.5573 |
| tracked-fit | 10000 | 24 | 4 | 24 | 29.0 | 0.2613 | 0.2594 | 0.2594 | 4.88 | 3.47 | 3.47 | 0.5599 |
| tracked-fit | 10000 | 35 | 4 | 35 | 29.0 | 0.2613 | 0.2594 | 0.2594 | 4.88 | 3.47 | 3.47 | 0.5599 |
| tracked-fit | 10000 | 50 | 4 | 37 | 29.0 | 0.2613 | 0.2594 | 0.2594 | 4.88 | 3.47 | 3.47 | 0.5599 |
| tracked-fit | 10000 | 80 | 4 | 37 | 29.0 | 0.2613 | 0.2594 | 0.2594 | 4.88 | 3.47 | 3.47 | 0.5599 |
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 17 | 16 | 12.6 | 0.3516 | 0.1852 | 0.1552 | 42.65 | 31.49 | 26.85 | 0.3459 |
| tracked-fit | 100 | 35 | 17 | 16 | 12.6 | 0.3516 | 0.1852 | 0.1552 | 42.65 | 31.49 | 26.85 | 0.3459 |
| tracked-fit | 100 | 50 | 17 | 16 | 12.6 | 0.3516 | 0.1852 | 0.1552 | 42.65 | 31.49 | 26.85 | 0.3459 |
| tracked-fit | 100 | 80 | 17 | 16 | 12.6 | 0.3516 | 0.1852 | 0.1552 | 42.65 | 31.49 | 26.85 | 0.3459 |
| tracked-fit | 1000 | 24 | 16 | 18 | 13.4 | 0.3829 | 0.2021 | 0.1545 | 43.83 | 33.60 | 26.53 | 0.34353 |
| tracked-fit | 1000 | 35 | 16 | 18 | 13.4 | 0.3829 | 0.2021 | 0.1545 | 43.83 | 33.60 | 26.53 | 0.34353 |
| tracked-fit | 1000 | 50 | 16 | 18 | 13.4 | 0.3829 | 0.2021 | 0.1545 | 43.83 | 33.60 | 26.53 | 0.34353 |
| tracked-fit | 1000 | 80 | 16 | 18 | 13.4 | 0.3829 | 0.2021 | 0.1545 | 43.83 | 33.60 | 26.53 | 0.34353 |
| tracked-fit | 10000 | 24 | 13 | 24 | 16.5 | 0.3775 | 0.2077 | 0.1548 | 43.90 | 34.66 | 26.96 | 0.34397 |
| tracked-fit | 10000 | 35 | 13 | 24 | 16.5 | 0.3775 | 0.2077 | 0.1548 | 43.90 | 34.66 | 26.96 | 0.34397 |
| tracked-fit | 10000 | 50 | 13 | 24 | 16.5 | 0.3775 | 0.2077 | 0.1548 | 43.90 | 34.66 | 26.96 | 0.34397 |
| tracked-fit | 10000 | 80 | 13 | 24 | 16.5 | 0.3775 | 0.2077 | 0.1548 | 43.90 | 34.66 | 26.96 | 0.34397 |
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 27 | 15 | 6.2 | 0.7870 | 0.3720 | 0.2333 | 59.85 | 42.52 | 16.53 | 0.487 |
| tracked-fit | 100 | 35 | 27 | 15 | 6.2 | 0.7870 | 0.3720 | 0.2333 | 59.85 | 42.52 | 16.53 | 0.487 |
| tracked-fit | 100 | 50 | 27 | 15 | 6.2 | 0.7870 | 0.3720 | 0.2333 | 59.85 | 42.52 | 16.53 | 0.487 |
| tracked-fit | 100 | 80 | 27 | 15 | 6.2 | 0.7870 | 0.3720 | 0.2333 | 59.85 | 42.52 | 16.53 | 0.487 |
| tracked-fit | 1000 | 24 | 24 | 18 | 7.0 | 0.7421 | 0.3604 | 0.2335 | 54.96 | 39.87 | 17.02 | 0.48851 |
| tracked-fit | 1000 | 35 | 24 | 18 | 7.0 | 0.7421 | 0.3604 | 0.2335 | 54.96 | 39.87 | 17.02 | 0.48851 |
| tracked-fit | 1000 | 50 | 24 | 18 | 7.0 | 0.7421 | 0.3604 | 0.2335 | 54.96 | 39.87 | 17.02 | 0.48851 |
| tracked-fit | 1000 | 80 | 24 | 18 | 7.0 | 0.7421 | 0.3604 | 0.2335 | 54.96 | 39.87 | 17.02 | 0.48851 |
| tracked-fit | 10000 | 24 | 23 | 20 | 7.3 | 0.7221 | 0.3658 | 0.2332 | 56.52 | 40.09 | 16.53 | 0.48691 |
| tracked-fit | 10000 | 35 | 23 | 20 | 7.3 | 0.7221 | 0.3658 | 0.2332 | 56.52 | 40.09 | 16.53 | 0.48691 |
| tracked-fit | 10000 | 50 | 22 | 20 | 7.6 | 0.7354 | 0.3720 | 0.2334 | 55.45 | 41.03 | 16.46 | 0.48816 |
| tracked-fit | 10000 | 80 | 22 | 20 | 7.6 | 0.7354 | 0.3720 | 0.2334 | 55.45 | 41.03 | 16.46 | 0.48816 |
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 5 | 24 | 44.6 | 0.2093 | 0.1976 | 0.1966 | 4.80 | 0.30 | 0.32 | 0.44587 |
| tracked-fit | 100 | 35 | 4 | 33 | 55.8 | 0.2170 | 0.1978 | 0.1966 | 6.55 | 0.34 | 0.31 | 0.44556 |
| tracked-fit | 100 | 50 | 4 | 33 | 55.8 | 0.2170 | 0.1978 | 0.1966 | 6.55 | 0.34 | 0.31 | 0.44558 |
| tracked-fit | 100 | 80 | 4 | 33 | 55.8 | 0.2170 | 0.1978 | 0.1966 | 6.54 | 0.34 | 0.31 | 0.44556 |
| tracked-fit | 1000 | 24 | 4 | 24 | 55.8 | 0.2756 | 0.2001 | 0.1979 | 20.29 | 1.66 | 0.82 | 0.44991 |
| tracked-fit | 1000 | 35 | 4 | 35 | 55.8 | 0.2192 | 0.1978 | 0.1971 | 7.39 | 0.50 | 0.33 | 0.44785 |
| tracked-fit | 1000 | 50 | 3 | 41 | 74.3 | 0.2963 | 0.1998 | 0.1972 | 16.29 | 1.56 | 0.61 | 0.44762 |
| tracked-fit | 1000 | 80 | 3 | 41 | 74.3 | 0.2962 | 0.1998 | 0.1973 | 16.28 | 1.56 | 0.62 | 0.4477 |
| tracked-fit | 10000 | 24 | 4 | 24 | 55.8 | 0.2756 | 0.2001 | 0.1979 | 20.29 | 1.66 | 0.82 | 0.44991 |
| tracked-fit | 10000 | 35 | 4 | 35 | 55.8 | 0.2974 | 0.2008 | 0.1973 | 19.19 | 1.51 | 0.34 | 0.44806 |
| tracked-fit | 10000 | 50 | 3 | 47 | 74.3 | 0.2963 | 0.2001 | 0.1972 | 16.29 | 1.68 | 0.33 | 0.4473 |
| tracked-fit | 10000 | 80 | 3 | 47 | 74.3 | 0.2962 | 0.2001 | 0.1972 | 16.28 | 1.68 | 0.33 | 0.44727 |
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 6 | 24 | 36.2 | 0.2186 | 0.1984 | 0.1986 | 7.44 | 1.10 | 0.99 | 0.44427 |
| tracked-fit | 100 | 35 | 5 | 30 | 43.4 | 0.2236 | 0.1997 | 0.1994 | 9.09 | 1.94 | 1.57 | 0.44426 |
| tracked-fit | 100 | 50 | 5 | 30 | 43.4 | 0.2236 | 0.1997 | 0.1994 | 9.09 | 1.94 | 1.57 | 0.44426 |
| tracked-fit | 100 | 80 | 5 | 30 | 43.4 | 0.2236 | 0.1997 | 0.1994 | 9.09 | 1.94 | 1.57 | 0.44426 |
| tracked-fit | 1000 | 24 | 5 | 24 | 43.4 | 0.2234 | 0.1996 | 0.1991 | 8.84 | 1.21 | 0.93 | 0.44472 |
| tracked-fit | 1000 | 35 | 4 | 35 | 54.2 | 0.2541 | 0.2005 | 0.1991 | 12.33 | 1.96 | 1.28 | 0.44625 |
| tracked-fit | 1000 | 50 | 4 | 40 | 54.2 | 0.2541 | 0.2004 | 0.1987 | 12.33 | 1.56 | 0.97 | 0.44269 |
| tracked-fit | 1000 | 80 | 4 | 40 | 54.2 | 0.2541 | 0.2003 | 0.1987 | 12.33 | 1.56 | 0.97 | 0.44266 |
| tracked-fit | 10000 | 24 | 5 | 24 | 43.4 | 0.2234 | 0.1991 | 0.1986 | 8.84 | 1.17 | 0.99 | 0.44347 |
| tracked-fit | 10000 | 35 | 4 | 35 | 54.2 | 0.2541 | 0.2005 | 0.1991 | 12.33 | 1.96 | 1.28 | 0.44625 |
| tracked-fit | 10000 | 50 | 4 | 46 | 54.2 | 0.2541 | 0.2000 | 0.1983 | 12.33 | 1.67 | 1.03 | 0.4428 |
| tracked-fit | 10000 | 80 | 4 | 46 | 54.2 | 0.2541 | 0.2000 | 0.1983 | 12.33 | 1.67 | 1.03 | 0.44273 |
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 8 | 24 | 35.2 | 0.2822 | 0.2249 | 0.2204 | 12.68 | 0.96 | 0.52 | 0.49436 |
| tracked-fit | 100 | 35 | 8 | 32 | 35.2 | 0.2822 | 0.2249 | 0.2205 | 12.68 | 0.96 | 0.51 | 0.4946 |
| tracked-fit | 100 | 50 | 8 | 32 | 35.2 | 0.2822 | 0.2249 | 0.2205 | 12.68 | 0.96 | 0.51 | 0.4946 |
| tracked-fit | 100 | 80 | 8 | 32 | 35.2 | 0.2822 | 0.2249 | 0.2205 | 12.68 | 0.96 | 0.51 | 0.49452 |
| tracked-fit | 1000 | 24 | 7 | 24 | 40.3 | 0.3485 | 0.2302 | 0.2209 | 20.51 | 2.51 | 0.57 | 0.49818 |
| tracked-fit | 1000 | 35 | 7 | 35 | 40.3 | 0.3357 | 0.2303 | 0.2204 | 18.13 | 2.55 | 0.50 | 0.4975 |
| tracked-fit | 1000 | 50 | 7 | 39 | 40.3 | 0.3357 | 0.2303 | 0.2205 | 18.13 | 2.55 | 0.53 | 0.49696 |
| tracked-fit | 1000 | 80 | 7 | 39 | 40.3 | 0.3357 | 0.2303 | 0.2205 | 18.13 | 2.55 | 0.53 | 0.49694 |
| tracked-fit | 10000 | 24 | 6 | 24 | 47.0 | 0.3493 | 0.2309 | 0.2204 | 20.58 | 2.82 | 1.04 | 0.49603 |
| tracked-fit | 10000 | 35 | 6 | 35 | 47.0 | 0.3409 | 0.2316 | 0.2201 | 17.20 | 2.94 | 0.55 | 0.49727 |
| tracked-fit | 10000 | 50 | 6 | 45 | 47.0 | 0.3409 | 0.2316 | 0.2200 | 17.20 | 2.94 | 0.58 | 0.49639 |
| tracked-fit | 10000 | 80 | 6 | 45 | 47.0 | 0.3409 | 0.2316 | 0.2200 | 17.20 | 2.94 | 0.58 | 0.49647 |
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 25 | 19 | 11.6 | 0.4041 | 0.1943 | 0.1340 | 37.36 | 18.05 | 7.28 | 0.28603 |
| tracked-fit | 100 | 35 | 25 | 19 | 11.6 | 0.4041 | 0.1943 | 0.1340 | 37.36 | 18.05 | 7.28 | 0.28603 |
| tracked-fit | 100 | 50 | 25 | 19 | 11.6 | 0.4041 | 0.1943 | 0.1340 | 37.36 | 18.05 | 7.28 | 0.28603 |
| tracked-fit | 100 | 80 | 25 | 19 | 11.6 | 0.4041 | 0.1943 | 0.1340 | 37.36 | 18.05 | 7.28 | 0.28603 |
| tracked-fit | 1000 | 24 | 24 | 23 | 12.0 | 0.4112 | 0.2019 | 0.1332 | 36.84 | 19.93 | 6.95 | 0.28514 |
| tracked-fit | 1000 | 35 | 24 | 23 | 12.0 | 0.4112 | 0.2019 | 0.1332 | 36.84 | 19.93 | 6.95 | 0.28514 |
| tracked-fit | 1000 | 50 | 24 | 23 | 12.0 | 0.4112 | 0.2019 | 0.1332 | 36.84 | 19.93 | 6.95 | 0.28514 |
| tracked-fit | 1000 | 80 | 24 | 23 | 12.0 | 0.4112 | 0.2019 | 0.1332 | 36.84 | 19.93 | 6.95 | 0.28514 |
| tracked-fit | 10000 | 24 | 21 | 24 | 13.8 | 0.4059 | 0.2113 | 0.1341 | 34.41 | 21.58 | 7.01 | 0.28433 |
| tracked-fit | 10000 | 35 | 21 | 25 | 13.8 | 0.4130 | 0.2175 | 0.1340 | 35.94 | 23.06 | 6.84 | 0.28514 |
| tracked-fit | 10000 | 50 | 21 | 25 | 13.8 | 0.4130 | 0.2175 | 0.1340 | 35.94 | 23.06 | 6.84 | 0.28514 |
| tracked-fit | 10000 | 80 | 21 | 25 | 13.8 | 0.4130 | 0.2175 | 0.1340 | 35.94 | 23.06 | 6.84 | 0.28514 |
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 22 | 15 | 10.1 | 0.4393 | 0.2511 | 0.1904 | 33.74 | 26.47 | 7.57 | 0.41043 |
| tracked-fit | 100 | 35 | 22 | 15 | 10.1 | 0.4393 | 0.2511 | 0.1904 | 33.74 | 26.47 | 7.57 | 0.41043 |
| tracked-fit | 100 | 50 | 22 | 15 | 10.1 | 0.4393 | 0.2511 | 0.1904 | 33.74 | 26.47 | 7.57 | 0.41043 |
| tracked-fit | 100 | 80 | 22 | 15 | 10.1 | 0.4393 | 0.2511 | 0.1904 | 33.74 | 26.47 | 7.57 | 0.41043 |
| tracked-fit | 1000 | 24 | 20 | 18 | 11.2 | 0.5811 | 0.2726 | 0.1912 | 43.60 | 30.94 | 9.13 | 0.41068 |
| tracked-fit | 1000 | 35 | 20 | 18 | 11.2 | 0.5049 | 0.2631 | 0.1910 | 40.91 | 29.60 | 8.27 | 0.41268 |
| tracked-fit | 1000 | 50 | 20 | 18 | 11.2 | 0.5049 | 0.2631 | 0.1910 | 40.91 | 29.60 | 8.27 | 0.41268 |
| tracked-fit | 1000 | 80 | 20 | 18 | 11.2 | 0.5049 | 0.2631 | 0.1910 | 40.91 | 29.60 | 8.27 | 0.41268 |
| tracked-fit | 10000 | 24 | 17 | 21 | 13.1 | 0.6183 | 0.2789 | 0.1914 | 43.89 | 32.48 | 9.55 | 0.41005 |
| tracked-fit | 10000 | 35 | 18 | 21 | 12.4 | 0.5762 | 0.2751 | 0.1914 | 44.94 | 33.49 | 9.58 | 0.41281 |
| tracked-fit | 10000 | 50 | 18 | 21 | 12.4 | 0.5762 | 0.2751 | 0.1914 | 44.94 | 33.49 | 9.58 | 0.41281 |
| tracked-fit | 10000 | 80 | 18 | 21 | 12.4 | 0.5762 | 0.2751 | 0.1914 | 44.94 | 33.49 | 9.58 | 0.41281 |
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 2 | 24 | 112.0 | 0.2568 | 0.2567 | 0.2566 | 1.00 | 1.01 | 1.10 | 0.55454 |
| tracked-fit | 100 | 35 | 2 | 34 | 112.0 | 0.2568 | 0.2565 | 0.2565 | 1.00 | 1.05 | 1.02 | 0.55368 |
| tracked-fit | 100 | 50 | 2 | 34 | 112.0 | 0.2568 | 0.2565 | 0.2565 | 1.00 | 1.05 | 1.02 | 0.55368 |
| tracked-fit | 100 | 80 | 2 | 34 | 112.0 | 0.2568 | 0.2565 | 0.2565 | 1.00 | 1.06 | 1.02 | 0.55381 |
| tracked-fit | 1000 | 24 | 2 | 24 | 112.0 | 0.2568 | 0.2567 | 0.2566 | 1.00 | 1.01 | 1.10 | 0.55454 |
| tracked-fit | 1000 | 35 | 2 | 35 | 112.0 | 0.2568 | 0.2566 | 0.2566 | 1.00 | 1.05 | 1.02 | 0.55425 |
| tracked-fit | 1000 | 50 | 2 | 41 | 112.0 | 0.2568 | 0.2566 | 0.2566 | 1.00 | 1.05 | 1.02 | 0.55426 |
| tracked-fit | 1000 | 80 | 2 | 41 | 112.0 | 0.2568 | 0.2566 | 0.2566 | 1.00 | 1.05 | 1.02 | 0.55438 |
| tracked-fit | 10000 | 24 | 2 | 24 | 112.0 | 0.2568 | 0.2567 | 0.2566 | 1.00 | 1.01 | 1.10 | 0.55454 |
| tracked-fit | 10000 | 35 | 2 | 35 | 112.0 | 0.2568 | 0.2566 | 0.2566 | 1.00 | 1.05 | 1.02 | 0.55425 |
| tracked-fit | 10000 | 50 | 2 | 47 | 112.0 | 0.2568 | 0.2566 | 0.2566 | 1.00 | 1.05 | 1.02 | 0.55426 |
| tracked-fit | 10000 | 80 | 2 | 47 | 112.0 | 0.2568 | 0.2566 | 0.2566 | 1.00 | 1.05 | 1.02 | 0.55438 |
| rule | κ | M | parts | longest deg | mean length | Chamfer % 256 | Chamfer % 1024 | Chamfer % 6144 | >30° % 256 | >30° % 1024 | >30° % 6144 | p95 % 6144 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tracked-fit | 100 | 24 | 18 | 24 | 20.7 | 0.3733 | 0.1851 | 0.1423 | 27.84 | 10.95 | 2.89 | 0.29711 |
| tracked-fit | 100 | 35 | 18 | 24 | 20.7 | 0.3733 | 0.1851 | 0.1423 | 27.84 | 10.95 | 2.89 | 0.29711 |
| tracked-fit | 100 | 50 | 18 | 24 | 20.7 | 0.3733 | 0.1851 | 0.1423 | 27.84 | 10.95 | 2.89 | 0.29711 |
| tracked-fit | 100 | 80 | 18 | 24 | 20.7 | 0.3733 | 0.1851 | 0.1423 | 27.84 | 10.95 | 2.89 | 0.29711 |
| tracked-fit | 1000 | 24 | 17 | 24 | 21.9 | 0.4318 | 0.2034 | 0.1424 | 33.90 | 15.02 | 2.91 | 0.29755 |
| tracked-fit | 1000 | 35 | 17 | 29 | 21.9 | 0.4406 | 0.2081 | 0.1431 | 35.25 | 16.17 | 2.89 | 0.29982 |
| tracked-fit | 1000 | 50 | 17 | 29 | 21.9 | 0.4406 | 0.2081 | 0.1431 | 35.25 | 16.17 | 2.89 | 0.29982 |
| tracked-fit | 1000 | 80 | 17 | 29 | 21.9 | 0.4406 | 0.2081 | 0.1431 | 35.25 | 16.17 | 2.89 | 0.29982 |
| tracked-fit | 10000 | 24 | 15 | 24 | 24.9 | 0.4366 | 0.2153 | 0.1423 | 38.04 | 20.85 | 2.86 | 0.29715 |
| tracked-fit | 10000 | 35 | 15 | 33 | 24.9 | 0.4479 | 0.2132 | 0.1426 | 41.09 | 19.74 | 2.98 | 0.29767 |
| tracked-fit | 10000 | 50 | 15 | 33 | 24.9 | 0.4479 | 0.2132 | 0.1426 | 41.09 | 19.74 | 2.98 | 0.29767 |
| tracked-fit | 10000 | 80 | 15 | 33 | 24.9 | 0.4479 | 0.2132 | 0.1426 | 41.09 | 19.74 | 2.98 | 0.29767 |