NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3381 most downloaded on PyPI
The Rerun Logging SDK
Last release 18 days ago
16 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
153 releases · first in 2023
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Fixes to .rrd Chunk handling.
We revised our Chunk slicing logic to prevent .rrd files ballooning in sizes. This also fixes the problem of broken .rrd files that contain tensors.
Collada (.dae) mesh support.
This patch adds native support for Collada (.dae) meshes, a common format used with URDF files. You can now load URDFs that reference .dae assets without manual mesh conversion!
<picture> <img src="https://static.rerun.io/collada-dae/d5579d553ce5d018e3eebca3891080026bee1f6f/full.png" alt="screenshot of a loaded mesh"> <source media="(max-width: 480px)" srcset="https://static.rerun.io/collada-dae/d5579d553ce5d018e3eebca3891080026bee1f6f/480w.png"> <source media="(max-width: 768px)" srcset="https://static.rerun.io/collada-dae/d5579d553ce5d018e3eebca3891080026bee1f6f/768w.png"> <source media="(max-width: 1024px)" srcset="https://static.rerun.io/collada-dae/d5579d553ce5d018e3eebca3891080026bee1f6f/1024w.png"> <source media="(max-width: 1200px)" srcset="https://static.rerun.io/collada-dae/d5579d553ce5d018e3eebca3891080026bee1f6f/1200w.png"> </picture>
Nothing published for this version
Nothing published for this version
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
flush waits for all data loaders to finish #12281log_from_file & dragdrop) #12287rrd compare --unordered fails #12282Python Catalog API (breaking changes):
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
This release brings significant improvements to how transforms are handled, especially from ROS or MCAP-based systems. You can now decouple spatial relationships from entity paths by using CoordinateFrame to associate entities with named frames, and Transform3D with child_frame/parent_frame parameters to define relationships between frames—similar to ROS tf2. Pinhole cameras also support this system. Additionally, axis visualization has moved to its own TransformAxes3D archetype.
Much more can be found at our revamped docs page here.
Parent and child frame components are now available in the Transform3D archetype, meaning you can send transforms to a single entity instead of using the entity path to inform the structure (note, for URDFs this is required). Additionally, ROS2’s tf2_msgs/TFMessage and PoseStamped messages are automatically parsed as Transform3D and InstancePoses3D , respectively, from MCAP files.
We also added a new documentation page for URDF here.
https://github.com/user-attachments/assets/638e9a47-cabe-4543-9201-acc3350b3659
VideoStream now supports the AV1 codec alongside existing formats.
The Python catalog API has been substantially reworked: "partition" terminology is now "segment," table operations have moved to TableEntry objects, and the query interface has been simplified with methods like filter_segments(), filter_contents(), and reader().
New keyboard shortcuts let you switch between recordings (cmd + option + ↑/↓) and navigate the timeline (←/→ to move by 0.1s. Add shift for 1s. home/end to jump to beginning or end).
https://github.com/user-attachments/assets/e64f4079-2be2-404f-b543-40736004f44e
Forward/back navigation was previously exclusive to the web viewer and is now available on native viewers as well!
<img width="303" height="113" alt="image" src="https://github.com/user-attachments/assets/548bf301-9032-49fc-b411-c1421ebc029e" />
We previously supported LeRobot v2 and updated our dataloader now to work with the latest version as well!
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-28
Transactional transform behavior (important!):
Changes to Transform3D, InstancePose3D, or Pinhole transform properties are now treated transactionally. Updating any component resets all other transform components—the viewer no longer looks back in time for previously logged values. If you relied on partial updates (e.g., logging only rotation while keeping a previous translation), you must now re-log all components together. If you always logged the same components on every call or used the standard constructors, no changes are needed. #11911
rr.log("simple", rr.Transform3D(translation=[1.0, 2.0, 3.0]))
# In 0.27: This clears the translation—it will NOT inherit the previous value
rr.log("simple", rr.Transform3D.from_fields(scale=2))
Transform3D archetype changes:
Transform3D::axis_length has moved to the new TransformAxes3D archetype #11925CoordinateFrame::frame_id renamed to CoordinateFrame::frame #11991Pose* component types removed in favor of general counterparts (e.g., PoseTranslation3D → Translation3D) #11905URDF loader changes:
Transform updates for URDF models now require parent_frame and child_frame fields to be set (matching URDF joint specifications), and must include both rotation and translation. This aligns with ROS tf2 conventions and allows sending all transform updates on a single entity. #12005
Deprecated API removal:
Items marked deprecated before 0.27 have been removed, including old Timeline, TimeColumn, Asset3D, AssetVideo, Image, and Pinhole methods. #12204
MCAP timeline naming:
MCAP timelines renamed from log_time/publish_time to message_log_time/message_publish_time to avoid conflicts with SDK timestamps. #12145
Python Catalog API (breaking changes):
rerun_partition_id column is now rerun_segment_identries(), datasets(), tables() now return lists of entry objects instead of DataFramesget_table() returns a TableEntry object instead of a DataFrame—use .reader() to get the DataFrameDataframeQueryView removed; use filter_segments(), filter_contents(), and reader() instead #12151register() and register_batch() merged into single register() returning RegistrationHandle #12187search_fts() and search_vector() now return DataFrames directly (no .df() needed) #12198Python Catalog API (deprecated, still work):
partition_table() → segment_table()) #12059get_dataset_entry → get_dataset, get_table_entry → get_table, etc. #12112CatalogClient to TableEntry (append(), overwrite(), upsert()) #12114Schema types moved from rerun.dataframe to rerun.catalog #12135create_fts_index() → create_fts_search_index(), etc. #12198Transform3D::axis_length into its own TransformAxes3D archetype #11925show_frame option on TransformAxes3D #11977CoordinateFrame::frame_id to CoordinateFrame::frame #11991target_frame to SpatialInformation #12040Pose* components #11905OutputMode option to Lenses #12107chunk_byte_size_uncompressed support #12194segment_table and blueprint APIs #12191RecordingStream::disabled() a const fn #11829 (thanks @kpreid!)ChunkId clash due to chunk splitting #12008av1 support to VideoStream #11849TransformAxes3D via InstancePose3D #11970VideoDataDescription #11972Pinhole #11988re_uri #12050InstancePose3D consistently interact with transform frames #12021ctrl c #12079NavSatService::Unknown to ROS2 parsing #12106BarChart bars #12090 (thanks @bilsen!)png & rvl depth images via new EncodedDepthImage archetype + integration with viewer and re_mcap #11877 (thanks @makeecat!)TransformAxes3D for out-of-hierarchy Transforms #12262MapProvider::MapboxLight #12083 (thanks @sectore!)/version from oss server #12108rerun.server.Server #12225PoseStamped from ROS 2 MCAPs as InstancePoses3D #11879tf2_msgs/TFMessage from ROS 2 MCAPs as Transform3Ds #12224frame_id fields of ROS 2 MCAP messages as CoordinateFrame #12238compile_commands.json via Pixi #11898scuffle-av1 for parsing av1 headers #11910walkers (map widget) to 0.50.0 #12024 (thanks @podusowski!)This release has a name — Stadsholmen!
Nothing published for this version
Nothing published for this version
Nothing published for this version
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --locked/version from oss server #12108Fix non semver compliant breaking changes in ply-rs breaking Rust builds #11890
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedply-rs breaking Rust builds #11890Nothing published for this version
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockeddelete_entries and entries table not updated #11872Nothing published for this version
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedThe viewer is now even more configurable via blueprints. With more options for time series, bar chart, graph views, time panel, and the 3D view. With the latter now having the option to control the 3D eye position and look target.
<picture> <img src="https://static.rerun.io/changelog-timeseries-blueprint/32be1d5ba351656a39075b4d227f5794d8ebca88/full.png" alt="time series view blueprint example"> <source media="(max-width: 480px)" srcset="https://static.rerun.io/changelog-timeseries-blueprint/32be1d5ba351656a39075b4d227f5794d8ebca88/480w.png"> <source media="(max-width: 768px)" srcset="https://static.rerun.io/changelog-timeseries-blueprint/32be1d5ba351656a39075b4d227f5794d8ebca88/768w.png"> <source media="(max-width: 1024px)" srcset="https://static.rerun.io/changelog-timeseries-blueprint/32be1d5ba351656a39075b4d227f5794d8ebca88/1024w.png"> <source media="(max-width: 1200px)" srcset="https://static.rerun.io/changelog-timeseries-blueprint/32be1d5ba351656a39075b4d227f5794d8ebca88/1200w.png"> </picture>
<picture> <img src="https://static.rerun.io/changelog-view3d-blueprint/2e50733573a801b052647491d0aabe1feae48855/full.png" alt="3D spatial view blueprint example"> <source media="(max-width: 480px)" srcset="https://static.rerun.io/changelog-view3d-blueprint/2e50733573a801b052647491d0aabe1feae48855/480w.png"> <source media="(max-width: 768px)" srcset="https://static.rerun.io/changelog-view3d-blueprint/2e50733573a801b052647491d0aabe1feae48855/768w.png"> <source media="(max-width: 1024px)" srcset="https://static.rerun.io/changelog-view3d-blueprint/2e50733573a801b052647491d0aabe1feae48855/1024w.png"> <source media="(max-width: 1200px)" srcset="https://static.rerun.io/changelog-view3d-blueprint/2e50733573a801b052647491d0aabe1feae48855/1200w.png"> </picture>
We’ve changed the interaction of the time panel! Now the top bar is only for making selections, while the bottom panel is for moving the time cursor. Hold down shift for snap-to-grid! You can also click on events now to select them.
https://github.com/user-attachments/assets/3cabd74c-8227-4e9d-bd42-fdff36f0466e
You can now also use just a keyboard to navigate in panels with trees (blueprint / streams / recordings).
See the 🧳 Migration guide for more details.
add_time_column via lenses #11596memory_used as part of CreateIndexResponse #11691target_partition_num_rows API parameter to the CreateIndex API #11686Debug for Utf8 datatype derived component types readable #11780Points3D #11572CoordinateFrame archetype #11674child_frame & parent_frame to Transform3D #11730TimeSeries time range & zoom in the Blueprint API #11621CreateIndexRequest #11636Nothing published for this version
Nothing published for this version
Nothing published for this version
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedline_radii and fill_mode params to Capsules3D in Python SDK #11660 (thanks @yunho-c!)ViewerEvent::TimeUpdate viewer callback not emitted during playback #11639Nothing published for this version
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedNothing published for this version
Remove deprecated methods from AnyValues #11390 (thanks @Weijun-H!)
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --locked (New: requires an installation of protoc)We have started aiming for a higher release cadence, with smaller, more frequent releases.
Blueprints now give you more control over playback and visualization settings. You can define playback speed and FPS directly in blueprints, and manage time and timeline behavior through them as well. The Blueprint panel is now always resizable, and we've added support for customizing plot backgrounds.
<img src="https://static.rerun.io/plot_background/d1b00e09cf5097eb11738821fa27c3660501158b/full.png" alt="">
Table filtering just got a lot more capable. You can now filter on timestamps, use new string operators like starts with, ends with, and does not contain, and combine these with improved numeric and boolean filtering.
<img src="https://static.rerun.io/improved_table_filtering/c9198336beb89e7064da8139539be667ede020a1/full.png" alt="">
The blocking argument for flush has been removed, use the new timeout_sec argument instead, for non-blocking calls, set timeout_sec=0.
Mostly you can just call .flush() with no arguments.
We also have started using named arguments (kw-args) for more of our functions, this will make it easier for us to evolve our APIs in the future, when adding new arguments, or renaming old ones.
cargo install rerun-cli now requires a system installation of protoc.
See the 🧳 Migration guide for more details.
DroppableEncoder and Encoder into a single facility #11446Lens as a concept for semantic mapping of arbitrary data #11394pyclasses #11268timeout_sec argument to flush #11295blocking argument of flush #11314newest_first not working correctly #11326AnyValues with empty columns #11322AnyValues #11390 (thanks @Weijun-H!)<(...) FIFOs) #11486UnixEpoch display/parsing inconsistency #11491AnnotationContext lookups (also affects scene without annotation contexts) #11445examples/python #11416 (thanks @Weijun-H!)starts with/ends with string filters to table #11341does not contain operator to string column filtering #11349is not to timestamp filtering #11366is not to nullable boolean filter #11371!= filtering of numerical column as the inverse of == (aka. outer-NOT and ALL semantics) #11372enum in protobuf MCAP messages #11280protobuf messages as StructArray #11458protobuf parser only returns single component #11459Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedThis is a pure bugfix release! For release notes on all changes in 0.25.0, go here.
Nothing published for this version
We removed the --serve, --drop-at-latency and -o CLI arguments, deprecated Python 3.9 and changed archetype specification in AnyValues.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedOur data frames and selection panel now feature prettier colors based on data types.
We are busy working on a powerful filtering feature for our arrow dataframe widget used for tables (sent with ViewerClient.send_table()) as well as the Rerun server browser (entry list, partition list, and remote tables). This release introduces support for filtering boolean, integer, floating point, and string columns, with more coming in future releases. (Note that the text log views and dataframe views are using a different widget which does not support filtering.)
We finally support transparency for meshes & various shapes (boxes, ellipsoids, etc.)!
https://github.com/user-attachments/assets/5a78cf2c-1e11-4f5f-a8a4-4e5d503f4cd9
Source of transparency ("alpha") is a bit limited for now:
Boxes3D, Ellipsoids3D, Capsules3D & Cylinders3DMesh3D's albedo factorAsset3D albedo color (depends on the underlying model format)Naturally, there's still a lot of places missing where we'd like to add transparency support!
Rerun has experimental, partial support for importing data from MCAP files. We support a subset of ROS2/CDR and Protocol Buffers messages. Development is ongoing, feel free to share your use cases!
We removed the --serve, --drop-at-latency and -o CLI arguments, deprecated Python 3.9 and changed archetype specification in AnyValues.
We also removed flush_timeout_sec parameter to out connect functions. Instead you can specify a maximum wait time in the calls to flush, but usually this isn't needed, as the new blocking behavior is also much smarter.
See the 🧳 Migration guide for more details.
entity_path_prefix #11085flush_blocking destroying C++ recording stream #10885CMAKE_BUILD_TYPE when building the Rust code #11023__len__ to codegened Python datatypes #10774Ellipsoids3D archetype not showing in 2D view projections #10922rerun-io/rerun-mcap #10721protobuf-encoded MCAP messages #10791Pinhole camera frustum #10842VideoStream #10994opacity setting for VideoStream & VideoAsset #11113Mesh3D/Asset3D/Boxes3D/Ellipsoids3D/Capsules3D/Cylinders3D #11132ApplicationId in StoreId #10742Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedrerun_cpp CMake link errors #10756 (thanks @reinar!)VideoStream #10745pyarrow.compute in url_generation.py #10690rerun-sdk[datafusion] and rerun-sdk[all] #10696rfd and wayland dependencies in SDK crate #10802parking_lot dependency version stricter to prevent import failure #10732 (thanks @sdd!)ui.warning_label() in more places #10697rerun_notebook/example.ipynb #10706 (thanks @glk0!)StructArray #10748@rerun-io/web-viewer-react compatible with React 19 #10809Nothing published for this version
Nothing published for this version
Nothing published for this version
Remove deprecated Scalar, SeriesLine, SeriesPoint archetypes #9892
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedStarting 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:
Color 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]))
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.
Rerun finally has a light mode.
The theme defaults to your OS's setting, but can be adjusted in the settings menu.
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"),
)
You can now log URDF files directly to Rerun using the log_file API.
<img width="900" src="https://github.com/user-attachments/assets/e3206d26-e1cf-4161-b1d5-ecd58fe6d07b" />
Cylinder archetypeAnyValues utility for Rustrerun rrd stats for retrieving statistics about rrd filesrerun rrd route command to manipulate .rrd files on transport levelrerun rrd compact and automatic in-Viewer compactionspawn use now less memory since it no longer sets up an GRPC server for message forwardingScalar, SeriesLine, SeriesPoint archetypes #9892Component::descriptor() #10038Cylinders3D archetype #10139AnyValues helpers in Rust SDK #10074ComponentDescriptor fields and use colons in Sorbet metadata #10245SeriesPoints::markers component required #10572rerun_py, and rerun_cpp #10581rerun rrd stats #10593set_sinks to C++ RecordingStream #10359Dataset.register_batch and wrappers for task ids #9895ConnectionRegistry for centralised redap client and token management #10078manylinux_2_28 container #10148TimeColumn #10168 (thanks @MichaelGrupp!)rerun_notebook startup times #10111chunk_ids associated with a query #10261tee Python API #10158tee to set_sinks #10312index=None to local and remote dataframe APIs and deprecate select_static #10332serve_web and improve documentation around how to serve a web viewer #10360TimeUpdateEvent #10403set_time_ctrl not doing anything when called twice #10547RegisterTable rpc, LanceTable message, and related proto changes #10538open_url/close_url notebook APIs #10602to_arrow_reader() to TableEntry and DataFusionTable #10601rerun crate forwarding, removing need to depend on other re_* crates for viewer customization #9825re_math with macaw #10119RecordingStream::set_timestamp_nanos_since_epoch #10200set_sinks to Rust RecordingStream #10336serve_web and improve documentation around how to serve a web viewer #10360From for more narrow integers and floats for Float64 #10463ListArrays) #10275TimeSeriesView for too large timestamps #10310SIGBUS startup crash on some Mac systems #10334/ as the origin when creating new views #10514InstancePoses3D with transform properties of Boxes3D/Ellipsoids3D/Capsules3D #10010tinystl with stl_io to support more stl files #9997re_component_ui #10034VideoStream archetype for loose video samples #10126VideoStream H264 on the web #10189FillMode to Capsules3D #10238RecordingProperties to RecordingInfo #10411LogMsg decode speed #10209rrd stats: add transport-layer only fast path #10605rrd stats: parallelize decompression #10606VideoStream using av to encode numpy images #10279VideoStream data #10614? as well as by just hovering it #10160AnyValues example in snippets #10225VideoStream #10423VisualizerOverride #10486AnyValues and custom data #10589SeriesLines and SeriesPoints to visualizer-overrides snippet #10637DataFusionTableWidget for table entries #9869data_based_visualizability_filter from BarChart and EncodedImage #10029VideoStream archetype #10239ComponentDescriptor in ChunkBuilder::with_component_batch* methods #10026archetype_field_name mandatory in ComponentDescriptor #10082blueprint::datatypes::ComponentColumnSelector #10215enum types in data definition #10252rerun rrd route command to manipulate .rrds on transport level #10607Nothing published for this version
This release is a pure bugfix release for migration of old RRD files in how meta-data keys for archetypes & field names were handled.
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 https://github.com/rerun-io/rerun/pull/10350
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedThis patch release contains various bugfixes, improvements, and updated documentation.
QueryError and DataLoaderError #9998rr.connect #10016Spatial3DView in Pinhole docs #9932 (thanks @hu-po!)connect_grpc docs #10018With 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…
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --locked.rrd files.rrd migration toolWith 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:
0.23 will always be able to load recordings from the previous version.0.23 and beyond may be migrated to the next version.We currently have no plans for compatibility or migrations across multiple versions.
ViewerClient to rerun.experimental #9828set_time error handling for large Python integers #9839pyarrow version (18.0.0 is required) #9878C++: Emit warnings when using deprecated Rerun types #9801
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedRERUN_NOTEBOOK_ASSET #9800These changes will improve our backwards-compatibility going forward, but this also means that this release introduces breaking changes to our .rrd fo…
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedIn 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))
<p align="center"> <img width="70%" src="https://github.com/user-attachments/assets/26a23ae1-6bd9-4531-91b0-8221b622c3d0"> <br/> <i>See the new <a href="https://github.com/rerun-io/rerun/tree/main/examples/python/imu_signals">IMU signals</a> example for more</i> </p>
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.
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.
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.
<img width="284" alt="Image" src="https://github.com/user-attachments/assets/1d67cb7f-76ac-4cb3-8e1d-84fc570a9442" />
<img width="315" alt="Image" src="https://github.com/user-attachments/assets/3a57dc1f-e8fe-470e-b95a-4e0f6ee0b817" />
<img width="173" alt="Image" src="https://github.com/user-attachments/assets/bc6326c2-226e-4835-91d5-416045b6c5b1" />
Our snippets now contain examples for recording properties in all SDKs:
recording_properties.py)recording_properties.rs)recording_properties.cpp)send_table APIWe 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.
<img width="721" alt="Image" src="https://github.com/user-attachments/assets/eb80f506-ab36-4e64-ae17-0ad9b2cd7ab4" />
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 anymorererun:// (TLS) or rerun+http:// (unencrypted) prefixYou can find more information in our 🧳 migration guide
rerun.components.blueprint.Visible to rerun.components.Visible #9067Scalar.columns() #9068SeriesLine/SeriesPoint/Scalar in favor of SeriesLines/SeriesPoints/Scalars #9338serve_grpc API #9447send_recording python api #9148send_table in re_grpc_server and re_viewer #9510send_table from notebooks #9522rr.serve_web_viewer #9540send_table to Python SDK #9538connect APIs #9212detach_process option to spawn #9400 (thanks @imstevenpmwork!)Asset3D across C++ and Rust #9239 (thanks @abhishek47kashyap!)find_dependency for Arrow #9548 (thanks @BillyONeal!)RERUN_ARROW_LINK_SHARED_DEFAULT based on found Arrow build #9550 (thanks @BillyONeal!)pyproject.toml #9104rr.set_index to replace rr.set_time_* #9166rr.IndexColumn #9179ruff lints #9201log_components, connect, connect_tcp #9197rr.serve() #9207rr.new_recording() in favor of rr.RecordingStream() and improve type checking of the Rust bindings #9206EntityBehavior archetype for easy visible/interactive blueprint overrides #9281set_time_ctrl to match set_time #9342detach_process option to spawn #9400 (thanks @imstevenpmwork!)rerun.notebook lazily #9557Mat3x3 shape inference in .columns api #9569rerun.utilities and remove unused utilities #9759RecordBatch formatter and other niceties #9056insta crate leaking into regular (non-testing) builds #9092connect APIs #9219IndexCell #9226RecordingStream::set_index #9236BinaryStream::read produce full RRD files #9352detach_process option to spawn #9400 (thanks @imstevenpmwork!)Asset3D across C++ and Rust #9239 (thanks @abhishek47kashyap!)EncodedImage #9308rerun.notebook.Viewer constructor #9495SeriesLine visualizer work with several scalars per time #9033cmd/ctrl + c #9172re_video #9295__ as reserved entity path in docs #9387Event interface #9739send_table in the Python SDK #9589redap:// connection UX and error messages #9045TableStore for table/dataframe entries + basic UI #9437Blob components #9500mypy on the contents of scripts/ #9214info for everything except Python sdk #9231TimeType::Time; changing dataloader API #9292Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedA small release addressing bugs and polishing rough edges.
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.
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.
https://github.com/user-attachments/assets/4b6d7e8c-02c6-43c9-be66-dcdbcf782cbd
np.float_ since it was removed in numpy 2.0 #9037image_column_updates python example #9065Check the 🧳 Migration guide for before/after snippets for all languages for this and other smaller breaking changes.
Rerun is an easy-to-use database and visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedNew entity filtering:
https://github.com/user-attachments/assets/75ae114b-a55c-452e-9003-d8f447854d2a
New notification panel:
Copy any view as screenshot with right-click (now works in web-viewer):
New help texts for all our views:
📖 Release blogpost: https://rerun.io/blog/release-0.22
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-22
send_columnsThe API & related under-the-hood changes pave the way for better support for multiple archetypes on the same entity and components with generic types in future releases. Stay tuned!
Passing raw batches of components is no longer supported. Instead, use the partial update APIs (or in rare cases, explicitly serialize the components).
Check the 🧳 Migration guide for before/after snippets for all languages for this and other smaller breaking changes.
DisconnectedSpace archetype & component #8545any_values and extra_values snippets for rust #8718cstdint include) #8609 (thanks @plumonito!)columns method for convenient send_columns call through archetypes #8828with_many_ variants for C++ archetype mono fields & port remaining snippets #8836TimeColumn::from_sequence_points in favor of TimeColumn::from_sequence #8882AsComponents::serialize is now AsComponents::as_batches and returns Collection<ComponentBatch> #8884num_instances() method #8702send_columns and update everything left #8799log_components #8892RecordingStream::log implicitly requiring Sized #8587EntityPathFilter variable substitutions are now delegated to (new) ResolvedEntityPathFilter #8543AsComponents<>ComponentBatch interactions from blanket impls #8591Box/AssetVideo/ViewCoordinates/Asset3D eager serialized in Rust #8785Pinhole archetype in Rust eager serialized #8789Image & Mesh3D archetypes in Rust eager serialized #8793Tensor archetype eager serialized #8801send_columns and update everything left #8804ComponentBatch doesn't implement AsComponents anymore #8820Transform3D partial updates snippet for all languages #8690annotation-context.rs to use correct API #8708 (thanks @OlivierLDff!)GraphNode as a label by default #8542CustomContent more useful #8645re_blueprint_tree and add more tests #8795re_time_panel and add more tests #8863AnyValues #8864re_component_ui #8546Migration kernel for the blueprint space-view-related breaking changes #8439
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --locked📖 Release blogpost: https://rerun.io/blog/graphs
🧳 Migration guide: https://rerun.io/docs/reference/migration/migration-0-21
We've added two new logging primitives: GraphNodes and GraphEdges that can be used to visualize node-link diagrams. For this, we have implemented a new Graph View that uses force-based layouts to draw graphs.
This video demonstrates the main features of the new graph view:
https://github.com/user-attachments/assets/77db75c9-a8d8-401d-b90d-3daf08baf0ba
You can also have a look at https://github.com/rerun-io/rerun/pull/7500 if you want to learn to more.
This video demonstrates the main UX improvements that went into this release:
https://github.com/user-attachments/assets/bef071b5-0681-41b2-9ef0-1c6a557ff138
The 3D view now offers an infinite 3D grid, enabled by default. Further controls and settings are available as usual through the blueprint API and/or the selection panel.
<p align="center"> <picture> <img src="https://static.rerun.io/changelog_grid/cc7177ee485a3b29b8a4b7f52be29c1ae9970e3d/480w.png" alt=""> </picture> </p>
All the nitty gritty details in https://github.com/rerun-io/rerun/pull/8230 and https://github.com/rerun-io/rerun/pull/8234.
You can now undo/redo blueprint changes in the viewer! Watch @emilk putting it to action and explains how it works:
https://github.com/user-attachments/assets/a29c099d-35a3-4d32-8946-932b5a184943
But that's not the only thing that improved in the viewer:
Breadcrumbs show up in the selection menu now
Take screenshots of views from context menus
Entities can now be dragged from Blueprint & Streams panel into views
We now have a new index for all our code snippets.
You can use it to quickly find copy-pastable snippets of code for any Rerun feature you're interested in (API, Archetypes, Components, etc). No special tools required -- all you need is a keyword of interest, and plain old text search.
It's still the early days so it is far from perfect, but we think it can already be quite helpful; feedback welcome. Most of it is auto-generated, so it will never get out of sync!
Spatial2D views now defaults to 0.1 in 3D scene units..*space_view.*/.*SpaceView.* to .*view.*/.*View.*.DisconnectedSpace archetype/component is deprecated in favor of implicit invalid transforms (like zero scale or zero rotation matrix).RotationAxisAngle with zero rotation axis is no longer treated as identity.Read our 🧳 migration guide for more detailed information: https://rerun.io/docs/reference/migration/migration-0-21.
rr.log_components #8151rr.send_columns #8163(Py)RecordingStream upcasting issues #8184rr.components.Color to generate colors from any string (and use it in the air traffic data example) #8458Loggable::NAME -- Loggables do not have any semantics #8082RecordingStream::log_component_batches #8149from_gray16 for DepthImage #8213 (thanks @fawdlstty!)impl<AsComponents> helpers #8401re_renderer #8230DisconnectedSpace archetype/component in favor of implicit invalid transforms #8459detect_and_track example #8261 (thanks @oxkitsune!)rrd print's verbosity modes #8392Loggable and ArrowBuffer #8197re_types_blueprint -> re_types::blueprint #8419re_viewer::reflection -> re_types::reflection #8420MainThreadToken to ensure file-dialogs only run on the main thread #8467Rerun is an easy-to-use visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedWe introduced a Map view in 0.20, but did not enable its feature flag by default, which meant that all web viewer builds did not include it. This is now fixed, and the map view may be used in web viewer builds published by Rerun.
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
Rerun is an easy-to-use visualization toolbox for multimodal and temporal data. Try it live at https://rerun.io/viewer.
pip install rerun-sdkcargo add rerun and cargo install rerun-cli --lockedmap_view to the default features and improve how the nasm feature is handled and documented #8243cargo-metadata failures in users' environments #8239Your coding agent can read these notes before it upgrades. Set up the MCP server →