Repository navigation
Geometry fallbacks visible (fusion, keep repair, CoACD, volume) under one SOBA_STRICT; TSDF-on-GPU claim retracted - #23
Merged
Conversation
…ume) under one SOBA_STRICT; TSDF-on-GPU claim retracted
A sweep of every exception handler around an ML/geometry call found four
silent fallbacks on the demo's critical path; all four now record, per object,
which implementation actually ran (run_metrics.json `steps`,
soba_pipeline_step_total{step,method}, run.steps on the job record):
- fusion: `_fuse_and_seal`'s bare except is gone. `fused` (completion_source
engine|poisson, fused_triangles) vs `plain_finalize_fallback` with the
exception text: only the former means the completion reached the final mesh.
- keep-band / seal repair: pymeshfix vs poisson_fallback (+reason, context).
- CoACD: decomp.decompose_info -> coacd (parts=n) vs single_hull_fallback
(not installed | raised | no parts).
- mass volume: mass.finalize_mesh_info -> already_watertight | poisson_repair |
hull_volume_fallback (+reason).
SOBA_STRICT=1 (telemetry.strict; per-kind flags kept) fails the run on any
completion, generation or geometry fallback; strict errors are re-raised
through the old handlers. scene.json is untouched (invariant 1).
Docs: STATUS.md, runbook §6, the guide and the run-1 log said "TSDF runs on
the GPU". Only the CUDA capability was checked; tsdf.fuse defaults to CPU:0
and run_assemble.py passes no device, so fusion executes on CPU. Reworded,
and the scripts' S1 message no longer implies otherwise. The device is not
changed here. The rest of the sweep is deferred (maintainer decision).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scoped by the maintainer to sweep items 1, 3, 4, 5; everything else from the sweep is deferred until after the conference.
Recorded per object, the same way completion is (
run_metrics.jsonsteps,soba_pipeline_step_total{step,method},run.stepsonGET /api/jobs/{id};scene.jsonuntouched):except: passin_fuse_and_sealis gone.fused(withcompletion_source: engine|poisson,fused_triangles) vsplain_finalize_fallback+ the exception text. Onlyfusedwithcompletion_source: enginemeans the learned completion's geometry is in the final mesh; run 4'spatchcomplete: 4alone could not show that.pymeshfixvspoisson_fallback(+reason,context).decomp.decompose_info→coacd(parts=n) vssingle_hull_fallback(coacd not installed|raised …|no usable parts).mass.finalize_mesh_info→already_watertight|poisson_repair|hull_volume_fallback(+reason).One strict flag:
SOBA_STRICT=1fails the run on any completion, generation or geometry fallback (per-kind flags still work); strict errors are re-raised through the old handlers.TSDF claim retracted: STATUS.md, runbook §6, the guide and the run-1 log said or implied "TSDF runs on the GPU". Only the CUDA capability was checked;
tsdf.fusedefaults toCPU:0andrun_assemble.pypasses no device, so fusion executes on CPU. The device is not changed in this PR.Tests: new
tests/scene/test_geometry_fallbacks.py+tests/telemetry/test_steps.py; run locally under real Open3D/CoACD/pymeshfix in an ephemeral env: 103 passed (1 known failure:anthropicabsent there). Repo venv: 416 passed, open3d baseline unchanged.🤖 Generated with Claude Code