Skip to content

0.6.0 - 3D in 2D and SDK batching

Compare
Choose a tag to compare
@github-actions github-actions released this 25 May 21:14

Rerun is an easy-to-use visualization toolbox for computer vision and robotics.

Overview & Highlights

  • You can now show 3D objects in 2D views connected by Pinhole transforms #2008
  • You can quickly view images and meshes with rerun mesh.obj image.png #2060
  • The correct to install the rerun binary is now with cargo install rerun-cli #2183
  • native_viewer is now an opt-in feature of the rerun library, leading to faster compilation times #2064
  • Experimental WebGPU support #1965
  • SDK log calls are now batched on the wire, saving CPU time and bandwidth

In Detail

🐍 Python SDK

  • ⚠️ BREAKING: You must now call rr.init if you want logging to work.
  • ⚠️ BREAKING: set_enabled has been removed.
    In order to disable logging at runtime, call set_global_data_recording(None).
    See also the doc section on this topic.
  • log_mesh_file: accept either path or bytes #2098
  • Add draw_order to 2D primitives #2138
  • Add rr.version() #2084
  • Add an experimental text-box component and logtype #2011
  • Fix a race condition for notebooks #2073
  • Redesign multi-recording & multi-threading #2061
  • More robust wait for exit condition during .serve() #1939
  • SDK batching/revamp 3: sunset PythonSession #1985

🦀 Rust SDK

  • ⚠️ BREAKING: set_enabled has been removed.
    In order to disable logging at runtime, create a no-op recording via RecordingStream::disabled().
    See also the doc section on this topic.
  • ⚠️ BREAKING: Session has been replaced by RecordingStream #1983
  • ⚠️ BREAKING: native_viewer is now an opt-in feature of the rerun library #2064
  • Rust SDK: bring back support for implicit splats #2059
  • Introduce a 2D DrawOrder component #2056
  • Add Tensor::from_image_file and Tensor::from_image_bytes #2097
  • Redesign multi-recording & multi-threading #2061

🌁 Viewer Improvements

  • Support projecting 3D entities in 2D views #2008
  • Set Rerun viewer native app icon using eframe #1976
  • Use alt key again for rolling camera in 3d views #2066
  • Show tensors shaped [H, W, 1, 1] as images (and more!) #2075
  • Show meshes and images with rerun foo.obj bar.png #2060
  • Don't persist blueprints for unknown apps #2165

🪳 Bug Fixes

  • Fix hover/select highlights when picking single points in a scene with multiple point clouds #1942
  • Fix crash for missing class ids causing zero sized texture #1947
  • Handle leaking of prerelease into alpha version #1953
  • Fix incorrect memory usage stats for destroyed on-creation-mapped buffers #1963
  • Fix: don't starve web-socket decoding task #1977
  • When hovering a 3D view in the presence of images, fix previously incorrect depth shown in 2D view #2009
  • Fix: use the mac icon on mac #2023
  • SDK batching/revamp 2.2: homegrown arrow size estimation routines #2002
  • Fix twice as wide alpha-to-coverage edge on circles, leading to artifacts #2053
  • Bugfix: allow hovered items to be clicked to set selection #2057
  • Detect, warn and gracefully handle corrupt cells in lookup_arrow #2055
  • Fix failing dependency install of mesh_to_sdf #2081
  • Stop playback when we reach the end of the data #2085
  • tornado >6.1 doesn't work with recent jupyter #2092
  • Premultiply alpha of RGBA u8 images #2095
  • Fix premature pausing when reaching end of still-streaming stream #2106
  • 2D layering fixes #2080
  • Fix depth precision issues on WebGL due to different NDC space #2123
  • Fix flushing race in new multi-recording SDK #2125
  • Web viewer: catch and show panic messages that happens at startup #2157
  • Don't early-exit on non-pinhole transforms when looking up cameras #2194
  • Mitigate depth offset precision issues on web #2187
  • Fix colormaps #2204
  • Fix annotation images sometimes drawn in the background #1933
  • Fix hovering depth clouds #1943
  • Fix incorrect 2D camera for scenes with negative 2D coordinates #2051
  • Fix web depth/projection regression, causing incorrect rendering on all 3D scenes #2170

