Releases: rerun-io/rerun
0.31.3
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install -U rerun-sdk - Rust:
cargo add rerunandcargo install rerun-cli --locked - Online demo: https://rerun.io/viewer
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.31.1/rerun_cpp_sdk.zip
🔎 Details
🪳 Bug fixes
- Fix plot view time range ui 3922bea
📚 Docs
- Clearer behavior for
CoordinateFrame("")4b5c2f0
🖼 UI improvements
📦 Dependencies
- Update datafusion to 52.5.0 87af7a9
0.31.2
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install -U rerun-sdk - Rust:
cargo add rerunandcargo install rerun-cli --locked - Online demo: https://rerun.io/viewer
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.31.1/rerun_cpp_sdk.zip
🔎 Details
🪳 Bug fixes
- Fix MCAP CLI decoder identifier list 24f2604
- Fix bug where shapes defined with UI units were scaled incorrectly 9a28f8e
- Fix off-by-one bug in video stream cache e4eddc9
- Fix range queries on 3D points in
SpatialView3D213957c
📚 Docs
🕸️ Web
- Add progress bar to rerun-js and handle incomplete wasm downloads 476a178
- Add rerun-js login setting and default to hiding the login button 3203577
🤷 Other
- Stop creating the search index into
docs.rs6afa84b
0.31.1
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install -U rerun-sdk - Rust:
cargo add rerunandcargo install rerun-cli --locked - Online demo: https://rerun.io/viewer
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.31.1/rerun_cpp_sdk.zip
🔎 Details
Full 0.31.0 changelog
🪳 Bug fixes
- Fix our python 3.10 support 2ee1f4f
0.31.0 - component mappings & prettier primitives
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install -U rerun-sdk - Rust:
cargo add rerunandcargo install rerun-cli --locked - Online demo: https://rerun.io/viewer
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.31.1/rerun_cpp_sdk.zip
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-31
✨ Overview & highlights
Component mappings
meshtopoint.mp4
You can now map components more generally. Want to display your mesh as a point cloud? Just add a point cloud visualizer and select the vertex positions as the source.
Prettier primitives
spinning.mp4
Our 3D primitives got a new default look!
Performance improvements
- Optimization for point clouds, videos shared among views, data ingestion, and recordings with many entities.
⚠️ Breaking changes
- MCAP "layers" renamed to "decoders" cf0a800
rr.Serverandrr.CatalogClient:addressparameter/method renamed tourl;rerun server --addressis now--host#12402Entry.update(name=…)is deprecated in favor ofEntry.set_name(…)#12370
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-31
🔎 Details
🪵 Log API
- Redesign Lens
OpAPI to beSelector-based d962bfe - Add cull mode for front/back face culling on
Mesh3Dbe5a50f - Add
frame_prefixtoUrdfTreefor multi-robot URDF setups 8e27391
🐍 Python API
- Improve
DynamicArchetypedocs with example on how to use builtin batch types 2052af5 - Narrow typing for dynamic archetype 7b0bfaf
- Fix wrong variable in error message for extra args in log() #12674 (thanks @jashshah999!)
- Allow re-registering the same blueprint to a dataset fd03bf0
- Fix
using_index_valuenot accepting pyarrow data of the correct types 62b8ac3 - Fix passing color columns with one element in the python sdk e312d36
- Entity filter: do not include all properties if a single property is included 5d3a25f
- Support binary stream 0a05422
- Reuse precomputed timelines dict in send_columns instead of re-iterating indexes #12673 (thanks @jashshah999!)
- Add description back to python package 6ab7971
- Add
save()toRecording4ab863a - Add
compress()andas_pil_image()toDepthImagewith PNG compression bde6870 - Introduce
ChunkAPI to the Python SDK 32eb891 - Adds
rr.logoutto Python SDK 97af60e - Disable cloud vector & full-text-search for now 3da7180
- Add ContentFilter for cleaner filter_contents 8ce6d13
- Add cloud provider details to end point c8dd0c8
- Add component descriptor helper to Python archetype classes 8a2ef31
🦀 Rust API
🪳 Bug fixes
- Fixes recording staying open when user logs out 80ab340
- Selection panel: show all values at the latest time stamp 474dbe8
- Gracefully handle Rrd Manifest failures 900edfd
- Fix docs urls being loaded as data sources 80e3ce6
- Fix: fix clicking names of color maps 92529ca
- Fix rare ui id conflict in list item content 0966696
- Fix drag'n'drop issue on web 2d97010
- Handle
?url=rerun+http://…in web viewer 0a47b41 - Fix weird tooltip sizes in streams view 0d98570
- Fix showing empty label boxes for various 2d & 3d visualizations 9c547ce
- Fix bounding box calculation for GLB/GLTF & DAE meshes 8382f14
- Fix eye camera being affected by previous recording of the same application/dataset 1b9a60f
- Ignore NaN/Inf values for bounding box calculations used in 3d eye camera operations 3e26be7
- Ensure that share modals are always on top 8d8eb40
- Add zoom in limit to camera, because zooming in too far broke the view 4534001
- Bump
lz4_flexto prevent web viewer crashes 9355dd8 - Improve handling of texture creation errors ea4283e
- Fix prematurely resetting to Welcome screen even if stream finished properly 46d86eb
- Fix flipping chunks between loaded/unloaded when hovering time panel 0e51fa6
- Fix unset/reset not being greyed out for previously cleared out values 45f6ed2
- Fix default blueprint not being activated for Redap segments e66cb92
- Don't close active recording when opening settings ea86ae9
- Fix some AV1 videos not playing in the WebViewer c062098
- Fix
sensor_msgs::PointCloud2MCAP parser for empty point clouds #12684 (thanks @Woodii1998!) - Stop time control following if set time is called acba7b3
- Support LeRobot feature names on the
ListArraypath 30a86e1
🌁 Viewer improvements
- Support custom bool types in plots 888a9e8
- Add util to compute column of
Transform3Dupdates for URDF joints #12666 - Unified color swatches c020c80
- Make more visualizer errors point to specific components that are in an invalid state 19b2c79
- Add context menu to visualizer pills on time series view 136a2d1
- Make many more required components ui editable [2f791ad](https://gi...
Development Build
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/3f76a0f
Wheels can be installed with:
pip install --pre --no-index -f https://build.rerun.io/commit/3f76a0f/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/3f76a0f/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)
Web Viewer NPM package
Can be installed with:
npm install https://build.rerun.io/commit/3f76a0f/rerun_js
0.30.2
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk - Rust:
cargo add rerunandcargo install rerun-cli --locked - Online demo: https://rerun.io/viewer
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.30.2/rerun_cpp_sdk.zip
✨ Overview
Among many other things, this patch addresses a security advisory (SNYK-RUST-JSONWEBTOKEN-15189005) and adds a new example!
🔎 Details
🐍 Python API
- Expose executable_name and executable_path in Python spawn() #12685
🪳 Bug fixes
🚀 Performance improvements
- Share video players between views, de-duplicating video decoding work between pinholes and 2d views ed236da
🧑🏫 Examples
- Add any scalar example 3f58058
🖼 UI improvements
- Show tooltip even when hovering play head in the time series view e44fbf0
🧢 MCAP
- Add a list of available layers to mcap convert cli 89f18dc
- Decode MCAP metadata records into
__propertiescc8f1c2
📦 Dependencies
- Upgrade
jsonwebtokento 10.3 312c3b8
0.30.1 - Bugfixes & Viewer improvements
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk - Rust:
cargo add rerunandcargo install rerun-cli --locked - Online demo: https://rerun.io/viewer
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.30.1/rerun_cpp_sdk.zip
✨ Overview & highlights
This patch on top of 0.30.0 comes not only with a random assortment of bug fixes but also some small improvements to the Viewer.
Most notably it's now possible to inspect values that were logged on the same timestamp!

🔎 Details
🐍 Python API
- Allow re-registering the same blueprint to a dataset cafbec9
- Fix
using_index_valuenot accepting pyarrow data of the correct types c59df09
🪳 Bug fixes
- Gracefully handle Rrd Manifest failures f14e343
- Fix docs urls being loaded as data sources 3eb98db
- Fix fix clicking names of color maps 700b590
- Fix rare ui id conflict in list item content 352f7c8
- Fix drag'n'drop issue on web 956ed91
🌁 Viewer improvements
- Selection panel: show all values at the latest time stamp 36ff7ff
- Limit number of plots only for non-builtin components and increase the limit f4fb62b
- Show all visualizable scalars on time series add-visualizer menu 0da70a5
- Stop warning on synthetic
oneofprotobuf fields 84ee94e
📚 Docs
- Corrected the docs example for the
DynamicArchetype32c37e8
🖼 UI improvements
🧢 MCAP
- Support also "sec" & "nsec" in
TimeSpecToNanos31c9a43
0.30.0 - Plot any scalar & on-demand streaming
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data.
Try it live at https://rerun.io/viewer.
- Python:
pip install rerun-sdk - Rust:
cargo add rerunandcargo install rerun-cli --locked - Online demo: https://rerun.io/viewer
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.30.0/rerun_cpp_sdk.zip
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-30
✨ Overview & highlights
📈 Plot any scalar
anyscalar.action.4.mp4
You can now plot any scalar value, even if it lacks Rerun semantics in time series views. For instance, this lets you plot any value in an MCAP file.
In addition to plotting scalars from MCAP files, it is now possible to visualize arbitrary scalar components that were logged using AnyValues or DynamicArchetype. The supported data types are:
Float32andFloat64Int8,Int16,Int32, andInt64UInt8,UInt16,UInt32, andUInt64Boolean- Any of the above nested inside of Arrow structs.
This also makes it possible to log and visualize multiple scalars to the same entity, which can drastically reduce the size of the resulting .rrd files.
Note that by default, and without blueprints, views are still only spawned for entities with Rerun semantics.
Time series views for entities with custom scalar components need to be spawned either:
- from the context menu of the streams,
- by adding a view from the blueprint panel,
- or by specifying a blueprint using the Python or Rust SDK.
The components that should be visualized can be selected via a new dropdown menu from the completely revised visualizer section in the selection panel.
To quickly navigate to the desired visualizer, each time series view now shows an overview of it's current visualizers.
For more details please refer to our documentation:
- Customize views
- Plot any scalar
- Component mappings outside of plotting, shown on the example of a colored point cloud
Thanks to a contribution from @vfilter, the series lines visualizer now also supports different interpolation modes to render staircase (or step) functions:
📡 On-demand streaming / larger-than-RAM
The Rerun Viewer now supports on-demand streaming, when connected to either the OSS server or Rerun Cloud.
on-demand-streaming.mp4
With on-demand streaming, whatever you are currently viewing will be downloaded first.
This includes time-scrubbing to the end of a very long recording and quickly seeing what is there, or viewing only one camera feed of many.
Of course, your memory limit will be respected, and when you change your view or move the time cursor, the stale data will be evicted and the new data downloaded.
This also means that the web viewer can finally view recordings larger than the 4GiB limit enforced by Wasm32, as long as those recordings are served by a Rerun server.
It also means that Rerun Cloud users can view huge recordings, larger than what fits into RAM.
The OSS server, however, still loads everything into RAM before serving it.
Usage:
> rerun server -d folder_with_large_recordings
Then either open the native viewer:
> rerun "rerun+http://127.0.0.1:51234"
Or the web viewer:
> rerun --serve-web "rerun+http://127.0.0.1:51234"
🦾 Support for many more MCAP message types
Like in the previous releases, we're continually expanding our support for common robotics data to make it easier for users to load their existing recordings.
This release adds support for Foxglove Protobuf schemas to our built-in MCAP data loader, in addition to the existing set of supported ROS 2 messages.
You can find an overview of all the messages that are currently supported here.
🎨 Extend existing views without forking
Previously, extending the Viewer with custom Rust code required creating an entirely new view type,
even if you just wanted to add a single new visualization to the existing 3D view.
Now, you can register custom visualizers that plug directly into existing views, using fully custom archetypes & shaders in the process!
2026-02-20_17-13-08.mp4
In practice this works currently only well for 2D, 3D, and Map views but we'll keep working towards
making the Viewer more and more modular & extensible!
For more details, see the custom visualizer example and the viewer rust extension docs for a general overview.
⚠️ Breaking changes
- Python:
segment_url_udfandsegment_url_with_timeref_udfhave been removed - Python:
segment_urlparameter names have been updated - CLI:
.rrdfiles are no longer tailed by default - SDK:
SeriesVisiblecomponent type has been removed
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-30
🔎 Details
🪵 Log API
- Fix performance regression with
--server-memory-limit 0cfc9a4c - Remove
SeriesVisiblecomponent in favor ofVisible1fca08a rerun rrd verifynow checks for the presence of RRD manifests 2000ba5- Footer-preserving RRD routing b56a145
🌊 C++ API
- Build C++ snippets into a single executable to avoid link time overhead b0a3876
🐍 Python API
- Basic Rust & Python blueprint API for component mappings c6d7409
- Ensure that
import rerun_sdk.reruncan be used 196c658 - Expose
on_duplicatein the Python SDK e909e20 - Small conversion improvement 383d37d
- Table entry APIs: provide a hint for single-row list data cb38397
- Add hint to prepend
api.on connection error a2ef1b3 - No longer return all columns when
filter_content()matches nothing 5997d6f - Remove deprecated UDFs b078e18
- Allow access to redap token from python sdk bc2ce79
- Expose "rerun_registration_status" to
DatasetEntry.manifest()881cee6 - Correctly handle lists in
AnyValues/DynamicArchetype.columnsd2b53da - Atomic (un)registrations 153acd1
- The
urlargument ofCatalogClient.create_table()is now a prefix [1eb6c79](1eb6c790d7c26f47da8dcfc8...
0.29.2 - Bug fixes and documentation update
✨ Overview & highlights
This patch release contains bug fixes and adds a documentation guide with an example for converting existing data to Rerun.
🔎 Details
🪵 Log API
- Fix performance regression with
--server-memory-limit 0cefbdf6
🐍 Python API
- notebook: Re-export viewer event types 51d949e
🪳 Bug fixes
- Fix table config button symbol for light-mode 57b0121
- Fix drag-and-drop of
.mcapfiles on web #12631 - Ensure we report file loading errors on web 7fd794e
🌁 Viewer improvements
- Show error when rerun_js viewer panics or fails to load 04e7ae8
📚 Docs
- Add snippet demonstrating conversion of custom MCAP protobuf file to RRD 53fbeeb
- Add documentation for converting custom data to RRD using log/send_column 815d45c
🖼 UI improvements
0.29.1 - Improved labels, bug fixes & performance improvements
✨ Overview & highlights
This is mainly a patch release with some fixes and improvements.
We also included a change that makes labels translucent. This makes them less obtrusive and improves visibility of overlapping labels, as shown in the image segmentation example below.
🔎 Details
🐍 Python API
- Ensure that
import rerun_sdk.reruncan be used fd28cd3 - Allow access to redap token from Python SDK 51506ca
🪳 Bug fixes
🌁 Viewer improvements
- Make labels in spatial view translucent ec62ad9
🚀 Performance improvements
- Do faster lineage check in release builds 0d546c0
