Download Latest Version 0.32.0 - Chunk Processing, Pytorch dataloader, Dataset Review source code.tar.gz (7.8 MB)
Email in envelope

Get an email when there's a new version of Rerun

Home / 0.32.0
Name Modified Size InfoDownloads / Week
Parent folder
rerun-js-web-viewer-react.tar.gz 2026-05-13 4.9 kB
rerun-js-web-viewer.tar.gz 2026-05-13 14.5 MB
rerun-cli-0.32.0-aarch64-apple-darwin 2026-05-13 180.0 MB
rerun-cli-0.32.0-aarch64-unknown-linux-gnu 2026-05-13 206.5 MB
rerun-cli-0.32.0-x86_64-unknown-linux-gnu 2026-05-13 225.5 MB
rerun-cli-0.32.0-x86_64-pc-windows-msvc.exe 2026-05-13 178.4 MB
rerun_cpp_sdk.zip 2026-05-13 49.9 MB
rerun_cpp_sdk-0.32.0-multiplatform.zip 2026-05-13 49.9 MB
librerun_c-0.32.0-aarch64-apple-darwin.a 2026-05-13 35.4 MB
librerun_c-0.32.0-aarch64-unknown-linux-gnu.a 2026-05-13 55.5 MB
librerun_c-0.32.0-x86_64-unknown-linux-gnu.a 2026-05-13 54.7 MB
rerun_c-0.32.0-x86_64-pc-windows-msvc.lib 2026-05-13 46.9 MB
rerun_sdk-0.32.0-cp310-abi3-win_amd64.whl 2026-05-13 119.8 MB
rerun_sdk-0.32.0-cp310-abi3-manylinux_2_28_x86_64.whl 2026-05-13 138.9 MB
rerun_sdk-0.32.0-cp310-abi3-manylinux_2_28_aarch64.whl 2026-05-13 134.6 MB
rerun_sdk-0.32.0-cp310-abi3-macosx_11_0_arm64.whl 2026-05-13 125.1 MB
rerun_notebook-0.32.0-py2.py3-none-any.whl 2026-05-13 14.5 MB
0.32.0 - Chunk Processing, Pytorch dataloader, Dataset Review source code.tar.gz 2026-05-12 7.8 MB
0.32.0 - Chunk Processing, Pytorch dataloader, Dataset Review source code.zip 2026-05-12 12.4 MB
README.md 2026-05-12 34.0 kB
Totals: 20 Items   1.7 GB 2

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!

https://github.com/user-attachments/assets/7acf9671-c46a-4355-a50f-2670cc80c4d9

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:

https://github.com/user-attachments/assets/f31b712d-2dd7-4e45-bb6a-0e103e7016b3

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

<picture> new tooltip for plots </picture>

  • 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

<picture> new rerun app icon </picture>

<picture> new rerun app icon </picture>

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.

<picture> feedback form </picture>

☁️ 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" renamed to "importers" to avoid confusion with the widely-used ML/PyTorch "dataloader" concept
  • Rust Lenses API has been restructured
  • rerun rrd compact renamed to rerun rrd optimize, has profiles and new defaults
  • DatasetEntry.register requires a sequence of URIs (Python)
  • URDF importer now loads the static transforms of the model to the /tf_static entity by default
  • MCAP metadata and statistics are now saved to __mcap_metadata

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

🔎 Details

🪵 Log API

  • Group URDF collision entity paths by geometry type a394117
  • Add Parquet Dataloader with some workarounds for merging columns c1ee446
  • Optionally add struct grouping on parquet columns ae22b4d
  • Introduce GridMap archetype & visualizer d74cb27
  • Rename "DataLoader" to Importer 11cd1c2
  • Use /tf_static as default in URDF importer & make configurable in UrdfTree 1f01a57
  • Expose mimic joints from URDF cf4c652
  • Add RViz-style "Map" and "Costmap" color options for GridMap c452a48
  • Add stream() -> LazyChunkStream to Python UrdfTree dc51f60
  • Renames ChunkBatcherConfig::ALWAYS to ALWAYS_TEST_ONLY 46c20b8
  • Opt-out from generating a FileSink footer 0a78f28
  • Add UrdfTree::compute_joint_transform_batches for lens/chunk pipelines efd045c
  • Add snippet showing a GridMap at a specific pose 2e99c68

