CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 492
Releases: rerun-io/rerun
Development Build
c6cde9a
Compare
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/c6cde9a
Wheels can be installed with:
pip install --pre --no-index -f https://build.rerun.io/commit/c6cde9a/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/c6cde9a/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/c6cde9a/rerun_js
Assets 22
0.24.0 - Light mode, streaming video and data model improvements
Compare
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 rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.24.0/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.24.0/rerun_cpp_sdk.zip
✨ Overview & highlights
💽 Tagged components
Starting with 0.22 Rerun began storing additional meta-information for each component,
identifying its field name (e.g. vertex_colors
) and its archetype (e.g. Mesh3D
).
We finally concluded this effort and made all parts of the Viewer and API aware of this.
While this is mostly about under-the-hood changes, this has a lot of surface level benefits:
- You can now log the same component type multiple times on a single entity path.
For example, logging multiple archetypes which use theColor
component onto the same entity was possible before, but the colors would have overwritten each other:
rr.log("path", rr.GeoPoints(lat_lon=[some_coordinate], colors=[0xFF0000FF]))
rr.log("path", rr.Points2D(positions=[0.0, 0.0], colors=[0x0000FFFF]))
rr.log("path", rr.Mesh3D(vertex_positions=vertices, vertex_colors=[0x00FF00FF]))
- The UI now groups by archetype everywhere and will show the same field names you use in the logging SDKs
- Better blueprint defaults: component defaults are now per archetype field and not per type. Making them a lot more useful.
- No more indicator components! These showed previously up in the UI and needed special handling for some advanced use cases.
🎥 Video streams
Rerun previously supported video only in the form of MP4 files,
so it was not possible to stream live encoded video to Rerun.
The new VideoStream
archetype remedies that!
If you already have encoded video frames, it is just as easy as logging images now:
rr.set_time("time", duration=float(packet.pts * packet.time_base))
rr.log("video_stream", rr.VideoStream(codec=rr.VideoCodec.H264, sample=bytes(packet)))
For now, we only handle H.264, but support for more codecs is on the roadmap.
Learn more on the updated video reference page.
😎 Light mode
Rerun finally has a light mode.
The theme defaults to your OS's setting, but can be adjusted in the settings menu.
🔀 Multi sink
Previously, the SDK's recording stream could only send to one sink at a time.
We now expose the ability to set multiple sinks at once, so you can simultaneously
stream to both the Viewer and a file.
Here's what that looks like in Python (but the API is available in C++ & Rust as well!)
rr.set_sinks(
# Connect to a local viewer using the default URL
rr.GrpcSink(),
# Write data to a `data.rrd` file in the current directory
rr.FileSink("data.rrd"),
)
🤖 Built-in URDF data loader
You can now log URDF files directly to Rerun using the log_file
API.

