Files: meshes/<name>_noise0p2.ply, _noise0p6, _noise1.ply; script scripts/make_noisy.py.
Each mesh is subdivided to edges ≤ 0.5 % of the diagonal (same shape), then every vertex x moves by u(x), a smooth random
3D vector field (seeded): each component Gaussian with std σ = 0.2 / 0.6 / 1 % of the diagonal and a Gaussian correlation length of at
least 5 σ, raised until the field's largest gradient is below 0.8. Then x → x + u(x) is one-to-one, so the surface cannot
cross itself or turn a face over, whatever the wall thickness or the edges. Faces are unchanged (same connectivity, watertight).
"along the normal": the achieved displacement along the vertex normals, over the diagonal. Self-crossing rings: the exact sections
at the 128 layer centres along up that are not simple (red: more than the clean mesh). Generated 2026-10-28 05:46.
| object | σ | along the normal | correlation length | max gradient | faces | watertight | faces turned over | self-crossing rings | clean | volume / clean |
|---|---|---|---|---|---|---|---|---|---|---|
| battery_stepped | 0.2 % | 0.203 % | 1.2 % | 0.72 | 631,808 | yes | 0 | 0 / 365 | 0 / 128 | 1.0009 |
| battery_stepped | 0.6 % | 0.589 % | 3.8 % | 0.72 | 631,808 | yes | 0 | 0 / 191 | 0 / 128 | 0.9923 |
| battery_stepped | 1 % | 0.991 % | 6.2 % | 0.77 | 631,808 | yes | 0 | 0 / 178 | 0 / 128 | 0.9771 |
| dress | 0.2 % | 0.204 % | 1.2 % | 0.73 | 444,020 | yes | 0 | 0 / 261 | 0 / 242 | 0.9976 |
| dress | 0.6 % | 0.641 % | 3.8 % | 0.79 | 444,020 | yes | 0 | 0 / 265 | 0 / 242 | 1.0373 |
| dress | 1 % | 0.975 % | 6.2 % | 0.61 | 444,020 | yes | 0 | 0 / 258 | 0 / 242 | 1.0045 |
| elephant | 0.2 % | 0.202 % | 1.2 % | 0.76 | 299,446 | yes | 0 | 0 / 254 | 0 / 253 | 1.0004 |
| elephant | 0.6 % | 0.573 % | 3.8 % | 0.70 | 299,446 | yes | 0 | 0 / 242 | 0 / 253 | 1.0215 |
| elephant | 1 % | 0.978 % | 5.0 % | 0.78 | 299,446 | yes | 0 | 0 / 249 | 0 / 253 | 1.0123 |
| bowl_of | 0.2 % | 0.201 % | 1.2 % | 0.75 | 363,430 | yes | 0 | 0 / 285 | 0 / 254 | 1.0038 |
| bowl_of | 0.6 % | 0.618 % | 3.8 % | 0.68 | 363,430 | yes | 0 | 0 / 271 | 0 / 254 | 0.9853 |
| bowl_of | 1 % | 0.929 % | 6.2 % | 0.66 | 363,430 | yes | 0 | 0 / 250 | 0 / 254 | 1.0140 |
| bowl_gso | 0.2 % | 0.193 % | 1.2 % | 0.70 | 339,210 | yes | 0 | 1 / 305 | 1 / 242 | 1.0123 |
| bowl_gso | 0.6 % | 0.528 % | 3.8 % | 0.73 | 339,210 | yes | 0 | 1 / 269 | 1 / 242 | 0.9867 |
| bowl_gso | 1 % | 1.037 % | 6.3 % | 0.62 | 339,210 | yes | 0 | 1 / 270 | 1 / 242 | 0.9744 |
| mug | 0.2 % | 0.198 % | 1.2 % | 0.73 | 481,820 | yes | 0 | 0 / 349 | 0 / 313 | 0.9978 |
| mug | 0.6 % | 0.567 % | 3.8 % | 0.73 | 481,820 | yes | 0 | 0 / 326 | 0 / 313 | 0.9893 |
| mug | 1 % | 1.022 % | 6.2 % | 0.66 | 481,820 | yes | 0 | 0 / 311 | 0 / 313 | 1.0172 |
| dino | 0.2 % | 0.187 % | 1.2 % | 0.74 | 136,124 | yes | 0 | 0 / 335 | 0 / 346 | 0.9932 |
| dino | 0.6 % | 0.560 % | 3.8 % | 0.72 | 136,124 | yes | 0 | 0 / 338 | 0 / 346 | 0.9649 |
| dino | 1 % | 1.204 % | 5.0 % | 0.80 | 136,124 | yes | 0 | 0 / 324 | 0 / 346 | 0.9778 |
| shoe | 0.2 % | 0.192 % | 1.3 % | 0.69 | 319,498 | yes | 0 | 1 / 439 | 1 / 386 | 1.0039 |
| shoe | 0.6 % | 0.668 % | 3.8 % | 0.68 | 319,498 | yes | 0 | 0 / 434 | 1 / 386 | 0.9728 |
| shoe | 1 % | 1.080 % | 6.2 % | 0.68 | 319,498 | yes | 0 | 0 / 375 | 1 / 386 | 0.9960 |
| horse | 0.2 % | 0.198 % | 1.2 % | 0.71 | 154,034 | yes | 0 | 0 / 413 | 0 / 415 | 1.0037 |
| horse | 0.6 % | 0.596 % | 3.8 % | 0.64 | 154,034 | yes | 0 | 0 / 407 | 0 / 415 | 1.0162 |
| horse | 1 % | 0.952 % | 6.2 % | 0.67 | 154,034 | yes | 0 | 0 / 406 | 0 / 415 | 0.9512 |
| open_box | 0.2 % | 0.204 % | 1.2 % | 0.70 | 389,214 | yes | 0 | 0 / 617 | 0 / 247 | 0.9937 |
| open_box | 0.6 % | 0.528 % | 3.8 % | 0.68 | 389,214 | yes | 0 | 0 / 388 | 0 / 247 | 0.9955 |
| open_box | 1 % | 0.936 % | 6.3 % | 0.71 | 389,214 | yes | 0 | 0 / 341 | 0 / 247 | 0.9731 |