🚀 Performance Improvements

  • SDK batching/revamp 1: impl DataTableBatcher #1980
  • Upgrade arrow2/convert and use native buffers for the tensor u8 types #1375
  • Use the same RRD encoding for the SDK comms as for everything else #2065
  • Optimize GLTF/GLB texture loading in debug builds #2096
  • Premultiply the alpha on the GPU #2190
  • Switch compression algorithm from zstd to lz4 #2112

🧑‍🏫 Examples

  • Join threads at end of multi-threading example #1934
  • Add argument parsing to the rerun_demo #1925
  • Use zipfile python library instead of unzip command in arkitscene #1936
  • Fix backslashes in arkitscene rigid transformation path #1938
  • Fix mp_pose example 2D points having incorrectly interpreted depth #2034
  • SDK batching/revamp 2.1: clock example for Rust #2000
  • Add scripts/run_all.py #2046
  • Check examples/python/requirements.txt in CI #2063
  • Fix glb mesh data set downloads #2100
  • Add more examples to https://app.rerun.io/ #2062

🖼 UI Improvements

  • Update egui to latest and wgpu to 0.16 #1958
  • Add keyboard shortcut for "Follow", and stop following on "Restart" #1986 (thanks @h3mosphere!)
  • Improve UI for keypoint and class-ids of annotations contexts #2071
  • Improvements to memory measurements and reporting #2069
  • Switch from egui_dock to egui_tiles #2082
  • Allow horizontal scrolling in blueprint panel #2114
  • Nicer (& fixed up) help texts for space views #2070
  • Allow dragging time cursor in plots #2115

🕸️ Web

🎨 Renderer Improvements

  • Full (experimental) WebGPU support #1965
  • Depth offset for lines & points #2052
  • Update to wgpu 0.16.1 #2205

🚜 Refactors

  • Replace complex uses of query_entity_with_primary with query_latest_single #2137
  • Make selection state independent of blueprint #2035
  • Remove unused MeshSourceData #2036
  • Move selection state into an independent crate, re_viewer_context #2037
  • Move item-ui to separate module, move AppOptions to re_viewer_context #2040
  • Move Caches to re_viewer_ctx and make it generic #2043
  • Move time control to re_viewer_context #2045
  • Move ViewerContext & ComponentUiRegistry to viewer_context #2047
  • Move data ui to new re_data_ui crate #2048
  • Use instant for Time::now() #2090
  • Move from instant -> web_time #2093
  • "namespace" flag parameters for linestrip & point cloud shader flags #2033

✨ Other Enhancement

  • Update minimum supported Rust version to 1.69.0 #1935
  • Allow users to select the bind address (ip) to use with --bind #2159

🧑‍💻 Dev-experience

  • Suggest users open an issue on crash, and other fixes #1993
  • Lint error names in map_err #1948
  • New dispatch-only workflow for running the lint-job #1950
  • Move clippy_wasm/clippy.toml to under scripts #1949
  • Fix run-wasm crash on trying to wait for server #1959
  • Introduce new reusable workflow jobs and cleanup manual trigger #1954
  • Use new CI workflows on pull-request #1955
  • Try making pull-request workflows non-concurrent #1970
  • Another attempt to make jobs non-concurrent on a per-PR basis #1974
  • If there's a {{ pr-build-summary }} in the PR description, update it. #1971
  • Run the cube notebook on PR #1972
  • Add ability to manually run a web build to upload to an adhoc name #1966
  • Limit ipython to 8.12 in the jupyter example #2001
  • New manual job to publish a release based on pre-built wheels #2025
  • Use the correct rust analyzer settings #2028
  • New helper for sticking Serde-encodable data into arrow #2004
  • Fix taplo-cli failing to install #2068
  • run_all.py: add --fast, --separate, and --close #2054
  • Remove Clipboard::set_text #2078
  • run_all.py: print output on sequential run failure #2079
  • Use the american spelling of "gray" #2099
  • Make sure rerun/rerun_py/re_viewer build info is updated on each build #2087
  • Fix setup scripts for Mac M1/MacPort configuration #2169 (thanks @abey79!)
  • Better error messages in build.rs #2173
  • cargo install rerun-cli #2183
  • Fix cargo test #2199
  • Fix run all for new rust-cli target & add rerun-web alias for quick running of the web player #2203

🤷‍♂️ Other