How we sped up time series by 20-30x
This is a follow up post that dives into how we managed to achieve such huge performance gains for time series (among other things), and why it was so hard in the first place.
Rerun is an SDK for visualizing multimodal data that changes over time. It’s used by engineers and researchers in fields like computer vision and robotics to verify, debug, and demo.
pip install rerun-sdk rerun
Log data like tensors, point clouds, and text to create streams. Easily correlate input, intermediate state, and output from multiple sources.
import rerun as rr rr.init("my_data_generating_application") rr.connect() # Connect to a remote viewer … rr.log("tensor", rr.Tensor(array)) rr.log("points", rr.Points3D(positions)) rr.log("text", rr.TextDocument(string))
Get powerful interactive visualizations of live and recorded streams. Time travel through your data, dynamically aligned to any timeline.
Express the semantics of your data with Rerun's composable data model. Interactively build layouts and customize visualizations.
Use Rerun's dynamic schemas to log data in your own formats. Extend the Rerun Viewer with custom views or by embedding it in your own app.
// Rust Traits for custom Rerun Space Views // Defines a class of space view. impl SpaceViewClass for CustomSpaceView { // Frame to frame state of a space view. type State = … // Display the space view contents in the viewport. fn ui(…) { … } // What happens when the space view is selected. fn selection_ui(…) { … } // ...more customizations... } // Element of a scene derived from a single archetype query. impl ViewPartSystem for CustomSystem { // Which components does the system need to run. fn required_components(&self) -> ComponentNameSet { …} // Query for components and emit renderables. fn execute(…) -> Result<Vec<re_renderer::QueueableDrawData>, SpaceViewSystemExecutionError> { … } // ...shared data, heuristics, etc. ... }
Rerun's data model, a time aware Entity Component System, is designed to be expressive, composable, and extensible.
Everything from serialization, transport, out-of-order and multi-process ingestion, and multi-timeline indexing is handled for you.
Rerun understands spatial relationships by default. Use projections and transform hierarchies to connect spatial data.
The high performance and cross platform 2D/3D engine is built with Rust and wgpu to run native and in the browser with Wasm.
This is a follow up post that dives into how we managed to achieve such huge performance gains for time series (among other things), and why it was so hard in the first place.
The 0.13 release means teams can now correlate kHz resolution motion and perception data in Rerun. Seeing all your data and state together, correlated over time, is the most powerful thing you can do to understand your systems better.
Rerun should be able to open any file containing data you want to see, whether it's highly complex, rare, or proprietary to your team. With the new plugin system for loading arbitrary files in Rerun's 0.12 release that is now starting to become possible.
The Rerun C++ SDK is now fully on par with our two other SDKs in Python and Rust. Thanks to some great community feedback we've added more options for integrating Rerun in your CMake projects.
The ability to log streams of multimodal data from C++ and visualize it live in Rerun has been our most requested feature since before our public launch in February. The C++ SDK is finally out, but getting here the right way has been a long road.
We're just getting started and have lots of exciting features in the pipeline. We regularly publish summary Release Notes of what got built and shipped in the last month, as well as updates on our plans.
Subscribe to Release Notes