fcp v5.2 (cuda), defaults: 1024 atoms, 128 layers, parts="tracked-fit", fit_tol="auto"; sliced upright: up = the world axis each object stands on (+z for all).
Point clouds: 200,000 points sampled uniformly on the source mesh (seed 0, no noise). Errors: symmetric nearest-point distance
between 50k samples of the source and of the decoded mesh, over the source's bounding-box diagonal.
Generated 2026-10-27 21:56 by scripts/parts_report.py.
Studies: SYNTHESIS GWN speed thin walls final gallery full gallery analysis: A vs B middle slices: A vs B parts clean 10000 noisy slices bowl gso 10k slices loaf pan 10k bowl gso 10k refined loaf pan 10k refined bowl of 10k bowl of 10k refined loaf pan 107-115 refinement splits dino
"point test" (prototype, scripts/pointfit.py, package untouched): a piece of a track stays whole when, at every layer,
one height fit's ring is within 2 spacings (p95) of the slicer's ring in explaining the layer's points, and the fitted ring lies on
the points within the same margin (both directions). Where to cut and the minimum piece length are the package's.
Red: a point-cloud encoding with more than 1.5× the parts of the same object's mesh encoding. "short": parts spanning ≤ 3 layers. spacing and fit_tol are in canonical units, from the descriptor's provenance.
| object | input | up | watertight | parts | holes | short | median span | bytes | spacing | fit_tol | encode s | mean/diag | p95/diag |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| battery_stepped | mesh | +z | yes | 4 | 0 | 0 | 14 | 563 | 0.71 | 0.00329 | 0.00627 | ||
| battery_stepped | points 200k | +z | yes | 5 | 0 | 0 | 16 | 6212 | 0.4722 | 0.69 | 0.00331 | 0.00627 | |
| battery_stepped | points 200k, point test | +z | yes | 4 | 0 | 0 | 15 | 6209 | 0.4722 | 3.39 | 0.00335 | 0.00629 | |
| dress | mesh | +z | yes | 17 | 0 | 0 | 13 | 6248 | 0.18 | 0.00219 | 0.00417 | ||
| dress | points 200k | +z | yes | 23 | 0 | 3 | 9 | 6266 | 0.3069 | 0.01108 | 0.64 | 0.00235 | 0.00464 |
| dress | points 200k, point test | +z | yes | 18 | 0 | 3 | 10 | 6251 | 0.3069 | 0.01108 | 2.62 | 0.00234 | 0.00467 |
| elephant | mesh | +z | yes | 27 | 3 | 11 | 6 | 6278 | 0.18 | 0.00410 | 0.00839 | ||
| elephant | points 200k | +z | yes | 28 | 2 | 8 | 6 | 6281 | 0.9039 | 0.69 | 0.00414 | 0.00842 | |
| elephant | points 200k, point test | +z | yes | 26 | 2 | 8 | 5 | 6275 | 0.9039 | 3.46 | 0.00407 | 0.00827 | |
| bowl_of | mesh | +z | yes | 5 | 2 | 0 | 19 | 6212 | 0.06 | 0.00263 | 0.00512 | ||
| bowl_of | points 200k | +z | yes | 6 | 2 | 1 | 13 | 6215 | 0.4504 | 0.80 | 0.00263 | 0.00512 | |
| bowl_of | points 200k, point test | +z | yes | 6 | 2 | 1 | 13 | 6215 | 0.4504 | 5.62 | 0.00263 | 0.00512 | |
| bowl_gso | mesh | +z | yes | 6 | 2 | 0 | 10 | 6215 | 0.06 | 0.00262 | 0.00508 | ||
| bowl_gso | points 200k | +z | yes | 5 | 2 | 0 | 21 | 6212 | 0.6345 | 0.87 | 0.00263 | 0.00505 | |
| bowl_gso | points 200k, point test | +z | yes | 5 | 2 | 0 | 21 | 6212 | 0.6345 | 6.19 | 0.00263 | 0.00505 | |
| mug | mesh | +z | yes | 8 | 2 | 0 | 22 | 6221 | 0.06 | 0.00292 | 0.00565 | ||
| mug | points 200k | +z | yes | 8 | 2 | 1 | 22 | 6221 | 0.5588 | 0.76 | 0.00292 | 0.00564 | |
| mug | points 200k, point test | +z | yes | 8 | 2 | 1 | 22 | 6221 | 0.5588 | 5.05 | 0.00292 | 0.00564 | |
| dino | mesh | +z | yes | 25 | 0 | 5 | 9 | 6272 | 0.07 | 0.00223 | 0.00416 | ||
| dino | points 200k | +z | yes | 40 | 0 | 5 | 8 | 6317 | 0.4802 | 0.79 | 0.00263 | 0.00523 | |
| dino | points 200k, point test | +z | yes | 28 | 0 | 5 | 8 | 6281 | 0.4802 | 3.50 | 0.00256 | 0.00514 | |
| shoe | mesh | +z | yes | 22 | 5 | 4 | 9 | 6263 | 0.09 | 0.00299 | 0.00557 | ||
| shoe | points 200k | +z | yes | 28 | 5 | 5 | 7 | 6281 | 0.7319 | 0.86 | 0.00312 | 0.00584 | |
| shoe | points 200k, point test | +z | yes | 28 | 7 | 5 | 6 | 6281 | 0.7319 | 5.17 | 0.00311 | 0.00583 | |
| loaf_pan | mesh | +z | yes | 7 | 2 | 0 | 6 | 6218 | 0.08 | 0.00295 | 0.00551 | ||
| loaf_pan | points 200k | +z | yes | 8 | 3 | 0 | 5 | 6221 | 0.893 | 0.83 | 0.00298 | 0.00555 | |
| loaf_pan | points 200k, point test | +z | yes | 7 | 2 | 0 | 5 | 6218 | 0.893 | 5.84 | 0.00299 | 0.00556 | |
| horse | mesh | +z | yes | 18 | 0 | 4 | 8 | 6251 | 0.07 | 0.00217 | 0.00398 | ||
| horse | points 200k | +z | yes | 24 | 0 | 4 | 9 | 6269 | 0.4621 | 0.74 | 0.00228 | 0.00419 | |
| horse | points 200k, point test | +z | yes | 20 | 0 | 4 | 8 | 6257 | 0.4621 | 3.58 | 0.00227 | 0.00420 |
Canonical frame, orthographic, height axis z up (layer 0 at the bottom). Left: rings of every part seen along +y (x right; one colour per part, holes dashed; tall parts thinned to ~40 rings). Then the decoded mesh along +y (x-z) and along -x (y-z), each face coloured by the part whose rings are nearest (matplotlib: expect some depth-sorting artefacts). Right: each part's span of layers (holes hatched).
mesh: 4 parts, 0 holes, 0 parts of ≤ 3 layers