👀 Other highlights in short
- New
Cylinder
archetype AnyValues
utility for Rustrerun rrd stats
for retrieving statistics about rrd filesrerun rrd route
command to manipulate .rrd files on transport level- Much faster & better compaction for both
rerun rrd compact
and automatic in-Viewer compaction - Viewers started with
spawn
use now less memory since it no longer sets up an GRPC server for message forwarding - View3D's eye control type & speed can now be changed from blueprint (and as such is persisted over session!) more properties will follow in the future. (thanks to @jccampagne)
🔎 Details
🪵 Log API
- Remove deprecated
Scalar
,SeriesLine
,SeriesPoint
archetypes #9892 - Remove untagged
Component::descriptor()
#10038 - Add
Cylinders3D
archetype #10139 - Provide
AnyValues
helpers in Rust SDK #10074 - Rename
ComponentDescriptor
fields and use colons in Sorbet metadata #10245 - Stop logging indicators and drop them during migration #10521
- Make
SeriesPoints::markers
component required #10572 - Remove indicators from codegen,
rerun_py
, andrerun_cpp
#10581 - Removes remnants of indicators from dataframe queries and viewer #10584
rerun rrd stats
#10593- Source default batcher settings from sink #10620
🌊 C++ API
- (CMake) download arrow inside the rerun build folder instead of general binary folder #10141 (thanks @jzubizarreta!)
- Fix documentation wording on which arrow-cpp version to use #10235
- Disable gRPC server history for Spawn/CLI #10314
- Add
set_sinks
to C++RecordingStream
#10359
🐍 Python API
- Add
Dataset.register_batch
and wrappers for task ids #9895 - Introduce
ConnectionRegistry
for centralised redap client and token management #10078 - Build in
manylinux_2_28
container #10148 - Add APIs to Dataset to query and update the associated blueprint #10156
- Support for seconds-since-Epoch numpy arrays for constructing
TimeColumn
#10168 (thanks @MichaelGrupp!) - Fix initializing two recordings with the same recording id causing SDK hangs #10201 (thanks @AhmedMousa-ag!)
- Improve
rerun_notebook
startup times #10111 - New dataset API for just retrieving
chunk_ids
associated with a query #10261 - Multi-sink /
tee
Python API #10158 - Rename to
tee
toset_sinks
#10312 - Add support for
index=None
to local and remote dataframe APIs and deprecateselect_static
#10332 - Disable gRPC server history for Spawn/CLI #10314
- Deprecate
serve_web
and improve documentation around how to serve a web viewer #10360 - Add partition ID to
TimeUpdateEvent
#10403 - Fix
set_time_ctrl
not doing anything when called twice #10547 - Notebook auto-sizing #10554
- Add
RegisterTable
rpc,LanceTable
message, and related proto changes #10538 - Add
open_url
/close_url
notebook APIs #10602 - AnyValue Torch Performance Improvement #10647
- Make it easier to disable the 3D line grid in Python (blueprint) #10621
- Add
to_arrow_reader()
toTableEntry
andDataFusionTable
#10601 - Make it possible to configure batcher explicitly via python APIs #10657
🦀 Rust API
- Update MSRV to 1.85 #9798
- Improve
rerun
crate forwarding, removing need to depend on otherre_*
crates for viewer customization [#9825](https://github.com/r...
Assets 22
- sha256:e18ba612b90ba02e2bc947d28fc7e0d8f5752651ccd7c76f65de5e5af539c9f0
2025-07-17T17:49:55Z - sha256:46cdbf0a8fb2e9bee114638a58dbdf3b2f05ddbe7bbb5f7b612ce6d7ba9b99a1
2025-07-17T17:49:51Z - sha256:b8ee6bf65474564768357d778b470336f21d6d7924494c5293c85ca272d739d5
2025-07-17T17:50:00Z - sha256:a637250f58d442342badff2f78910bf886cf66ad5f95bc3a0ec1214b54583f59
2025-07-17T17:49:46Z - sha256:3d4f5caf8402f208fc6d493329cdee1ccd70371b0ff04a2e7d93fec34ab58269
2025-07-17T17:50:29Z - sha256:dccfc4f7006c109644a90fc6fdebebed0057bbec8e85c7780ea16ae480e0a500
2025-07-17T17:50:24Z - sha256:e79e7fb5d82a2cbca0350c4e541e44cb555028c063af4e4ffebade2e2529717b
2025-07-17T17:50:34Z - sha256:9aa341bcb96c8329d4f68d29eb95315e179c77859c9121a3683524bf95989337
2025-07-17T17:50:13Z - sha256:27ced74ffe4301b4ebd4f956b49e8b56b312913e64584762c4fbbcbf6724dc5c
2025-07-17T17:50:19Z - sha256:125ae5257fdc2f24b2e454e4933c50489eac1c8db362ed2cdbe3f8386eea6267
2025-07-17T17:50:42Z -
2025-07-17T15:23:14Z -
2025-07-17T15:23:14Z - Loading
0.23.4 - Fix `rerun rrd migrate` tool
Compare
This release is a pure bugfix release for migration of old RRD files in how meta-data keys for archetypes & field names were handled.
For details see #10350
Assets 20
0.24.0-alpha.3
Compare
Bump versions to 0.24.0-alpha.3
Assets 22
0.23.3
Compare
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 rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.23.3/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.23.3/rerun_cpp_sdk.zip
This patch release contains various bugfixes, improvements, and updated documentation.
🔎 Details
🌊 C++ API
- Fix building with arrow 20.0.0 #9966 (thanks @adamreeve!)
- Fix MSVC C++20 compilation issues #9951
🪳 Bug fixes
- Add draw order to video (-frame-reference), fix 2d objects sometimes being behind videos #9946
- Fix time series points querying extra points at start and end of time range (causing stuttering on playback in some scenes) #9963
- Increase max size of gRPC messages #10006
- Check TextEdit state before copying selection description #10063
🌁 Viewer improvements
- Use recording name for file name when saving a file #9982
- Improve error message for
QueryError
andDataLoaderError
#9998
🚀 Performance improvements
- Series of build changes for web release to minimize generated wasm #9870
📚 Docs
- Remove remaining mentions of
rr.connect
#10016 - Update callbacks and custom_callbacks example docs to mention the other #10062
- Fix missing reference to
Spatial3DView
inPinhole
docs #9932 (thanks @hu-po!) - Mention URL scheme in
connect_grpc
docs #10018
🤷 Other
- LeRobot: Add support for List datatype #9958
Assets 20
0.23.2 - RRD migration and bugfixes
Compare
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 rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.23.2/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.23.2/rerun_cpp_sdk.zip
✨ Overview & highlights
- New CLI tool to migrate
.rrd
files - Various bugfixes
.rrd
migration tool
With 0.23
, we made several breaking changes that resulted in older .rrd
files not being able to load at all anymore.
To help smoothen the migration to 0.23
, we're introducing a migrate
command to the Rerun CLI:
rerun rrd migrate colmap.rrd arkit.rrd rgbd.rrd
The command will copy the contents into a .backup
file, and then migrate the file.
Due to the incompatibility between .rrd
files from 0.23
and those from earlier versions, this command likely
won't be able to migrate every recording perfectly. We expect the migration to work on files between 0.20
and 0.22
,
simpler recordings may work as far back as 0.18
.
We plan to use this command future .rrd
migrations as a way to fulfill our N+1 compatibility guarantee:
- Viewers after
0.23
will always be able to load recordings from the previous version. - Recordings from
0.23
and beyond may be migrated to the next version.
We currently have no plans for compatibility or migrations across multiple versions.
🪵 Log API
- Improve and mitigate warnings around data loss when flushing #9846
🐍 Python API
- Add
ViewerClient
torerun.experimental
#9828 - Improve
set_time
error handling for large Python integers #9839 - Properly resolve component selectors in dataset index creation and search APIs #9854
- Fix incorrectly advertised minimum supported
pyarrow
version (18.0.0 is required) #9878 - Fix incorrectly advertised numpy 1.x support (numpy2 is required now) #9880
🪳 Bug fixes
Assets 20
0.23.1 - Fix notebooks
Compare
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 rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.23.0/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.23.0/rerun_cpp_sdk.zip
🪳 Bug fixes
- Use correct URL for
RERUN_NOTEBOOK_ASSET
#9800
🌊 C++ API
- C++: Emit warnings when using deprecated Rerun types #9801
🐍 Python API
- Direct API for setting blueprint on a notebook-embedded viewer #9804
🌁 Viewer improvements
- Fix doclinks to archetypes #9791
🧑🏫 Examples
- Add link to Gradio annotation example #9790 (thanks @pablovela5620!)
🖼 UI improvements
- Show image format (resolution etc) of image blobs #9792
Assets 20
0.23.0 - Backwards compatible `.rrd` and multi-scalar logging
Compare
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 rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.23.0/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.23.0/rerun_cpp_sdk.zip
✨ Overview & highlights
Viewer
- ⏩ New .rrd format that will be backwards compatible
- 📈 Support for multiple scalars under a single entity
- ↪️ Callbacks API for notebooks and JavaScript
- ⚙️ New APIs for attaching properties (metadata) to recordings
- 🧮 Experimental support for tables and dataframes
Multiple scalars under a single entity
In this release we have added support for logging scalar data with multiple signals, under the same entity. This allow you to log data that inherently belongs together, such as the action values in a LeRobot dataset or gyroscope measurements, under the same entity path.
As part of this update, we're deprecating the SeriesLine/SeriesPoint/Scalar
archetypes in favor of the plural versions SeriesLines/SeriesPoints/Scalars
, for consistent naming with the other archetypes.
For example, the x
, y
and z
component of a gyroscope measurement, previously would be logged as separate entities:
rr.log("gyroscope/x", rr.Scalar(measurement[0]))
rr.log("gyroscope/y", rr.Scalar(measurement[1]))
rr.log("gyroscope/z", rr.Scalar(measurement[2]))
Now can be logged under a single entity:
rr.log("gyroscope", rr.Scalars(measurement))
See the new IMU signals example for more
The SeriesLine
and SeriesPoints
archetypes now include a visible_series
component that lets you control which series appear in your visualizations. Unlike the regular entity visibility property, hidden series will still show up in the legend.
Callbacks API for notebooks and JavaScript
We've added a (limited) API with callbacks, useable from JavaScript and from Notebooks (but not yet from out logging SDKs).
With this you can easily write simple annotations tools.
We've created an example for this using Gradio at https://github.com/rerun-io/annotation-example.
Recording properties
For this release, we have improved Rerun's logging capabilities. There is a new recording properties concept in all of our APIs.
Recording properties allow you to attach metadata to a recording.
For example, you can now change the name of your recording via .send_recording_name("My episode")
, which will show up in the recording panel of the viewer as well.
You can also log arbitrary data via the general .send_property()
method.
Properties are logged as static data and will therefore show up in the timeline as well.
Also, the side-panel shows an overview of the properties when a recording is selected.



Our snippets now contain examples for recording properties in all SDKs:
- 🐍 Python (
recording_properties.py
) - 🦀 Rust (
recording_properties.rs
) - 🌊 C++ (
recording_properties.cpp
)
Experimental send_table
API
We are also working on better support for tables and dataframes in Rerun, a feature that has been requested several times by our community. With this release, there is now an experimental API send_table
that can be used to send arbitrary Arrow record batches via the Python SDK and from notebooks. For now, while we evolve this feature, this API is separate from the rest of our logging APIs. This tutorial shows how to use this APIs and also provides more details on the current implementation. In future releases, we plan to improve support for the table representation in the viewer to facility more advanced analysis tasks such as filtering, or showing summary statistics.
Please note that this is distinct from our current send_dataframe
API and dataframe query view.

⚠️ Breaking changes
This release changes how the SDKs interact with the viewer, as Rerun now relies heavily on gRPC.
Additionally, we have changed our file format and data model to be much more flexible in the future.
These changes will improve our backwards-compatibility going forward, but this also means that this release introduces breaking changes to our .rrd
format and how the SDKs communicate with the viewer.
.rrd
files from previous releases cannot be loaded anymore- Removed unsupported connection methods from the SDKs
- The connection URLs have changed and now require a
rerun://
(TLS) orrerun+https://
(unencrypted) prefix - Several changes to our logging SDKs (timelines, time units, …)
You can find more information in our 🧳 migration guide
🔎 Details
🪵 Log API
- Migrate file format to protobuf #8995
- Move
rerun.components.blueprint.Visible
torerun.components.Visible
#9067 - Infer column partition size from shape in
Scalar.columns()
#9068 - Infer partition size for FixedSizeList-backed components #9210
- Recording properties for naming recordings and adding information #9249
- Provide APIs to log arbitrary data to recording properties #9316
- Deprecate
SeriesLine
/SeriesPoint
/Scalar
in favor ofSeriesLines
/SeriesPoints
/Scalars
#9338 - Add
serve_grpc
API #9447 - Add experimental
send_recording
python api #9148 - Implement
send_table
inre_grpc_server
andre_viewer
#9510 - Example showcasing
send_table
from notebooks #9522 - Add
rr.serve_web_viewer
#9540 - Add experimental
send_table
to Python SDK #9538 - Fix handling of custom indicator components #9755
🌊 C++ API
- Migrate SDK comms to gRPC #8838
- New C++ API for timestamp/duration indices #9200
- Remove deprecated C++
connect
APIs #9212 - Add
detach_process
option tospawn
#9400 (thanks @imstevenpmwork!) - Consistent constructor naming of
Asset3D
across C++ and Rust #9239 (thanks @abhishek47kashyap!) - Use consistent time unit names for our API #9343
- CMake: Use
find_dependency
for Arrow #9548 (thanks @BillyONeal!) - Set
RERUN_ARROW_LINK_SHARED_DEFAULT
based on found Arrow build #9550 (thanks @BillyONeal!)
🐍 Python API
- Migrate SDK comms to gRPC #8838
- Update maturin to 1.8.1 and fix
pyproject.toml
#9104 - Add
rr.set_index
to replacerr.set_time_*
#9166 - Fix support for numpy-2 #9109
- Add
rr.IndexColumn
#9179 - Python SDK spring cleaning: 3.9, no more monkey patching, more lints #9182
- Enable a bunch of
ruff
lints #9201 - Remove deprecated Python APIs:
log_components
,connect
,connect_tcp
#9197 - Remove deprecated
rr.serve()
#9207
...
Assets 20
0.22.1 - LeRobot dataloader, bugfixes
Compare
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 rerun
andcargo install rerun-cli --locked
- Online demo: https://rerun.io/viewer/version/0.22.1/
- C++ FetchContent: https://github.com/rerun-io/rerun/releases/download/0.22.1/rerun_cpp_sdk.zip
A small release addressing bugs and polishing rough edges.
🛠️ Note on 0.20.0 release
An issue with the 0.20.0 release led to incorrect artifacts being published, causing a few minor changes to be missing from those artifacts. The correct version has always been available on crates.io, PyPI, Conda, and other distribution channels, so no action is needed if you installed from these sources.
🤖 Native loading for LeRobot datasets
We're gradually rolling out support for native loading of LeRobot datasets. It’s not fully feature-complete yet, there are tons of variations in these datasets, so it’ll take a bit of time to cover all the edge cases. More improvements and features are planned for the 0.23 release, so expect things to get smoother and more robust soon.
If you run into any issues, let us know! Your feedback helps us iron out bugs and improve the experience faster.
rerun_lerobot_demo.mp4
🔎 Details
🐍 Python API
- Don't use
np.float_
since it was removed in numpy 2.0 #9037
🪳 Bug fixes
- Never drop blueprint data from the WS server's message buffer #8977 (thanks @DerpDays!)
- Fix bug leading to swizzled lerobot data in dataloader #9000
- Fix Arrows2D draw order having no effect #9054
- Fix non-final releases creating final-release git tags #9085
🌁 Viewer improvements
- Infer entity paths from LeRobot dataset feature metadata #8981
- Log task descriptions for each LeRobot dataset episode #9028
- Load lerobot dataset on separate IO thread #9027
🧑🏫 Examples
- Improve
image_column_updates
python example #9065
🖼 UI improvements
- Fix link in text log view help text #8963
Assets 20
0.22.1-rc.1
Compare
Release candidate for patch release. Final release at https://github.com/rerun-io/rerun/releases/tag/0.22.1