🐍 Python API

  • Introduce LazyChunkStream a0ce421
  • Introduce McapLoader to produce LazyChunkStream from MCAP file ef51623
  • Expose Selector in Python SDK ffc088d
  • Introduce Python ChunkStore object 9294554
  • Add ability to compact ChunkStore 5dd9f23
  • Use Lenses to manipulate ChunkStream in Python SDK 72ff520
  • Make notebook display loading spinner when waiting on send_table ea09906
  • Make RrdLoader produce lazy ChunkStore 2e804c4
  • Add map and flat_map method to LazyChunkStream 393680c
  • Add Chunk construction methods: from_columns and from_record_batch 547d650
  • Add exists_ok option to CatalogClient.create_dataset 8d4e1b3
  • Add Chunk.apply_lenses() API 88fea86
  • Expose split-size-ratio in python c21a5b8
  • Initial torch dataloader dca28f2
  • Rename rrd compact to rrd optimize c5b027b
  • Add apply_selector methods to Chunk 5a20bd6
  • Use Mapping-based LensOutput and improve naming 2fc409e
  • Add Map-style torch dataset ebb9953
  • Make task cancellation API public, add .cancel() on RegistrationHandle 260d119
  • Add documentation page for lenses 1cb99e5
  • Add include & exclude topic filter options to MCAP importer 1b586fa
  • Further simplify Lenses API in Python and Rust 65d744a
  • Allow creating a Chunk copy with a new entity path 3d8f97c
  • Make Selector picklable db20691
  • Add dataset.segment_store(segment_id) to create a lazy ChunkStore 524b5cc
  • Introduce optimization profiles and change default d3488bc
  • Split off LazyStore from ChunkStore (now returned by dataset.segment_store() and RrdReader.store()) fa63189
  • Improve dataloader config b96a985
  • Add support for multi-store RRD to RrdReader 41ed51a
  • Rename send_chunk to send_chunks and accepts stores and LazyChunkStream c8e0965
  • Deprecate rerun.recording 8b52512
  • Fix disconnect footgun 4833706

🦀 Rust API

  • Introduce at_entity instead of *_output_columns_at 8e65ff0
  • Decouple entity path filtering from Lens definition 80ab3a9
  • Pushdown filters for select 215e8aa
  • Rework chunk output produced by Lenses dbeef05
  • schema evolution: widen record-batch on read 838a669
  • Unify Chunk-based APIs between Rust and Python a171102
  • Add apply_selector methods to Chunk 5a20bd6
  • Enforce one-to-one mapping of LensOutput to target entity b5709e5
  • Add documentation page for lenses 1cb99e5
  • Further simplify Lenses API in Python and Rust 65d744a
  • Allow creating a Chunk copy with a new entity path 3d8f97c
  • Add GraphView to rust blueprint api 9327b5f

🪳 Bug fixes

  • Fix our python 3.10 support 7d4716d
  • Fix MCAP CLI decoder identifier list 5b170a4
  • Fix bug where shapes defined with UI units were scaled incorrectly 7e7ec15
  • Improve rerun download 1c9aa10
  • Fix off-by-one bug in video stream cache f0484ee
  • Fix: Hyperlinks shown in tables wouldn't resize f16707e
  • Fix range queries on 3D points in SpatialView3D e8dc5e0
  • Fix plot view time range ui 45de0cb
  • Make arrow keys pause playback 37009c0
  • Fix silent error swallowing in gRPC streaming, add error injection testing infrastructure ec01f7a
  • Fix follow not being propagated to http URLs with extensions 09d5f94
  • Fix renderer registration order influencing draw order 97db1a1
  • Unify rerun// and rerun+https at parse time, fixing Viewer bugs for incorrectly distinguishing them 69ff58d
  • Add SystemCommand::RemoveRedapServer for more thorough cleanup 52bc3ea
  • Close recordings when a server is removed ad7371f
  • Fix visualizations not showing up when initial data was empty c867040
  • Fix reflection of "pure-constant" ROS2 message schemas fefbf6d
  • Handle large video file error gracefully #12744 (thanks @AyushAgrawal-A2!)
  • Use row id instead of byte span for video streams 645e57b
  • Return empty tensor on video decoder cold-start instead of raising 13f92e5

