Skip to content

Make VMESH the standalone format for all codecs - #61

Open
cicm4 wants to merge 3 commits into
mainfrom
further_vmesh_testing
Open

cicm4 wants to merge 3 commits into
mainfrom
further_vmesh_testing

Conversation

@cicm4

@cicm4 cicm4 commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

What changed

All twelve public compression methods write standalone .vmesh files with VMESH-owned framing, metadata and validated native payload profiles. Loading detects the embedded codec; older exports require explicit migration. Compressed USD interchange preserves the complete VMESH artifact through a VMESH prim.

Includes codec numerical and payload-validation fixes, VMESH browser delivery, browser server hardening, and expanded codec, streamer, browser, rendering and installed-package CI coverage.

This replaces #60 after its merge was reverted on main. The full source tree is identical to ca5b319, including its review fixes; the original discussion remains in #60.

Verification

  • Verified that reverted main exactly matches the pre-merge tree at 92eb0b8.
  • Verified that this branch exactly matches the previously reviewed source tree at ca5b319; no functional changes were introduced while restoring the PR.
  • All 26 CI jobs passed on that identical source tree (run), covering Python 3.10–3.13, Linux/macOS/Windows installation, research codecs, native numerical contracts, browser/streamer and rendering.
  • A new CI run is triggered for this replacement PR. Hardware and external-dataset tests remain conditional.

Safety checklist

  • Existing success, empty-input and failure-path regressions are preserved.
  • Optional dependencies and actionable dependency errors are preserved.
  • Wheel/sdist boundaries and their checks are preserved.
  • Existing provenance records are preserved; no new third-party assets were added.
  • No credentials, private captures, generated outputs or local datasets were added.
  • Documentation remains identical to the reviewed source tree.

Remaining limitations

Fresh native V-DMC/Faster V-DMC dataset and GPU runs were not repeated for this history-only change. VMESH is a standalone custom format and does not claim MPEG interoperability. Native runtime trust requirements and the existing publication provenance gate remain documented in the repository.


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

Keep the changes from PR #60 available for review after reverting its merge on main. The source tree is identical to ca5b319.
@open4dfoundation open4dfoundation deleted a comment from coderabbitai Bot Sep 30, 2026
@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 140 files, which is 40 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 685d7a1b-5517-4e92-97c8-1a37e9b9f2e9

📥 Commits

Reviewing files that changed from the base of the PR and between 3e159ea and 2735959.

