Releases: rerun-io/rerun
Release list
0.34.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.34.1/rerun_cpp_sdk.zip
🔎 Details
🪳 Bug fixes
- Fix: auto-refresh collections when opening a recording 9d40120
- Better error for unsupported mp4 codec 949b6a8
- Fix stack overflow for live-streamed data 1f3f5af
📦 Dependencies
- Patch
tonic-web-wasm-clientwith cherry-picked trailer changes 7436cda
0.34.0 - Viewer MCP & Learning Course
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.34.0/rerun_cpp_sdk.zip
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-34
✨ Overview & highlights
Viewer MCP
We've added a MCP that allows an llm agent to see and interact with the Viewer!
You could ask your agent to
- verify its work looks as expected in the Viewer.
- debug a bug when something doesn't show up right.
- explore a recording or dataset to search for specific patterns.
The agent has full control over the Viewer, meaning it can see and click any widget.
Here's an example where Claude Sonnet was asked to create a fancy particle animation of the Rerun logo and verify its
work using the mcp in the open Viewer (sped up by a lot, except when showing the end result):
mcp_demo.mp4
Once it wrote the script, it logged the recording to the Viewer, and then iterated until the result looked as requested.
It adjusted the camera position, improved the particle rendering by looking at different frames in the animation,
and then debugged why the fade out animation was still showing particles on the last frame.
Full prompt
/goal Create a new rerun python example in this folder that uses reruns 2D shapes to recreate the rerun logo (rerun-wordmark-black.svg).
There should be a nice fade-in animation in the beginning, 10 frames duration. Then pause a bit with the full rerun logo visible and then
the shapes should explosively fade away with a 20 frame animation before the recording ends.You may only stop once the recreated logo in the viewer looks close to the provided svg (black text, white background).
Use the mcp to verify in the open viewer, don't ever kill it. Once done, launch an opus agent and ask it to judge how
closely it looks to the original image. Keep going until it's convinced that it looks close.
See our mcp docs to get started.
Learning course
https://rerun.io/learn is a great way to learn how the Rerun data model covers the full physical AI experiment loop.
It is a short, hands-on course for robotics ML engineers who want the full robot learning data loop in one place:
raw data -> RRD -> derived layers -> dataset queries -> training -> evaluation
Rerun agent skills
We added new skills to the Rerun repo to make it easier to investigate existing robotics data with Rerun.
You can install the skills in your project via:
npx skills add rerun-io/rerunThe new learning course also shows how these agent skills can be used to collect, refine and train with robotics data.
VoxelGridMap archetype
Rerun now supports sparse voxel grids through a new VoxelGridMap archetype (thanks to @makeecat for the contribution!).
The archetype supports sparse indexing, anisotropic voxel sizes, pose offsets, and optional explicit colors or values & colormap per voxel.
Rerun's MCAP importer now also converts the dense ROS nav2_msgs/VoxelGrid and Foxglove VoxelGrid formats to Rerun VoxelGridMap.
And if you wonder how the smooth 3D navigation through the voxel scene in this video was done, see below!
voxel_grid_teaser.mp4
🎮 Gamepad support in 3D views
You can now use a gamepad to navigate 3D views in the native viewer.
This makes it easier to do fine-grained, complex maneuvers with varying speed - e.g. for navigating large scenes or for screen videos.
Analog sticks control the eye position and look target, shoulder triggers move the eye up and down, and shoulder buttons accelerate/decelerate.
Note: The gamepad feature is currently experimental and can be activated through the settings menu.
Switch the 3D view's eye controls to FirstPerson for optimal experience.
Under the hood, we use the gilrs crate that supports a wide range of devices.
Drag & drop components
You can now drag & drop a component right from the streams panel to visualize it in a Time series view or Status timeline.
615146790-591024b9-57e7-4864-98f6-0b15ffb7ca2b-1782828747052.mp4
Transform debugging tool
We added a new debugging UI for visual introspection of the 3D transform cache.
This allows to view the tree structure of the transform hierarchy, including potentially disconnected trees, and inspect the latest stored values of each frame node or transform edge.
The UI supports horizontal and vertical tree layout and you can filter by transform type (e.g. static or temporal).
Note: this UI is currently a tab in the dev panel (accessible via "Toggle dev panel" in the menu or ctrl/cmd+shift+m).
But we are open to making this a dedicated view in the future - let us know if you have any feedback!
transform_dev_panel_teaser.mp4
⚠️ Breaking changes
- SDK: If you relied on the
log_ticktimeline being automatically created, you'll now have to callset_log_tick_enabled(true). - Python:
rr.send_dataframeis now stricter for more correctness. See the migration guide for more details. - Python: The deprecated python module
rerun.recordinghas been removed; Usererun.experimental.RrdReaderinstead. - SDK: Several deprecated
DatasetEntrymethods have been removed. - SDK:
ParquetReadercolumn rules have been removed in favor of lenses.
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-34
🔎 Details
🪵 Log API
- Make
log_ticktimeline OPT-IN f734978 - Allow to change shading of
Points3Dcd7fa3e - Extract out re_mp4_reader from importer 6eeeede
- Add stream-mode support and Python
Mp4ReaderLazyChunkStream binding e87dd89
🐍 Python API
- Add headless viewer mode 7e31c42
- rerun-sdk[datafusion] and rerun-sdk[dataplatform] extras are now rerun-sdk[catalog] 182cbb0
- Remove deprecated
Recordingand related APIs 2156155 - Split dataloader queries into windowed and keyframe-anchored 9ccc89e
- Introduce direct
ChunkStorequerying with.reader()d14018e - Fix
ViewerClient.closenot closing subprocesses on Windows 2bc53b6 - feature-removal: drop custom indices 4dd9c78
- Deprecate
DatasetEntry.manifest()fd24de9 - Make
Chunk.from_record_batchmore flexible d1771d4 - Remove
column_rulesfromParquetReaderAPI d18da8e - Add casting capability to derive lens f76a7d5
- Introduce
packbuilt-in function to lenses a5ea965 - Introduce
DeriveLenshelpers for common components a93eb62 - Add support for duration timelines to
FixedRateSampler45bddb7
🦀 Rust API
- Add headless viewer mode 7e31c42
🪳 Bug fixes
- Take grpc server into account when purging viewer memory f83f167
- Move relative time view range when moving time cursor e9b22c5
- Don't show loader for encoded images when playing before their encoding data has been loaded c2eed0a
- GC ever growing fields in
ChunkStore[f5747cf](https://github.com...
0.33.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.33.1/rerun_cpp_sdk.zip
🔎 Details
🪳 Bug fixes
- Do not delete "duplicate" chunks that contain transform data b2ac735
🌁 Viewer improvements
- Temporary time pause on scrubbing c7578b9
0.33.0
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.33.0/rerun_cpp_sdk.zip
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-33
✨ Overview & highlights
After our large 0.32.0 release, this one is more focused but still has some great new things in store for you!
Headless viewer
This release comes with a new headless mode for the viewer!
Together with smaller improvements to the screenshot API, this can be an invaluable tool for automation and LLM usage.
import rerun.blueprint as rrb
from rerun.experimental import ViewerClient
# Spawn a headless viewer; the client owns its lifetime.
# ⚠️ you need a graphics driver to run this (software rasterizers like lavapipe are fine too!).
with ViewerClient(spawn=True, headless=True) as viewer:
rec = rr.RecordingStream("rerun_example_screenshot")
rec.connect_grpc(url=viewer.url)
view = rrb.Spatial3DView(name="my blue 3D", background=[100, 149, 237])
rec.send_blueprint(view)
# Screenshot only the view we created earlier.
viewer.save_screenshot("my_view.png", view_id=view.id)
# Disconnect the RecordingStream before the headless viewer shuts down.
rec.disconnect()We're planning more features for ViewerClient Python object, including an MCP server allowing agents to fully instrument the Viewer.
Stay tuned!
Push-down filtering on chunk processing
This release brings a significant optimization to pipelines in the shape of:
from rerun.experimental import RrdReader
lazy_store = RrdReader(...).store()
stream = lazy_store.stream().filter(...)
# more stream operationsThe filter is now pushed down to RrdReader, which will selectively load the matching chunks only.
This massively accelerates targeted data extraction from large RRDs (e.g. extract a joint data from a RRD that also contains multiple video streams).
Improvements on experimental state timeline view
We're continue to perfect the state timeline view, and this release brings this lot of improvements:
Screen.Recording.2026-05-28.at.12.24.59.mov
- Support for numbers and boolean components, not just strings.
- Drag a component right from the streams tree into a state timeline.
- Highlight the time range of a state by hovering it.
- Clear state by logging an empty string or a
Clearmessage: the timeline shows a gap until the next state value.
Improvements on experimental dataset review
Amongst other improvements, we made the play behavior much nicer for our experimental dataset review and table blueprint feature:
preview_time_control.mp4
Nicer native Viewer title bars on Windows & some Linux desktops
On MacOS we used to have a compact title bar for a very long time. Now the same feature comes finally to Windows and some Linux desktops.
Before:
✨ After ✨:
If you experience any issues with this you can turn it off in the settings menu.
⚠️ Breaking changes
The Python optional-dependency extra for catalog/query API tools has been renamed to catalog.
| Before | After |
|---|---|
pip install rerun-sdk[dataplatform] |
pip install rerun-sdk[catalog] |
pip install rerun-sdk[datafusion] |
pip install rerun-sdk[catalog] |
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-33
🔎 Details
🪵 Log API
- Fix problem of intermixing different store messages in one rrd bee551f
🐍 Python API
- Add
trim_metadata_keysargument toChunk.format2d6cd8d - Allow
#whenanchors without#time_selection1c242c8 - Optional Hub ingestion of customer SDK traces 5a362a3
- Remove segment id validation with
dataset.reader(..., using_index_value=...)7846d38 - Dedup video stream samples in video decoder d341ba4
- Pushdown
LazyChunkStore.filter()toLazyStore99a2149 - Add headless viewer mode b050087
- rerun-sdk[datafusion] and rerun-sdk[dataplatform] extras are now rerun-sdk[catalog] fcb5b13
🦀 Rust API
- Increase the re_sdk viewer spawn timeout to 4s 230cde6
- Optional Hub ingestion of customer SDK traces 5a362a3
- Add headless viewer mode b050087
🪳 Bug fixes
- Create spatial topology from schema instead of from chunk data (fixing to sometimes never pull data) 3fffd8b
- Respect play state from blueprint with Catalog Server 35613c9
- Fix orbital zoom clamp panic on tiny scenes 6f1bcde
- Fix notification id collision a453f9a
- Fix previews repeatedly opening log sources 4e03a27
- Fix video issues after GC at start of recording 9670f20
- Dataloader: skip predicate keyframes c8b963f
- Default Safari to WebGL — Safari 26.4 broke 3D under WebGPU #12789
- Fix occasional Viewer hangs on some Wayland systems 1f7680c
- Fix handling of png encoded depth images on the web bcfbd22
- MCAP: resolve field type ambiguities in message schema reflection 0ce185b
- Implement unclamped
SetTimeand fix#whenanchors d33a6ab - Fix encoded rvl images 717b40d
- MCAP: fix
sensor_msgs/PointCloud2offsets for extra fields 20fe293 - Fix AV1 OBU walker cursor drift c61b60b
Clearlog support for state timeline 639c5e6- Take grpc server into account when purging viewer memory [09b0192](09b0192...
0.32.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.32.2/rerun_cpp_sdk.zip
🔎 Details
🪳 Bug fixes
- Create spatial topology from schema instead of from chunk data (fixing to sometimes never pull data) 6c015b9
- Respect play state from blueprint with Catalog Server 58aa9c5
- Fix orbital zoom clamp panic on tiny scenes d039a5f
- Fix video issues after GC at start of recording e230962
🌁 Viewer improvements
- Opening a url with a timestamp anchor now always pauses the recording 9977cd1
🚀 Performance improvements
- re_server: refresh schema cache after add_layer fefa95e
- Speed up queries over single columns 0a6e2d8
🧢 MCAP
- Keep MCAP channels without schema as raw data 7d3e0d5
0.32.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.32.1/rerun_cpp_sdk.zip
🔎 Details
🪵 Log API
- Fix problem of intermixing different store messages in one rrd 5620f47
0.32.0 - Chunk Processing, Pytorch dataloader, Dataset Review
Rerun is the data layer for physical AI. Log, query, visualize, and stream to training on shared columnar storage built for multimodal 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.33.0/rerun_cpp_sdk.zip
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-32
✨ Overview & highlights
Python chunk processing API
This release introduces a chunk processing API designed for systematic and efficient wrangling of robotics data.
It includes:
- A
Chunkobject for inspecting, creating, and manipulating chunks. - Readers for common file formats (RRD, MCAP, Parquet, URDF, and more to come) which output streams of chunks.
- A composable
LazyChunkStreamclass to define memory-bounded chunk-based filtering and transformation pipelines. - Lenses: an expressive and performant API to manipulate component data in chunks.
- A multithreaded, GIL-free, native engine for pipeline execution that is designed for distributed execution in the future.
- Interoperability with a catalog server and the Rerun SDK logging API.
In addition to enabling powerful data wrangling pipelines, the chunk processing API is significant for offering read/write chunk-level control of RRD files down to the raw Arrow data.
Note: this API is experimental and subject to breaking changes as we continue to improve it.
Experimental dataset review
You can now build tables of recording previews configured with arbitrary blueprints!
59636c2a3c79f0f4f543e353a87315ec416bdad8_datasetpreview.new.mp4
Clickable flags let you curate data directly from the table: toggles update a boolean flag column and are written back to the server.
To try it out, enable the experimental options in the Viewer's settings and try the two Python examples:
table_grid_with_flags for basic grids with clickable flags,
and table_blueprints for the full preview experience.
Limitations, or why this is still experimental:
- previews don't yet work directly on raw datasets; you have to send a special table to the server instead (see examples)
- table blueprints are currently text-encoded in table metadata, this is subject to change
- depending on the number and content of previews, overall runtime performance can be poor, especially in the browser
- many UX details are still unfinished
Experimental state timeline view
A new experimental view for visualizing discrete state transitions over time as horizontal colored lanes, useful for state machines, mode transitions, and similar discrete signals. Log state changes with the new StateChange archetype; configure their display on the UI or using StateConfiguration in the blueprint API.
Read our guide to get started. Feedback is appreciated!
GridMap archetype and MCAP support for ROS occupancy grids
Rerun now supports 2D grid maps, as used e.g. in robot mapping & navigation applications, through a new GridMap archetype.
- A
GridMapis an image buffer with defined cell size per pixel, which can be embedded as a textured rectangle in a 3D scene. GridMaphas a regularImageBuffercomponent, so you can also send color images (e.g. to do custom color-mapping in your code).- For layering of multiple maps you can optionally set draw order and opacity when logging, or separately in the viewer / blueprint.
- The visualizer also supports the colormap options that RViz users are familiar with, selectable at log time or in the viewer / blueprint.
- In a 3D scene, the map appears at the entity's coordinate frame (either entity-path based or with TF-style named frame like
CoordinateFrame("map")). Additionally, an optional translation & rotation offset can be specified.
For ROS 2 users:
- 🧢 Rerun's MCAP importer automatically loads ROS 2
nav_msgs/OccupancyGridmessages asGridMaps. - 📖 Our ROS 2 guide also shows an example how you can log
GridMapfrom your custom ROS nodes.
Here's a demo video showing a typical ROS 2 MCAP recording with multiple map and costmap layers in Rerun:
grid_map_release_0.32.mp4
OSS catalog server now streams from disk
The OSS server (rerun server and rr.server.Server) no longer eagerly loads RRDs in memory when registering datasets.
It instead uses the manifest embedded in the RRDs to load chunks on demand when serving requests.
This greatly extends the amount of data that can be registered and queried for a given memory budget, and makes registration orders of magnitude faster.
Note: This requires the RRDs to have a manifest, which most modern RRDs have.
Legacy RRDs are still eagerly loaded.
Use the rerun rrd optimize CLI to migrate and optimize legacy RRDs.
Plot improvements
- Performance improvement for scenes with many series. Moved from egui CPU tesselation to GPU line rendering.
- Redesigned tooltips. Hovering over a plot now shows a cleaner, more compact tooltip with color swatches matching each series. Also it is visually obvious now when events were actually logged.
- Better NaN & Infinity handling. Time series views now gracefully handle non-finite values: the Y-axis range ignores them, isolated data points surrounded by NaN are drawn as dots instead of disappearing, and aggregation skips over non-finite values rather than corrupting nearby points
Performance improvements
This release comes with a few significant performance improvements. Among other things:
- Visualizing scenes with many transforms on the same entity (as it is often the case with
tf-style named transforms) will now perform vastly better - Plot line tessellation is now GPU accelerated, using the same rendering path as our 3D lines
- Web viewer now decodes images using the web decoder, resulting in much smoother play of raw-image "videos"
- various improvements to
rrd optimize(formerrrd compact) to produce more streaming & object storage friendly data - MCAP decoder is now multithreaded
New branding
You may have noticed a new Rerun logo and app icon! We've also slightly tweaked our color palette. Stay tuned for more exciting news!
Docs feedback on the website.
As a part of our website update, we've also added a feedback form to all our documentation pages. So you can add your feedback directly to the respective topic.
☁️ Highlights for Rerun Hub customers
Several improvements in the open-source Rerun SDK are designed specifically to work with Rerun Hub.
Here are the key updates that are especially relevant if you're a customer of Rerun Hub:
Direct fetch from object storage for commercial Rerun Hub customers
The SDK will now fetch chunk data directly from the object store that holds your recordings, without needing to proxy the data through the server.
This allows for better performance in highly parallel workloads, as well as lower latency when the client is located close to the data store.
The old proxy path is still supported, and can be opted into using the RERUN_CHUNK_STRATEGY=grpc environment variable.
Experimental training dataloader
You can now train PyTorch models directly against the Rerun OSS server, with no intermediate export step!
The new highly experimental rerun.experimental.dataloader module exposes Rerun recordings as iterable or map-style PyTorch datasets, streaming encoded images, scalars, and compressed video (h264/h265/av1) on the fly. Random access, multi-worker prefetching, and DDP support work out of the box.
Each field accepts an optional window=(start_offset, end_offset) parameter, an inclusive range relative to the current index. When set, the field yields the slice of values across that window instead of a single sample. For example, window=(1, CHUNK_SIZE) returns the next CHUNK_SIZE action values after every observation, making action-chunking policies a single query per batch.
See the new LeRobot ACT training example.
Expect breaking changes between releases while we iterate on the design. For large-scale training, Rerun Hub offers a higher-performance backend.
⚠️ Breaking changes
- "Data loaders"...
0.31.4
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
- Prompt login on whoami failure a312a99
- Ensure proper
on_new_storebook-keeping for all messages 029e245 - Fix visualizations not showing up when initial data was empty c867040a
- Fix
follownot being propagated tohttpURLs with extensions 09d5f94c
🕸️ Web
- Web view add open options #12731
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