🌁 Viewer improvements

  • Cluster overlapping coplanar TexturedRects and use draw order for tie-breaking 76b64c1
  • Always open recording in background from context menu a173287
  • Improve implicit handling of invalid instance pose rotations e65a6ce
  • Use optional pose of Foxglove PointCloud (if set) fee2815
  • LeRobot loader: Add support for flat feature names a493658
  • Select message_log_time as default timeline for MCAP b687bd6
  • Properly handle outline masks of overlapping coplanar rectangles 617a7c2
  • New liftable shape limit to avoid unresponsive viewer a4f6223
  • Add configurable CORS policy for rerun proxy and re_server 8baa142
  • Smarter VideoStream streaming 2f73783
  • Support focusing specific 3D points in viewer ddda5cf
  • Experimental grid layout & flagging for tables 9b6bf71
  • Make panel state toggable while inspecting tables/server 2eb8fb0
  • Streaming info panel (as part of memory panel) 597fdd4
  • Respect up_axis in Collada (.dae) mesh importer #12708 (thanks @Abhisheklearn12!)
  • Improve handling of NaN & Infinity values in time series view 055777f
  • By default, fetch similar chunks 30 seconds of playtime forward 7c0680e
  • Remember memory limit between viewer relaunches 1eb763a
  • Add support for duration columns in lerobot datasets 1cd0abc
  • Support hierarchical dataset naming in viewer efa2f23
  • Display . separated dataset in a folder hierarchy a217309
  • Full VP8+VP9 support on native & web a1642b4 (thanks @AyushAgrawal-A2!)
  • Use video player for encoded depth images c3af7d5
  • Better log console formatting bd4c866
  • Make text document configuration part of the blueprint e6ae09a
  • Experimental preview renders for tables with data set URLs b133946
  • Add VideoStream.is_keyframe component d50eab6
  • Limit 2D & 3D view zoom out e43c172
  • Make previews always play looping 90b5b01
  • Fix arrows blowing up when cap behind camera db571f7
  • Add Ellipses2D archetype 2cbf5ff
  • Clamp time controls 8af40e2

🗄️ OSS server

  • Lazy RRD loading in OSS server 4aea4a5
  • No longer cache chunks in OSS server 853591a

🚀 Performance improvements

  • Decode encoded images using our video-player system, and use the web video decoder 794a722
  • Drop details from the manifest that aren't needed to reduce manifest memory bloat 612e9ef
  • rerun rrd compact: split by video GoP boundaries 2485570
  • By default, only prefetched what is visible b509f91
  • Speed up DatasetView.reader: only fetch schema once b266938
  • Huge speedup transform lookups for overlapping transform chunks 803337d
  • Don't traverse through parent entities in queries if there are no cleared entities at all a873b22
  • Fix not taking fast paths in line/point for using default radii 5fb7c3d
  • CatalogClient: Add RTT and bandwidth probes 87c5e05
  • Improve performance of Protobuf reflection 3969825
  • register now takes a list of URIs 9ec5265
  • Parallelize mcap decoder 6ccfcbf
  • Emit sparse is_keyframe marker chunks when running optimize ec6dff0

🧑‍🏫 Examples

  • Add dataloader training example 8cd8acb
  • Add snippet demonstrating LineStrips3D with VisibleTimeRange 80dd138
  • Use blueprint, component ui and type reflection in custom_view example e64abd0
  • Subscribe to occupancy grids in ROS node example b4a46c5

📚 Docs

  • Clearer behavior for CoordinateFrame("") 5bf9c4a
  • Move "Installing Rerun" into Getting Started 0296f67
  • Reduce python docs footguns 4e158e1
  • Split "Set up a project" out of Log and Ingest d0d63bc

🖼 UI improvements

  • New tooltip redesign b1a9d82
  • Reduce the size of chevrons in the UI 3f63fa1
  • Highlight invalid frame ID input and show tf#/ suggestions if applicable 2dbe13a
  • Status visualizer configuration bb83ed7
  • Update our icon ✨ 0677bbf
  • change colors for new brand colors 27c9036

🕸️ Web

  • Add progress bar to rerun-js and handle incomplete wasm downloads ad551bd
  • Add rerun-js login setting and default to hiding the login button 0d14814
  • web_viewer: support overriding theme via ?theme= URL param 34b9958

🎨 Renderer improvements

  • GPU accelerated time series plot drawing 8e9635b

🧢 MCAP

  • Add Selector::pipe for calling anonymous functions ea50667
  • Support Foxglove LocationFix & LocationFixes 28fe84e
  • Split Runtime out of Selector 0febb36
  • Transition Lenses to be Selector<DynExpr>-based 75e965a
  • Lenses should not drop unrelated columns 849efb4
  • MCAP: Add lens for ROS 2 nav_msgs/OccupancyGrid c87a9ae
  • Write MCAP metadata to __mcap_metadata instead of __properties 3352bb6
  • Write MCAP stats & info to __mcap_properties instead of __properties 31159e1
  • Decode MCAP attachment records into __mcap_attachments 004539a

📈 Analytics

🧑‍💻 Dev-experience

  • Add rerun.tracing_session() for support correlation ec9f048

📦 Dependencies

🤷‍ Other

  • Add option to split chunks with large component size differences for different archetypes b0e6f90
  • Run rerun rrd optimize on a folder of recordings 9ccb8b2
Source: README.md, updated 2026-05-12