points 200k: 5 parts, 0 holes, 0 parts of ≤ 3 layers

points 200k, point test: 4 parts, 0 holes, 0 parts of ≤ 3 layers

mesh: 17 parts, 0 holes, 0 parts of ≤ 3 layers

points 200k: 23 parts, 0 holes, 3 parts of ≤ 3 layers

points 200k, point test: 18 parts, 0 holes, 3 parts of ≤ 3 layers

mesh: 27 parts, 3 holes, 11 parts of ≤ 3 layers

points 200k: 28 parts, 2 holes, 8 parts of ≤ 3 layers

points 200k, point test: 26 parts, 2 holes, 8 parts of ≤ 3 layers

mesh: 5 parts, 2 holes, 0 parts of ≤ 3 layers

points 200k: 6 parts, 2 holes, 1 parts of ≤ 3 layers

points 200k, point test: 6 parts, 2 holes, 1 parts of ≤ 3 layers

mesh: 6 parts, 2 holes, 0 parts of ≤ 3 layers

points 200k: 5 parts, 2 holes, 0 parts of ≤ 3 layers

points 200k, point test: 5 parts, 2 holes, 0 parts of ≤ 3 layers

mesh: 8 parts, 2 holes, 0 parts of ≤ 3 layers

points 200k: 8 parts, 2 holes, 1 parts of ≤ 3 layers

points 200k, point test: 8 parts, 2 holes, 1 parts of ≤ 3 layers

mesh: 25 parts, 0 holes, 5 parts of ≤ 3 layers

points 200k: 40 parts, 0 holes, 5 parts of ≤ 3 layers

points 200k, point test: 28 parts, 0 holes, 5 parts of ≤ 3 layers

mesh: 22 parts, 5 holes, 4 parts of ≤ 3 layers

points 200k: 28 parts, 5 holes, 5 parts of ≤ 3 layers

points 200k, point test: 28 parts, 7 holes, 5 parts of ≤ 3 layers

mesh: 7 parts, 2 holes, 0 parts of ≤ 3 layers

points 200k: 8 parts, 3 holes, 0 parts of ≤ 3 layers

points 200k, point test: 7 parts, 2 holes, 0 parts of ≤ 3 layers

mesh: 18 parts, 0 holes, 4 parts of ≤ 3 layers

points 200k: 24 parts, 0 holes, 4 parts of ≤ 3 layers

points 200k, point test: 20 parts, 0 holes, 4 parts of ≤ 3 layers