Rerun 0.25 - transparency, table filtering, experimental MCAP support and more

Earlier this week, we released Rerun 0.25. It brings about improvements to UX, production readiness, and new capabilities. This post will cover the key changes, but check out the full changelog for all the nitty-gritty details.

New capabilities new-capabilities

In Rerun 0.25, we've added several new features to help you visualize and analyze your data more effectively.

Table filtering table-filtering

Table filtering makes it much easier to find the data you're looking for in large (or small!) tables. This sits on top of quite a bit of infrastructure work behind the scenes the team has been working on for several months, some work that we'll dive into in future blog posts.

table filtering example in Rerun

This release introduces support for filtering boolean, integer, floating point, and string columns. Plenty of work remains and we look forward to feedback - give it a try and let us know what you think!

Of note is that the text log views and dataframe views use a different widget which does not support filtering.

🚧Experimental🚧 MCAP support experimental-mcap-support

Thus far, Rerun visualization has been built around .rrd, the Rerun data format. 0.25 introduces experimental (and partial) support for the MCAP file format.

Our support begins with a subset of ROS2/CDR and Protocol Buffers messages. Individual message and visualization support is limited, but if you're interested, check out the docs for the most up-to-date list of supported message types and limitations.

We'll be blogging about MCAP support in more detail soon - stay tuned!

Getting started with MCAP files with Rerun

To get started, you can use the rerun CLI to convert your data to MCAP format:

rerun your-mcap-file.mcap

If Rerun supports your data types, you should see them in the viewer.

MCAP example in Rerun

There's much work yet to be done on MCAP support. Development is ongoing so feel free to share your use cases on our GitHub repository. We're looking forward to hearing from you!

Sharing sharing

So far, Rerun has been (mostly) single player - you working on your machine. With tools like the proxy and the ability to Embed Rerun on web pages, this has progressively changed. However, sharing episodes or data has not been straightforward. This release introduces quality-of-life changes to make sharing easier.

  • Opening URLs from within the Viewer: Use CTRL/CMD + SHIFT + L to open a URL with the viewer already open.
  • Opening URLs from the CLI: Run rerun <URL> to open a URL from the CLI. For instance, open the DNA example: rerun https://app.rerun.io/version/0.24.0/examples/dna.rrd
  • Sharing URLs: CTRL/CMD + P and use copy direct link or click Share at the top right (on either web or the native viewer).

sharing example in Rerun

User Experience improvements user-experience-improvements

New features are fun, don't get us wrong, but we spend a lot of time and effort to improve what we already have as well. Below are some of the improvements we've made in this release.

Syntax highlighting syntax-highlighting

The Rerun Viewer data frames and selection panel now feature syntax highlighting(according to data type).

Syntax highlighting example in Rerun

Mouse navigation mouse-navigation

We're seeing more and more use cases of robots navigating the real world autonomously. One thing we wanted to improve upon, to get a better sense of how your robot perceives the world, was to make it easier to navigate through 3D spaces - you can now do this with the mouse in certain 3D views.

Mouse Navigation example in Rerun

Transparency transparency

Transparency makes it easy to get more information about the whole scene at once!

Transparency example in Rerun

The source of transparency ("alpha") capability is limited, for now, to a certain set of objects. You can configure transparency for:

  • the color component on all of Boxes3D, Ellipsoids3D, Capsules3D & Cylinders3D
  • Mesh3D's albedo factor
  • Asset3D's 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! Feel free to drop requests on GitHub.

Production readiness & stability improvements production-readiness--stability-improvements

Rerun is an integral part of the most ambitious robotics projects. Therefore, we're always improving the stability and reliability of Rerun for larger-scale and cutting-edge use cases. While not as 'visual' as some of our other changes, we'd be remiss not to feature the team's work on stability.

In 0.25, we rewrote the flush logic across all SDKs (C++, Python, Rust) with configurable timeouts (and infinite default timeout). This can solve some data loss on slow connections issues while preventing hanging applications - making Rerun more robust for logging in production deployments.

When flushing a recording stream you can now give it a maximum time for how long it should block. The flush will block until either it completes, fails (e.g., because of connection loss), or the timeout is reached. There are some nuances to this behavior and if you're interested in learning more, please see the migration guide for more details.

Breaking changes breaking-changes

  • Removed the deprecated --serve flag, which is now --web-viewer.
  • Updated the flushing logic to take timeouts and return errors (when necessary).
  • Python 3.9 is no longer supported.
  • Changes to archetype specification in AnyValues.

See the migration guide for the details.

In closing in-closing

We're excited to share that Rerun 0.25 is now available on GitHub and PyPI. We hope you enjoy the new features and improvements, and we look forward to seeing what you do with Rerun.