Skip to content

Releases: rerun-io/rerun

Development Build

29 Dec 04:11
19e93a6
Compare
Choose a tag to compare
Development Build Pre-release
Pre-release

This is a prerelease. It is not intended for production use.
Please report any issues you find.

Example Hosted App

https://rerun.io/viewer/commit/19e93a6

Wheels can be installed with:

pip install --pre --no-index -f https://build.rerun.io/commit/19e93a6/wheels --upgrade rerun-sdk

or

pip install --pre --no-index -f https://github.com/rerun-io/rerun/releases/download/prerelease --upgrade rerun-sdk

CMake fetch-content for C++ SDK

include(FetchContent)
FetchContent_Declare(rerun_sdk URL https://build.rerun.io/commit/19e93a6/rerun_cpp_sdk.zip)
FetchContent_MakeAvailable(rerun_sdk)

or

include(FetchContent)
FetchContent_Declare(rerun_sdk URL https://github.com/rerun-io/rerun/releases/download/prerelease/rerun_cpp_sdk.zip)
FetchContent_MakeAvailable(rerun_sdk)

0.21.0 - Graph view, 3D Grid & UI/UX improvements

18 Dec 15:06
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.


📖 Release blogpost: https://rerun.io/blog/graphs

🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-21

✨ Overview & highlights

Graph view

We've added two new logging primitives: GraphNodes and GraphEdges that can be used to visualize node-link diagrams. For this, we have implemented a new Graph View that uses force-based layouts to draw graphs.

This video demonstrates the main features of the new graph view:

graph_2_subtitles.mp4

You can also have a look at #7500 if you want to learn to more.

UX improvements

This video demonstrates the main UX improvements that went into this release:

0.21-ux-subs-convert.mp4

3D grid

The 3D view now offers an infinite 3D grid, enabled by default. Further controls and settings are available as usual through the blueprint API and/or the selection panel.

All the nitty gritty details in #8230 and #8234.

Undo/Redo support & many more UI/UX improvements

You can now undo/redo blueprint changes in the viewer!
Watch @emilk putting it to action and explains how it works:

undo-convert02.mp4

Other UX improvements

But that's not the only thing that improved in the viewer:

  • Breadcrumbs show up in the selection menu now

    image

  • Take screenshots of views from context menus

    image

  • Entities can now be dragged from Blueprint & Streams panel into views

    image

Index of code snippets

We now have a new index for all our code snippets.

You can use it to quickly find copy-pastable snippets of code for any Rerun feature you're interested in (API, Archetypes, Components, etc).
No special tools required -- all you need is a keyword of interest, and plain old text search.

It's still the early days so it is far from perfect, but we think it can already be quite helpful; feedback welcome.
Most of it is auto-generated, so it will never get out of sync!

⚠️ Breaking changes

  • Near clip plane for Spatial2D views now defaults to 0.1 in 3D scene units.
  • Blueprint: types and fields got renamed from .*space_view.*/.*SpaceView.* to .*view.*/.*View.*.
  • 3D transform arrow visualization show up less often by default.
  • DisconnectedSpace archetype/component is deprecated in favor of implicit invalid transforms (like zero scale or zero rotation matrix).
  • RotationAxisAngle with zero rotation axis is no longer treated as identity.

Read our 🧳 migration guide for more detailed information: https://rerun.io/docs/reference/migration/migration-0-21.

🔎 Details

🪵 Log API

  • End-to-end tagging: Rust #8304
  • Encode LogMsg using protobuf #8347

🌊 C++ API

  • End-to-end tagging: C++ #8316

🐍 Python API

  • Never direct users towards using rr.log_components #8151
  • Make it possible to log custom components using rr.send_columns #8163
  • Lint and fix python SDK (Py)RecordingStream upcasting issues #8184
  • End-to-end tagging: Python #8298
  • Rename space view to view everywhere #8396
  • Fix broken notebook loading on firefox by compressing the encoded wasm payload #8426
  • Add utility to rr.components.Color to generate colors from any string (and use it in the air traffic data example) #8458
  • Introduce new API to send a dataframe to Rerun #8461

🦀 Rust API

  • Update MSRV to 1.80 #8178
  • Remove Loggable::NAME -- Loggables do not have any semantics #8082
  • Never direct users towards using RecordingStream::log_component_batches #8149
  • Rust API: be explicit about when we're using the arrow2 crate #8194
  • Add from_gray16 for DepthImage #8213 (thanks @fawdlstty!)
  • Rust: more impl<AsComponents> helpers #8401

🪳 Bug fixes

  • Fix outlines for lines having more perceived aliasing since 0.20 #8317
  • Fix handling unnormalized axis for (Pose)RotationAxisAngle #8341
  • Fix 2D/3D view artifacts on view's border when using fractional zoom #8369

🌁 Viewer improvements

  • World grid part 1/2: add world grid renderer to re_renderer #8230
  • World grid part 2/2: Integrate into Viewer #8234
  • Add Undo/Redo support in the viewer #7546
  • Space view screenshotting in native viewer #8258
  • Remove selection history #8296
  • Make the near clipping plane editable in 2D views #8348
  • Don't show transform arrows on all entities without any other visualizer #8387
  • Do query for default components only once per view #8424
  • Improve hovered order in 2D views #8405
  • Remove wait-time when opening settings panel #8464
  • Deprecate DisconnectedSpace archetype/component in favor of implicit invalid transforms #8459
  • Improve graphics device capability detection, warn on old devices, early error on unsupported render targets #8476

🧑‍🏫 Examples

  • Add a new "Air Traffic Data" example #5449
  • Use video logging api in detect_and_track example #8261 (thanks @oxkitsune!)
  • Add hloc_glomap example and update manifest #8352 (thanks @pablovela5620!)
  • Introduce the Snippet Index #8383
  • Implement complete Graph View example #8421

📚 Docs

  • Update wheel build instruction #8235
  • Fix various doc links in SDKs #8331

🖼 UI improvements

  • Implement graph components and archetypes #7500
  • Add support for Bezier-curve multi (self-)edges #8256
  • Implement incremental graph layouts #8308
  • Revert label background color to that in 0.19 #8337
  • Add selection hierarchy breadcrumbs #8319
  • More compact selection panel when multiple items selected #8351
  • Make Position2D components editable in selection panel #8357
  • Dynamic configuration of graph layout forces through blueprints #8299
  • Document legend interaction in the timeseries view help text #8406
  • Allow drag-and-dropping multiple containers and views in the blueprint tree #8334
  • Improve picking in 2D views #8404
  • Make our collapsing triangle thinner for more consistency with our icons #8408
  • Entities can be dragged from the blueprint tree and streams tree to an existing view in the viewport #8431

🎨 Renderer improvements

  • Update egui to latest, update wgpu to 23.0.0 #8183

✨...

Read more

0.20.3 - Web viewer fix

03 Dec 19:21
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.


We introduced a Map view in 0.20, but did not enable its feature flag by default, which meant that all web viewer builds did not include it. This is now fixed, and the map view may be used in web viewer builds published by Rerun.

🔎 Details

🪳 Bug fixes

  • Fix web viewer feature flags #8295

0.20.2 - Build fix

28 Nov 18:11
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.


🔎 Details

🪳 Bug fixes

  • Fix a drag-and-drop display regression #8228

📚 Docs

  • Add map_view to the default features and improve how the nasm feature is handled and documented #8243

🧑‍💻 Dev-experience

  • Gracefully handle cargo-metadata failures in users' environments #8239

0.20.1

21 Nov 13:17
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.


0.20.0 - Map view & native H.264 video support

14 Nov 17:59
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.


nuscenes.updated.with.map.mp4

📖 Release blogpost: https://rerun.io/blog/maps
🧳 Migration guide: http://rerun.io/docs/reference/migration/migration-0-20

✨ Overview & highlights

  • 🗺️ There is now an map view!
  • 🎬 Native viewer now supports H.264 video if ffmpeg is installed.
  • 📽️ Videos now load a lot faster use less RAM.
  • 📂 Improvements to the existing Open (Viewer) & log_file (SDK) workflows, and addition of a new Import workflow.
  • ☰ Dataframe queries are now streamed, reducing memory usage.
  • 💊 Add capsule archetype.
  • 📚 Doc improvements
    • Arrow schemas are now documented for all types.
    • Better structure to the how to section and a few more pages

⚠️ Breaking changes & deprecations

  • 🐍 Python 3.8 is being deprecated
  • 🔌 connect & serve got deprecated in favor of connect_tcp & serve_web
  • 🎨 In Python, lists of numbers without type information are now assumed to be packed integer color representations, unless the length is exactly 3 or 4
    🧳 Migration guide: http://rerun.io/docs/reference/migration/migration-0-20

🔎 Details

🎬 Video

  • Support H.264 video on native via user installed ffmpeg executable #7962
  • Make mp4 parsing a lot faster & tremendously lower memory overhead #7860
  • Fix playback of HDR AV1 videos in native viewer #7978
  • Show all samples/frames in a video in a nice table #8102
  • Calculate and show video frame number #8112
  • Expose basic information about group of pictures in video data in the selection panel #8043
  • Fix some videos having offsetted (incorrect) timestamps #8029
  • Fix video backward seeking / stepping back sometimes getting stuck (in the presence of b-frames) #8053
  • Make sure videos all end up in different space views #8085
  • Fix video on web sometimes not showing last few frames for some videos #8117
  • Fix issues with seeking in some H.264 videos on native & web #8111
  • Fix view creation heuristics for videos #7869
  • Improve video doc page #8007
  • Update re_mp4 to fix integer overflow bug #8096

🪵 Log API

  • Add Capsules3D archetype #7574 (thanks @kpreid!)
  • rr.log_file_from_path now defaults to the active app/recording ID #7864
  • Allow overriding albedo color on Asset3D #7458 (thanks @EtaLoop!)
  • rr.serve -> rr.serve_web, rr.connect -> rr.connect_tcp #7906

🌊 C++ API

  • C++: Improve error message when finding X11 macro Unsorted #7855
  • Forward CMAKE_TOOLCHAIN_FILE to arrow build for sdk cross-compilation #7866 (thanks @SunDoge!)
  • Update the python package to support python 3.13, update C++ arrow to 18.0.0 #7930

🐍 Python API

  • Allow passing seconds/nanoseconds to VideoFrameReference archetype #7833
  • Officially deprecate support for python 3.8 #7933
  • Update the python package to support python 3.13, update C++ arrow to 18.0.0 #7930
  • Remove the upper bound constraint on python version #7949
  • Enable dataframe streaming across Python FFI #7935
  • Fix python SDK's shutdown unsafely dropping cross-FFI resources #8038
  • Improve edge-cases and warn on ambiguity for Rgba32 datatype #8054
  • Check rerun notebook version on first import #8030

🦀 Rust API

  • Allow logging individual components directly (Impl AsComponents for all ObjectKind::Component) #7756 (thanks @oxkitsune!)
  • re_query::Caches -> re_query::QueryCache #7915

🪳 Bug fixes

  • [bugfix] Make sure blueprint gets sent to the notebook view being created #7811
  • Fix too short picking ray in pinhole-only scenarios #7899
  • Update zune-jpeg to fix crash on bad JPEGs #7952
  • Consistent open/import/log_file behaviors in all common scenarios #7966
  • ChunkStore: fix row-id computation when removing dangling static chunks #8020
  • EntityTree: only check for entity deletions when necessary #8103
  • WebSocket server now indefinitely keeps track of non-data RPC commands #8146

🌁 Viewer improvements

  • A Rerun Viewer session now matches 1:1 to a Rerun TCP server #6951 (thanks @petertheprocess!)
  • Implement support for in-place drag-n-drop #7880
  • Implement Menu > Import and associated command #7882
  • Expose additional information about decoded frames in the viewer #7932
  • Update crates, including rfd for better file dialogs #7953
  • Line strips are no longer a disconnected series of quads #8065
  • Show data density graph in collapsed time panel #8137
  • Show the root entity "/" in the streams panel #8142

🚀 Performance improvements

  • Don't keep around additional CPU copy of loaded mesh files #7824
  • Make mp4 parsing a lot faster & tremendously lower memory overhead #7860
  • Fix slow receive when using native WebSocket #7875
  • Implement support for fully asynchronous QueryHandles #7964

🧑‍🏫 Examples

  • Fix Rust DNA sample writing to a temporary file #7827
  • Add ml_depth_pro example #7832 (thanks @oxkitsune!)
  • Add map view to nuscenes python example #8034 (thanks @tfoldi!)
  • Add an example to display OpenStreetMap-sourced data on the map view #8044
  • Improve NuScenes example with more geo data & blueprint #8130

📚 Docs

  • Clarify viewport documentation and reference the type list for view classes #7826
  • Finish dataframe reference page #7865
  • Docs: static data #7856
  • Docs: concepts > recordings #7896
  • Docs: "How-to: reuse blueprints across languages" #7886
  • Docs: application model part 1: native workflows #7905
  • Document arrow datatypes #7986

🖼 UI improvements

  • Map View and GeoPoints archetype #6561 (thanks @tfoldi!)
  • Replace the "Options" submenu with a settings screen #8001
  • Improve error message style slightly #8092
  • Much nicer looking error and warning messages #8127

🧑‍💻 Dev-experience

Read more

0.19.1

05 Nov 13:07
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.


This release fixes an error thrown when the web viewer is closed.

🔎 Details

🕸️ Web

  • Fix wasm-bindgen patch #7970

📦 Dependencies

  • Add wasm-bindgen version check to CI #7983

0.19.0 - Video and Dataframe API

17 Oct 15:51
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox and data platform for multimodal and temporal data.
Try it live at https://rerun.io/viewer.

rerun_video_in_rerun.mp4

📖 Release blogpost: https://rerun.io/blog/dataframe

🧳 Migration guide: http://rerun.io/docs/reference/migration/migration-0-19

✨ Overview & highlights

This release introduces two powerful features: a dataframe API (and view), as well as video support.

☰ Dataframe API

We now have an API for querying the contents of an .rrd file. This integrates with popular packages such as Pandas, Polars, and DuckDB.

You can read more in the Dataframe API how-to guide.

We have also added a matching dataframe view inside the Rerun Viewer.
Read more here.

🎬 Video

Rerun now supports logging MP4 videos using the new AssetVideo archetype.
This can greatly reduce bandwidth and storage requirements.

While the web viewer supports a variety of codecs, the native viewer supports only the AV1 codec for the moment, but we plan to support H.264 in the near future as well.
Read more about our video supports (and its limits) in our video docs.

⚠️ Breaking changes

  • 🗾 Blueprint files (.rbl) from previous Rerun versions will no longer load automatically
  • 🐧 Linux: Rerun now requires glibc 2.17+
  • 🦀 Rust: The minimum supported Rust version is now 1.79

🧳 Migration guide: http://rerun.io/docs/reference/migration/migration-0-19

🔎 Details

📑 Raw changelog: 0.18.2...0.19.0

🪵 Log API

  • BGR(A) image format support #7238
  • Tensor & depth image value ranges can now be configured, from UI & code #7549
  • New planar pixel formats: Y_U_V24/Y_U_V16/Y_U_V12 - _LimitedRange/FullRange #7666
  • Add ShowLabels component, which controls whether instances’ labels are shown #7249 (thanks @kpreid!)
  • Refactor MediaType guessing #7326

🌊 C++ API

  • Add nullptr check when forwarding from component to datatype #7430

🐍 Python API

  • Add missing show_labels and draw_order arguments in Python API #7363 (thanks @kpreid!)
  • Allow logging to a recording without first calling rr.init() #7698
  • Add support for NumPy arrays to the arrow serializer for string datatypes #7689

🦀 Rust API

  • Update MSRV to Rust 1.79 #7563
  • Update ndarray to 0.16 and ndarray-rand to 0.15 #7358 (thanks @benliepert!)
  • Replace host_web_viewer method with WebViewerConfig::host_web_viewer #7553
  • Fix Rust's TimeColumn::new_seconds/new_nanos creating sequence timelines #7402

🪳 Bug fixes

  • Purge the query cache to prevent GC livelocks #7370
  • Bug fix: always show latest data in follow-mode #7425
  • Fix encoded image being suggested for non-image blobs (like video) #7428
  • Chunk store: support for overlapped range queries #7586
  • Fix image & video cache creating new entries when selecting data without explicit media type #7590

🌁 Viewer improvements

  • The viewer will tail an .rrd that's is being written to #7475
  • Native video support for AV1 #7557
  • Allow splitting entity path expressions with whitespace #7782

🚀 Performance improvements

  • Improve performance for scenes with many entities & transforms #7456
  • Caches per recording #7513
  • Automatic removal of unreachable static chunks #7518
  • Invalidate hub-wide caches on deletions and overwrites #7525
  • Do not cache static entries in the query-time latest-at cache #7654
  • Make sure Arrow filter and take kernels early out where it makes sense #7704

🧑‍🏫 Examples

📚 Docs

  • Add video reference docs #7533
  • Document that Rerun does not support left-handed coords #7690
  • Add a How-to guide for the dataframe API #7727
  • Docs: move "roadmap" down to "development" #7775
  • Add a "Getting started" guide for the dataframe API #7643
  • Docs: clean up reference menu #7776
  • Updating "Navigating the viewer" #7757

🖼 UI improvements

  • Add a hook for views to add additional UI in the tab title bar #7438
  • Text fields in the selection panel now span the available width #7487
  • Do not deselect on ESC when it was used to close some other UI element #7548
  • Add UI for precisely picking an exact sequence time #7673
  • Remove the feature flag for plot query clamping #7664

🎨 Renderer improvements

  • Introduce image data conversion pipeline, taking over existing YUV conversions #7640

🧑‍💻 Dev-experience

  • Add a command palette action to reset egui's memory (debug build only) #7446
  • Add NOLINT block to lint.py #7720

0.18.2: Bug fixes and performance improvements

29 Aug 15:25
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.


Rerun 0.18.1 was (soft) yanked as we realized a bit too late that it was incomplete: we're jumping straight from 0.18.0 to 0.18.2.
0.18.2 is simply 0.18.1 with #7308 on top.

This patch release comes with the following fixes:

🌊 C++ API

  • Install sdk_info.h even if RERUN_INSTALL_RERUN_C option is OFF #7246 (thanks @traversaro!)

🐍 Python API

  • Fix VisualizerOverrides serializer and improved error handling #7288

🦀 Rust API

  • Add rerun::external::ndarray #7259
  • Handle proper half-size splatting semantics in from_mins_and_sizes #7291

🪳 Bug fixes

  • Fix error when trying to clear non-existent component #7215
  • Fix gamma (srgb EOTF) for GLTF via Asset3D embedded rgb(a) textures #7251
  • Fix Chunk::component_batch_raw not checking the bitmap first #7286
  • Fix and test all known HybridResults issues from 0.18 #7297
  • Fix secondary plot components ignoring blueprint defaults #7302
  • Fix relayout on tab background click #7283
  • Update time crate to 0.3.36, fixing compilation on newer Rust versions #7308

🚀 Performance improvements

  • Speed up data density graph by rendering them more coarsly #7229
  • Default RERUN_CHUNK_MAX_BYTES to 384kiB instead of 4MiB #7263
  • Speed up handling of large numbers of transform entities #7300
  • Fix memory leak by updating to re_arrow2 0.17.5 #7262

🖼 UI improvements

  • Hide time controls if there is only one time point on a timeline #7241

📦 Dependencies

  • Correct dependency on puffin to 0.19.1, preventing a possible build failure #7221 (thanks @kpreid!)
  • Update time crate to 0.3.36, fixing compilation on newer Rust versions #7228

0.18.1: Bug fixes and performance improvements

29 Aug 09:32
Compare
Choose a tag to compare

Rerun is an easy-to-use visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.


This patch release comes with the following fixes:

🌊 C++ API

  • Install sdk_info.h even if RERUN_INSTALL_RERUN_C option is OFF #7246 (thanks @traversaro!)

🐍 Python API

  • Fix VisualizerOverrides serializer and improved error handling #7288

🦀 Rust API

  • Add rerun::external::ndarray #7259
  • Handle proper half-size splatting semantics in from_mins_and_sizes #7291

🪳 Bug fixes

  • Fix error when trying to clear non-existent component #7215
  • Fix gamma (srgb EOTF) for GLTF via Asset3D embedded rgb(a) textures #7251
  • Fix Chunk::component_batch_raw not checking the bitmap first #7286
  • Fix and test all known HybridResults issues from 0.18 #7297
  • Fix secondary plot components ignoring blueprint defaults #7302
  • Fix relayout on tab background click #7283

🚀 Performance improvements

  • Speed up data density graph by rendering them more coarsly #7229
  • Default RERUN_CHUNK_MAX_BYTES to 384kiB instead of 4MiB #7263
  • Speed up handling of large numbers of transform entities #7300
  • Fix memory leak by updating to re_arrow2 0.17.5 #7262

🖼 UI improvements

  • Hide time controls if there is only one time point on a timeline #7241

📦 Dependencies

  • Correct dependency on puffin to 0.19.1, preventing a possible build failure #7221 (thanks @kpreid!)
  • Update time crate to 0.3.36, fixing compilation on newer Rust versions #7228