Skip to content

Releases: rerun-io/rerun

0.34.1

Choose a tag to compare

@rerun-bot rerun-bot released this 07 Jul 19:45

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


🔎 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-client with cherry-picked trailer changes 7436cda

0.34.0 - Viewer MCP & Learning Course

Choose a tag to compare

@rerun-bot rerun-bot released this 06 Jul 09:31

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


🧳 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/rerun

The 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_tick timeline being automatically created, you'll now have to call set_log_tick_enabled(true).
  • Python: rr.send_dataframe is now stricter for more correctness. See the migration guide for more details.
  • Python: The deprecated python module rerun.recording has been removed; Use rerun.experimental.RrdReader instead.
  • SDK: Several deprecated DatasetEntry methods have been removed.
  • SDK: ParquetReader column rules have been removed in favor of lenses.

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

🔎 Details

🪵 Log API

  • Make log_tick timeline OPT-IN f734978
  • Allow to change shading of Points3D cd7fa3e
  • Extract out re_mp4_reader from importer 6eeeede
  • Add stream-mode support and Python Mp4Reader LazyChunkStream 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 Recording and related APIs 2156155
  • Split dataloader queries into windowed and keyframe-anchored 9ccc89e
  • Introduce direct ChunkStore querying with .reader() d14018e
  • Fix ViewerClient.close not closing subprocesses on Windows 2bc53b6
  • feature-removal: drop custom indices 4dd9c78
  • Deprecate DatasetEntry.manifest() fd24de9
  • Make Chunk.from_record_batch more flexible d1771d4
  • Remove column_rules from ParquetReader API d18da8e
  • Add casting capability to derive lens f76a7d5
  • Introduce pack built-in function to lenses a5ea965
  • Introduce DeriveLens helpers for common components a93eb62
  • Add support for duration timelines to FixedRateSampler 45bddb7

🦀 Rust API

🪳 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...
Read more

0.33.1

Choose a tag to compare

@rerun-bot rerun-bot released this 22 Jun 11:58

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


🔎 Details

🪳 Bug fixes

  • Do not delete "duplicate" chunks that contain transform data b2ac735

🌁 Viewer improvements

  • Temporary time pause on scrubbing c7578b9

0.33.0

Choose a tag to compare

@rerun-bot rerun-bot released this 29 May 12:16

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


🧳 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 operations

The 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 Clear message: 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:

bulky title bar before

✨ After ✨:

compact title bar 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_keys argument to Chunk.format 2d6cd8d
  • Allow #when anchors without #time_selection 1c242c8
  • 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() to LazyStore 99a2149
  • 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 SetTime and fix #when anchors d33a6ab
  • Fix encoded rvl images 717b40d
  • MCAP: fix sensor_msgs/PointCloud2 offsets for extra fields 20fe293
  • Fix AV1 OBU walker cursor drift c61b60b
  • Clear log support for state timeline 639c5e6
  • Take grpc server into account when purging viewer memory [09b0192](09b0192...
Read more

0.32.2

Choose a tag to compare

@rerun-bot rerun-bot released this 20 May 15:55

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


🔎 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

Choose a tag to compare

@rerun-bot rerun-bot released this 18 May 13:26

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


🔎 Details

🪵 Log API

  • Fix problem of intermixing different store messages in one rrd 5620f47

0.32.0 - Chunk Processing, Pytorch dataloader, Dataset Review

Choose a tag to compare

@rerun-bot rerun-bot released this 13 May 06:46

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.


🧳 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 Chunk object 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 LazyChunkStream class 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.

image

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 GridMap is an image buffer with defined cell size per pixel, which can be embedded as a textured rectangle in a 3D scene.
  • GridMap has a regular ImageBuffer component, 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/OccupancyGrid messages as GridMaps.
  • 📖 Our ROS 2 guide also shows an example how you can log GridMap from 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

new tooltip for plots
  • 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 (former rrd compact) to produce more streaming & object storage friendly data
  • MCAP decoder is now multithreaded

New branding

new rerun app icon
new rerun app icon

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.

feedback form

☁️ 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"...
Read more

0.31.4

Choose a tag to compare

@rerun-bot rerun-bot released this 29 Apr 08:22

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


🔎 Details

🪳 Bug fixes

  • Prompt login on whoami failure a312a99
  • Ensure proper on_new_store book-keeping for all messages 029e245
  • Fix visualizations not showing up when initial data was empty c867040a
  • Fix follow not being propagated to http URLs with extensions 09d5f94c

🕸️ Web

  • Web view add open options #12731

0.31.3

Choose a tag to compare

@rerun-bot rerun-bot released this 14 Apr 11:24

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


🔎 Details

🪳 Bug fixes

  • Fix plot view time range ui 3922bea

📚 Docs

  • Clearer behavior for CoordinateFrame("") 4b5c2f0

🖼 UI improvements

  • Spacebar toggles play/pause, never enables following #12722 (thanks @wolfd!)

📦 Dependencies

  • Update datafusion to 52.5.0 87af7a9

0.31.2

Choose a tag to compare

@rerun-bot rerun-bot released this 08 Apr 13:26

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


🔎 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 SpatialView3D 213957c

📚 Docs

  • Fix typo in micro-batching documentation #12716 (thanks @wolfd!)

🕸️ 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.rs 6afa84b