Skip to content

perf: unblock large PointCloud2 playback; v1.7.2#25

Merged
joaner merged 5 commits into
ioai-tech:mainfrom
joaner:perf/pointcloud-playback-v1.7.2
Jul 10, 2026
Merged

perf: unblock large PointCloud2 playback; v1.7.2#25
joaner merged 5 commits into
ioai-tech:mainfrom
joaner:perf/pointcloud-playback-v1.7.2

Conversation

@joaner

@joaner joaner commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Unblocks large color+depth PointCloud2 MCAP playback: larger SAB ring slots, worker-side parse, GPU buffer reuse (setDrawRange), and optical→ROS frame heuristic with depth turbo coloring.
  • Fixes remote buffer bar collapsing to empty after LRU eviction by reporting all currently cached playable time ranges instead of only a contiguous prefix from file start.
  • Bumps package version to 1.7.2.

Test plan

  • npx vitest run src/infra/workers/playableTimeRanges.test.ts (+ related cache tests)
  • HTTP open large orbbec example; buffer bar stays non-empty mid-playback after early cache eviction
  • Spot-check PointCloud2 + color image playback on ?url=/examples/orbbec_pc_30s_...

joaner added 5 commits July 10, 2026 18:21
Move parsing off the main thread, reuse GPU buffers, and enlarge the SAB
ring so multi-MB point clouds no longer fall back to structured clone.
Copy SharedArrayBuffer payloads into plain ArrayBuffers before worker
transfer, drop non-finite points, map optical frames to ROS Z-up, and
autofit the camera so depth clouds match the color image orientation.
Size attributes to width*height and draw with setDrawRange so fluctuating
valid-point counts no longer rebuild geometry. Apply optical→ROS only for
optical/depth topics, drop non-positive optical depth, and keep the parse
worker stable via camera/controls refs.
Report all cached playable time ranges instead of only a contiguous
prefix from file start, so mid-file cache no longer collapses the UI bar.
@joaner joaner merged commit 6ad5b49 into ioai-tech:main Jul 10, 2026
1 of 2 checks passed
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