Skip to content

Fix geodesic remesh: correct percent units, enable geodesics on remeshed surface, skip wasted precompute.#2557

Merged
akenmorris merged 1 commit into
masterfrom
amorris/2556-geodesic-remesh
May 22, 2026
Merged

Fix geodesic remesh: correct percent units, enable geodesics on remeshed surface, skip wasted precompute.#2557
akenmorris merged 1 commit into
masterfrom
amorris/2556-geodesic-remesh

Conversation

@akenmorris
Copy link
Copy Markdown
Contributor

Mesh::remeshPercent expects a 0–1 fraction; the two optimize call sites passed the raw project value (e.g. 10) which inflated meshes ~10× instead of reducing to 10%. ACVD then ran for minutes on the bloated mesh, and for some input geometries overshot the target by another 1.65×.

The remeshed Surface was also constructed with the default geodesics_enabled=false, so compute_distance/is_within_distance silently fell back to Euclidean during optimization — masking the slowness as "runs fast" while producing non-geodesic correspondence. Meanwhile the full-resolution main Surface ran precompute_geodesics it never needed.

ParticleNeighborhood and Sampler keyed weighting/euclidean decisions off the main surface's flag; with the precompute moved off the main surface, they now go through a new MeshDomain::is_geodesics_enabled() accessor that asks the canonical geodesics surface.

…hed surface, skip wasted precompute.

Mesh::remeshPercent expects a 0–1 fraction; the two optimize call
sites passed the raw project value (e.g. 10) which inflated meshes
~10× instead of reducing to 10%. ACVD then ran for minutes on the
bloated mesh, and for some input geometries overshot the target by
another 1.65×.

The remeshed Surface was also constructed with the default
geodesics_enabled=false, so compute_distance/is_within_distance
silently fell back to Euclidean during optimization — masking the
slowness as "runs fast" while producing non-geodesic
correspondence. Meanwhile the full-resolution main Surface ran
precompute_geodesics it never needed.

ParticleNeighborhood and Sampler keyed weighting/euclidean decisions
off the main surface's flag; with the precompute moved off the main
surface, they now go through a new MeshDomain::is_geodesics_enabled()
accessor that asks the canonical geodesics surface.
@akenmorris akenmorris merged commit 3d3420b into master May 22, 2026
5 checks passed
@akenmorris akenmorris deleted the amorris/2556-geodesic-remesh branch May 22, 2026 07:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant