Skip to content

Restore public API and both streaming interfaces after merge - #56

Merged
cicm4 merged 1 commit into
mainfrom
fix/merged-api-ci
Sep 23, 2026
Merged

cicm4 merged 1 commit into
mainfrom
fix/merged-api-ci

Conversation

@cicm4

@cicm4 cicm4 commented Sep 21, 2026 •

Copy link
Copy Markdown
Member

What changed

After merging the API work with the browser streamer, import open4d no longer exposed several documented codec, Gaussian, metric and reconstruction functions. Installed-wheel tests also called the original TCP stream API through the new browser-only implementation. This restores the exports and supports both streaming interfaces.

  • Restore the public imports and add explicit open4d.send for TCP. Existing iterable/host/port stream calls retain TCP behavior; paths and browser options select bundle export and HTTP serving.
  • Load Gaussian method modules on demand so QUEEN/3DGStream command construction does not require the optional browser streamer.
  • Constrain Open3D to 0.19.x and reject unsupported manually installed versions before reconstruction. Native experiments reproduced empty meshes with 0.20; the same fixture produces 1,800 triangles with 0.19. The 0.20 legacy TSDF integrator passes a depth scale of 1000 for already-metric float depth.
  • Repair documentation links to the existing RGB-D component.

This repairs the main source used by #55. The Open3D compatibility fix is also on #54, whose 24 CI jobs now pass. No CI jobs were disabled or weakened.

Verification

GitHub CI: all 24 jobs pass on d6440c8, including Python 3.10–3.13 and clean-wheel installation on Linux, macOS and Windows.

On macOS / Apple Silicon:

Check Result
Full integration checkout, Python 3.12.13 / Open3D 0.19.0 / Torch 2.7.0 676 passed, 17 skipped
Browser-streamer integration tests with its real optional package 4 passed; actual PLY/Draco bundle export and server startup
Public HTTP delivery and fresh-process decoding 36 files passed: 6 moving frames × 3 quality levels × loaded-sequence/path inputs
Supported Open3D reconstruction and transport tests 31 passed, 1 native-codec skip
Unsupported-version and validation checks in an Open3D 0.20 environment 7 passed
Wheel and sdist build and both content-boundary checks Passed
Fresh Python 3.13.14 wheel install outside the checkout, NumPy-only base dependency Passed; real OBJ/PLY round trips, CLI and TCP transfer
Markdown links, provenance, expected release gate, whitespace Passed

Regression tests transfer mesh frames over actual loopback sockets through send and stream, with positional and keyword addresses, and verify geometry and timestamps while the optional browser package is unavailable. Browser tests separately exercise bundle export and serving. Counts above overlap and are not a combined unique-test total.

The HTTP test fetched actual default-Draco, 8-bit Draco and PLY payloads, then decoded them in a fresh process. All 144 vertices and 242 triangles per frame matched the reference within quantization tolerances; PLY was exact. All six time steps had distinct Draco payloads. The vendored decoder JS/WASM were served with correct MIME types. This is native fresh-process decoding of HTTP-delivered data, not a browser-rendering claim.

The five previously failing reconstruction cases also pass with Open3D 0.19 and the same NumPy 2.5.3 used in the 0.20 reproduction. Eight standalone native TSDF experiments varied integer/float input, sampling stride and integration count to isolate the upstream behavior from Open4D.

Safety checklist

  • Tests cover success, empty input, and relevant failure paths.
  • Optional dependencies remain optional and have actionable errors.
  • Wheel/sdist boundaries are unchanged and both checks pass.
  • No copied dependencies or artifacts were introduced; existing provenance boundaries remain in force.
  • No credentials, private captures, generated outputs, or local datasets were added.
  • Documentation and status claims match verified behavior.

Remaining limitations

Open3D 0.20 legacy TSDF reconstruction is unsupported pending an upstream correction and validation. Browser streaming still requires the separate source-installed open4d-streamer package. The 17 full-suite skips require external native codecs, datasets, CUDA or a display; the prior CUDA/Gaussian audit is documented in #54, and no CUDA implementation changes are made here.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@cicm4
cicm4 merged commit 873420a into main Sep 23, 2026
25 checks passed
@cicm4
cicm4 deleted the fix/merged-api-ci branch September 23, 2026 16:18
frozzzen3 pushed a commit that referenced this pull request Sep 25, 2026
Restore public API and both streaming interfaces after merge
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