⛔ Files ignored due to path filters (2)
  • open4d/webclients/system/Server/package-lock.json is excluded by !**/package-lock.json
  • open4d/webclients/system/WebClient/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (140)
  • .agents.txt
  • .codex/config.toml
  • .github/workflows/ci.yml
  • README.md
  • SECURITY.md
  • THIRD_PARTY.md
  • docs/api.md
  • examples/open4d_sequence_codec.ipynb
  • examples/streaming_demo.py
  • examples/visualization/README.md
  • examples/visualization/compare_frames.py
  • examples/visualization/compare_sequences.py
  • examples/visualization/frame_sources.py
  • examples/visualization/tests/test_compare.py
  • examples/visualization/tests/test_frame_sources.py
  • examples/visualization/tests/test_visualize_sequence.py
  • examples/visualization/visualize_sequence.py
  • examples/vmesh/01_container_and_usdc.ipynb
  • examples/vmesh/02_mesh_codecs.ipynb
  • examples/vmesh/03_gaussian_codecs.ipynb
  • examples/vmesh/04_rerf.ipynb
  • integrations/open3d/open4d_open3d.py
  • integrations/open3d/tests/test_open4d_open3d.py
  • open4d/__init__.py
  • open4d/_api.py
  • open4d/_cli.py
  • open4d/_files.py
  • open4d/_native_worker.py
  • open4d/_streamer.py
  • open4d/codec/__init__.py
  • open4d/codec/_api.py
  • open4d/codec/_draco.py
  • open4d/codec/_klt.py
  • open4d/codec/_metadata.py
  • open4d/codec/_migration.py
  • open4d/codec/_n4mc.py
  • open4d/codec/_native.py
  • open4d/codec/_native_profiles.py
  • open4d/codec/_native_temporal.py
  • open4d/codec/_npz.py
  • open4d/codec/_protocol.py
  • open4d/codec/_qndf.py
  • open4d/codec/_temporal.py
  • open4d/codec/_tracked.py
  • open4d/codec/_vmesh.py
  • open4d/codec/_vmesh_format.py
  • open4d/codec/tests/editor_numerics.cs
  • open4d/codec/tests/test_artifact_validation.py
  • open4d/codec/tests/test_codec.py
  • open4d/codec/tests/test_codec_review.py
  • open4d/codec/tests/test_draco.py
  • open4d/codec/tests/test_editor_numerics.py
  • open4d/codec/tests/test_klt_quantization.py
  • open4d/codec/tests/test_n4mc_determinism.py
  • open4d/codec/tests/test_n4mc_vmesh.py
  • open4d/codec/tests/test_native_temporal.py
  • open4d/codec/tests/test_qndf_preprocess.py
  • open4d/codec/tests/test_queen_training_exports.py
  • open4d/codec/tests/test_real_dataset.py
  • open4d/codec/tests/test_reference_vmesh.py
  • open4d/codec/tests/test_research_codecs.py
  • open4d/codec/tests/test_research_cpu.py
  • open4d/codec/tests/test_research_vmesh.py
  • open4d/codec/tests/test_tracked.py
  • open4d/codec/tests/test_tracker_numerics.py
  • open4d/codec/tests/test_vmesh_format.py
  • open4d/codec/tests/test_vmesh_only.py
  • open4d/codec/tests/tracker_numerics.cs
  • open4d/codecs/klt/klt.py
  • open4d/codecs/n4mc/README.md
  • open4d/codecs/n4mc/losses/tsdf_losses.py
  • open4d/codecs/n4mc/tests/test_losses.py
  • open4d/codecs/qndf/README.md
  • open4d/codecs/qndf/build_dataset_open3d.py
  • open4d/codecs/tsmc/arap-volume-tracking/Framework/Util/ARAP.cs
  • open4d/codecs/tsmc/arap-volume-tracking/Framework/Util/KDTree.cs
  • open4d/codecs/tsmc/arap-volume-tracking/Framework/Util/TransformDistance.cs
  • open4d/codecs/tsmc/tsmc/util.py
  • open4d/codecs/tsmc/tvm-editing/TVMEditor/Editing/CenterDeformation/AffinityCenterDeformation.cs
  • open4d/codecs/tsmc/tvm-editing/TVMEditor/Editing/SurfaceDeformation/CustomSurfaceDeformation.cs
  • open4d/codecs/tvmc/arap-volume-tracking/Framework/Util/ARAP.cs
  • open4d/codecs/tvmc/arap-volume-tracking/Framework/Util/KDTree.cs
  • open4d/codecs/tvmc/arap-volume-tracking/Framework/Util/TransformDistance.cs
  • open4d/codecs/tvmc/tvm-editing/TVMEditor/Editing/CenterDeformation/AffinityCenterDeformation.cs
  • open4d/codecs/tvmc/tvm-editing/TVMEditor/Editing/SurfaceDeformation/CustomSurfaceDeformation.cs
  • open4d/core/tests/test_gaussians.py
  • open4d/core/tests/test_metrics.py
  • open4d/gaussians.py
  • open4d/io/_api.py
  • open4d/io/_native_usd.py
  • open4d/io/_usd.py
  • open4d/io/tests/test_review_regressions.py
  • open4d/io/tests/test_unified_api.py
  • open4d/io/tests/test_usd_sequence.py
  • open4d/native.py
  • open4d/reconstruction/3dgstream/train_frames.py
  • open4d/reconstruction/queen/train.py
  • open4d/reconstruction/rerf/rerf_stream/bitstream.py
  • open4d/reconstruction/rerf/rerf_stream/env.py
  • open4d/reconstruction/rerf/rerf_stream_tests/test_bitstream.py
  • open4d/reconstruction/rerf/rerf_stream_tests/test_geometry.py
  • open4d/streamer/README.md
  • open4d/streamer/streamer/bundle.py
  • open4d/streamer/streamer/client/viewer.html
  • open4d/streamer/streamer/codecs.py
  • open4d/streamer/streamer/export.py
  • open4d/streamer/streamer/sequence.py
  • open4d/streamer/streamer/server/__init__.py
  • open4d/streamer/streamer/session.py
  • open4d/streamer/streamer/transfer.py
  • open4d/streamer/streamer_tests/test_codecs.py
  • open4d/streamer/streamer_tests/test_draco.py
  • open4d/streamer/streamer_tests/test_export.py
  • open4d/streamer/streamer_tests/test_open4d_stream.py
  • open4d/streamer/streamer_tests/test_representations.py
  • open4d/streamer/streamer_tests/test_sequence.py
  • open4d/streamer/streamer_tests/test_server_and_transfer.py
  • open4d/streaming/README.md
  • open4d/streaming/_transport.py
  • open4d/streaming/python/live_two_camera_webrtc.py
  • open4d/streaming/tests/test_capture.py
  • open4d/visualization/_api.py
  • open4d/visualization/tests/test_visualization.py
  • open4d/webclients/README.md
  • open4d/webclients/system/Server/path-safety.js
  • open4d/webclients/system/Server/server.js
  • open4d/webclients/system/Server/study/routes.js
  • open4d/webclients/system/Server/study/store.js
  • open4d/webclients/system/WebClient/package.json
  • open4d/webclients/tests/test_server_security.js
  • open4d/webclients/tests/test_study_session.js
  • open4d/webclients/tests/test_tile_ladder.py
  • open4d/webclients/tests/test_v4ds_protocol.js
  • open4d/webclients/tests/test_vgs_format.js
  • open4d/webclients/tile_ladder.py
  • pyproject.toml
  • scripts/benchmark_codec.py
  • scripts/smoke_installed_io.py
  • scripts/tests/test_benchmark_codec.py
  • scripts/tests/test_cli.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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