rerun
Library Featured
The Rerun Rust SDK: log images, point clouds, etc, and visualize them effortlessly
- Downloads
- 214,455
- Dependents
- 67
- Stars
- 11,731
- Forks
- 895
- Contributors
- 194
- Commits
- 10,408
- Latest release
- 0.42.0 ·
About
The data layer for physical AI
Log, query, visualize, and stream to training on shared columnar storage built for multimodal data.
What it does: Rerun ingests multi-rate, multimodal data (images, point clouds, transforms, time series, joint states, video) from many sources and formats (robot logs, human-data rigs, sim, web video; MCAP, rrd, LeRobot). The built-in viewer renders everything in sync, in realtime: scrub episodes, compare sensors side-by-side, watch CV pipelines run live. The same data is queryable with dataframes or SQL, and streams directly into training. Built in Rust on column-chunk storage purpose-built for multi-rate physical data. SDKs in Python, Rust, and C++.
Quickstart: pip install rerun-sdk — log your first multimodal data and see it in the viewer in under 2 minutes.
Read the full README
Use cases
- Ingest robot logs, egocentric/UMI rigs, sim, and web video into one substrate
- Run CV pipelines (SLAM, hand tracking, motion retargeting) as table edits
- Query raw, intermediate, and derived data with dataframes or SQL
- Visualize multi-rate, multimodal sequences across the pipeline
- Stream dataset mixes directly to training — no export jobs, no stale copies
Data types
Multi-rate, multimodal, spatial: images, point clouds, time series, tensors, transforms, joint states, video. Preserved end-to-end.
A short taste
import rerun as rr # pip install rerun-sdk
rr.init("rerun_example_app")
rr.spawn() # Spawn a child process with a viewer and connect
# rr.save("recording.rrd") # Stream all logs to disk
# rr.connect_grpc() # Connect to a remote viewer
# Associate subsequent data with 42 on the “frame” timeline
rr.set_time("frame", sequence=42)
# Log colored 3D points to the entity at `path/to/points`
rr.log("path/to/points", rr.Points3D(positions, colors=colors))
…
Getting started
Installing the Rerun Viewer binary
To stream log data over the network or load our .rrd data files you also need the rerun binary.
It can be installed with pip install rerun-sdk or with cargo install rerun-cli --locked --features nasm (see note below).
Note that only the Python SDK comes bundled with the Viewer whereas C++ & Rust always rely on a separate install.
Note: the nasm Cargo feature requires the nasm CLI to be installed and available in your path.
Alternatively, you may skip enabling this feature, but this may result in inferior video decoding performance.
You should now be able to run rerun --help in any terminal.
Documentation
- 📚 High-level docs
- ⏃ Loggable Types
- ⚙️ Examples
- 📖 Code snippets
- 🌊 C++ API docs
- 🐍 Python API docs
- 🦀 Rust API docs
- ⁉️ Troubleshooting
Agent skills
This repo ships a set of agent skills that help coding agents write Rerun code.
Install them into your agent with the skills CLI:
npx skills add rerun-io/rerun
The skills themselves live in skills/ if you want to read them directly.
Status
We are in active development. There are many features we want to add, and the API is still evolving. Expect breaking changes!
Some shortcomings:
What is Rerun for?
Rerun is built to help you understand and improve complex processes that include rich multimodal data, like 2D, 3D, text, time series, tensors, etc. It is used in many industries, including robotics, simulation, computer vision, or anything that involves a lot of sensors or other signals that evolve over time.
Example use case
Say you're building a vacuum cleaning robot and it keeps running into walls. Why is it doing that? You need some tool to debug it, but a normal debugger isn't gonna be helpful. Similarly, just logging text won't be very helpful either. The robot may log "Going through doorway" but that won't explain why it thinks the wall is a door.
What you need is a visual and temporal debugger, that can log all the different representations of the world the robots holds in its little head, such as:
- RGB camera feed
- depth images
- lidar scan
- segmentation image (how the robot interprets what it sees)
- its 3D map of the apartment
- all the objects the robot has detected (or thinks it has detected), as 3D shapes in the 3D map
- its confidence in its prediction
- etc
You also want to see how all these streams of data evolve over time so you can go back and pinpoint exactly what went wrong, when and why.
Maybe it turns out that a glare from the sun hit one of the sensors in the wrong way, confusing the segmentation network leading to bad object detection. Or maybe it was a bug in the lidar scanning code. Or maybe the robot thought it was somewhere else in the apartment, because its odometry was broken. Or it could be one of a thousand other things. Rerun will help you find out!
But seeing the world from the point of the view of the robot is not just for debugging - it will also give you ideas on how to improve the algorithms, new test cases to set up, or datasets to collect. It will also let you explain the brains of the robot to your colleagues, boss, and customers. And so on. Seeing is believing, and an image is worth a thousand words, and multimodal temporal logging is worth a thousand images :)
While seeing and understanding your data is core to making progress in robotics, there is one more thing: You can also use the data you collected for visualization to create new datasets for training and evaluating the models and algorithms that run on your robot. Rerun provides query APIs to make it easy to extract clean datasets from your recording for exactly that purpose.
Of course, Rerun is useful for much more than just robots. Any time you have any form of sensors, or 2D or 3D state evolving over time, Rerun is a great tool.
Rerun vs. Rviz
When coming from pure visualization tools like RViz, you might be used to seeing the latest data only. Rerun is more than a pure visualization solution, it provides a platform for multimodal data with a powerful visualizer, storage model and query engine (see also: "What is Rerun?"). In robotics, you can use Rerun e.g. to record test runs, manage and query training data, visually debug live streams or recordings (also from third-party formats like MCAP) and much more.
So while Rerun makes your data streams visualizable in the viewer, integrating Rerun logging into your robotics applications also opens up the door for leveraging Rerun's broader capabilities.
If you are only interested in visualization, the Rerun viewer has powerful features like the ability to go back in time thanks to its time-aware in-memory database. You can adjust the size of this buffer to your needs (see here), e.g. to a smaller size if you want to use Rerun as an RViz replacement in long-running or memory-constrained applications.
Business model
Rerun uses an open-core model. Everything in this repository will stay open source and free (both as in beer and as in freedom).
We are also building Rerun Hub, a scalable catalog for robotic data. Right now that is only available for a few select design partners. Click here if you're interested.
The Rerun open source project targets the needs of individual developers. The commercial product targets the needs specific to teams that build and run computer vision and robotics products.
How to cite Rerun
When using Rerun in your research, please cite it to acknowledge its contribution to your work. This can be done by including a reference to Rerun in the software or methods section of your paper.
Suggested citation format:
@software{RerunSDK,
title = {Rerun: A Visualization SDK for Multimodal Data},
author = {{Rerun Development Team}},
url = {https://www.rerun.io},
version = {insert version number},
date = {insert date of usage},
year = {2024},
publisher = {{Rerun Technologies AB}},
address = {Online},
note = {Available from https://www.rerun.io/ and https://github.com/rerun-io/rerun}
}
Please replace "insert version number" with the version of Rerun you used and "insert date of usage" with the date(s) you used the tool in your research. This citation format helps ensure that Rerun's development team receives appropriate credit for their work and facilitates the tool's discovery by other researchers.
Development
ARCHITECTURE.mdCODE_OF_CONDUCT.mdCODE_STYLE.mdCONTRIBUTING.mdBUILD.mdrerun_py/README.md- instructions for Python SDKrerun_cpp/README.md- instructions for C++ SDK
Installing a pre-release Python SDK
- Download the correct
.whlfrom GitHub Releases - Run
pip install rerun_sdk<…>.whl(replace<…>with the actual filename) - Test it:
rerun --version
Compatibility
- Runs on
- WebGPU
What shows it
- WebGPU: re_renderer dependency wgpu, re_space_view_tensor dependency wgpu, re_test_context dependency wgpu, re_view_tensor dependency wgpu, re_viewer dependency wgpu, re_viewer_context dependency wgpu
- Native code
- Required
- Binds native code: libmimalloc-sys, libudev-sys, wayland-sys, ring (feature oauth), coreaudio-sys (feature output) and 1 more
- Python bindings
- Has Python bindings
- re_protos needs Python only with feature py
- License
- Apache-2.0 OR MIT
Compare with similar projects
Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days.
| Project | Downloads | Dependents | Stars | Latest release | Runs on (GPU) | Native code | License |
|---|---|---|---|---|---|---|---|
|
The Rerun Rust SDK: log images, point clouds, etc, and visualize them effortlessly Python bindings |
214,455 downloads over 30 days | 67 | 11,731 | 0.42.0 | WebGPU | Binds native code: libmimalloc-sys, libudev-sys, wayland-sys, ring (feature oauth), coreaudio-sys (feature output) and 1 more | Apache-2.0 OR MIT |
|
opencv-rust Featured
Rust bindings for OpenCV |
262,425 downloads over 30 days | 96 | 2,500 | 0.101.1 | GPU support unknown | Build uses a native toolchain: cc, pkg-config, vcpkg | MIT |
|
ML-powered manga translator, written in Rust. |
6,338 binary downloads per release | Not applicable | 6,620 | Not measured | Not measured | Apache-2.0 | |
|
Face detection library, based on the C++ SeetaFace engine. |
4,231 downloads over 30 days | 3 | 436 | 0.1.7 | GPU support unknown | No native code found | BSD-2-Clause |
|
inference Listed
Ultralytics YOLO inference library and CLI for Rust |
2,609 downloads over 30 days | 1 | 217 | 0.0.56 | CUDA, WebGPU, ROCm | Binds native code: ort-sys, ffmpeg-sys-next (feature video), openvino-sys (feature intel) | AGPL-3.0 |
|
Rust implementation of the Diffusers library using Torch. |
49 downloads over 30 days | 1 | 596 | 0.3.1 | CUDA | Binds native code: torch-sys | Apache-2.0 OR MIT |
Why FeaturedIt passes every Featured gate.
What it meets
- It has 30 active dependents and 22 new dependents in 365 days. Featured needs 11 active dependents or 9 new dependents in 365 days.
- Active dependents are at 100% of their peak. Featured needs at least 50%.
- Docs are present. The release commit or a manifest ties the crate to the repository.
- No vulnerability advisory stays unpatched past the grace window. At least one version is neither a prerelease nor 0.0.x.
- The last activity is on 6 Nov 2026, 3 days ago. The rules expect an update within 560 days. Dormancy rule
Exact rules: Featured library. The check on applied thresholds version 9.
Every rule outcome, as the check records it
expected-interval: version 0.42.0 base 140, doubled for 214455 downloads per month, doubled for 30 active users: E = 560 daysdormancy: last activity 2026-11-06, 3 days ago, E = 560: activefeatured: featured: active_users 30, new_adopters 22, former_glory 1
Crates146 crates
- rerun Primary
- re_agent
- re_agent_ui
- re_analytics
- re_arrow_combinators
- re_arrow_json
- re_arrow_store
- re_arrow_ui
- re_arrow_util
- re_async
- re_audio
- re_auth
- re_backoff
- re_blueprint_tree
- re_build_build_info
- re_build_info
- re_build_tools
- re_build_web_viewer
- re_byte_size
- re_byte_size_derive
- re_capabilities
- re_case
- re_catalog_client
- re_chunk
- re_chunk_index
- re_chunk_optimizer
- re_chunk_store
- re_chunk_store_ui
- re_component_fallbacks
- re_component_ui
- re_components
- re_context_menu
- re_crash_handler
- re_data_loader
- re_data_source
- re_data_store
- re_data_ui
- re_dataframe
- re_dataframe_ui
- re_datafusion
- re_dump_puffin
- re_edit_ui
- re_entity_db
- re_error
- re_format
- re_format_arrow
- re_gamepad
- re_global_context
- re_grpc_client
- re_grpc_headers
- re_grpc_server
- re_hdf5
- re_importer
- re_int
- re_int_histogram
- re_lenses
- re_lenses_core
- re_lerobot
- re_log
- re_log_channel
- re_log_encoding
- re_log_msg
- re_log_types
- re_mcap
- re_mcap_ros2
- re_memory
- re_memory_view
- re_mp4_reader
- re_mutex
- re_parquet
- re_perf_telemetry
- re_plot
- re_protos
- re_protos_builder
- re_query
- re_query_cache
- re_quota_channel
- re_recording_panel
- re_redap_browser
- re_redap_client
- re_redap_tests
- re_renderer
- re_ros_msg
- re_rvl
- re_sdk
- re_sdk_comms
- re_sdk_types
- re_selection_panel
- re_server
- re_smart_channel
- re_sorbet
- re_space_view
- re_space_view_bar_chart
- re_space_view_dataframe
- re_space_view_map
- re_space_view_spatial
- re_space_view_tensor
- re_space_view_text
- re_space_view_text_box
- re_space_view_text_document
- re_space_view_text_log
- re_space_view_time_series
- re_span
- re_string_interner
- re_tensor_ops
- re_test_context
- re_test_mocks
- re_test_viewport
- re_tf
- re_time_panel
- re_time_ruler
- re_tracing
- re_tuid
- re_types
- re_types_blueprint
- re_types_builder
- re_types_builder_macros
- re_types_builder_prelude
- re_types_core
- re_ui
- re_uri
- re_video
- re_view
- re_view_audio
- re_view_bar_chart
- re_view_dataframe
- re_view_graph
- re_view_map
- re_view_spatial
- re_view_state_timeline
- re_view_tensor
- re_view_text_document
- re_view_text_log
- re_view_time_series
- re_viewer
- re_viewer_context
- re_viewer_mcp
- re_viewport
- re_viewport_blueprint
- re_web
- re_web_server
- re_web_viewer_server
- re_workspace_hack
- re_ws_comms
- rerun-cli
- rerun_c
Measurements and sources
Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.
Sources6 sources
- Description: the crates.io description
- crates.io database dump, fetched
- RustSec advisory database, fetched
- GitHub repository, fetched
- crates.io package, fetched
- GitHub contributors, fetched
Adoption30 active dependents, 22 new dependents in 365 days1 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Active dependents | 30 | crates.io database dump | Yes | |
| New dependents (365 days) | 22 | crates.io database dump | Yes | |
| Peak active dependents | 30.5 | crates.io database dump | Yes | |
| Active dependents as a share of the peak | 1 | crates.io database dump | Yes | |
| Binary downloads per release | Not measured | Yes |
MaintenanceLatest human commit: 3 days ago3 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Latest human commit | 2026-11-06 | GitHub repository | Yes | |
| Latest release | 2026-11-04 | crates.io database dump | Yes | |
| First release | 2020-08-11 | crates.io database dump | Yes | |
| Latest version | 0.42.0 | crates.io database dump | Yes | |
| Days the oldest outside issue waits for a reply | 64 | GitHub repository | Yes | |
| Maintainer replies over 365 days | 143 | GitHub repository | Yes | |
| Repository archived | false | GitHub repository | Yes | |
| Repository gone | false | GitHub repository | Yes | |
| Release commit or manifest in the repo | true | crates.io package | Yes | |
| Published docs | true | crates.io database dump | Yes | |
| Latest release fails cargo check | Not measured | Yes | ||
| Build check date | Not measured | Yes | ||
| Build check toolchain | Not measured | Yes |
SecurityUnpatched vulnerabilities: none
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Unpatched vulnerabilities past the grace window | none | RustSec advisory database | Yes | |
| RustSec unmaintained advisory | none | RustSec advisory database | Yes | |
| Deprecation notice | none | crates.io database dump | Yes | |
| Deprecated requirement | none | crates.io database dump | Yes |
Distribution274 releases, 214,455 downloads over 30 days5 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Releases | 274 | crates.io database dump | Yes | |
| Downloads over 30 days | 214455 | crates.io database dump | Yes | |
| Binary downloads over the last 3 releases | Not measured | Yes | ||
| Homebrew installs on request over 365 days | Not measured | Yes | ||
| Repology repository families | Not measured | Yes | ||
| Docker pull growth over 90 days | Not measured | Yes | ||
| Docker pulls at the growth baseline | Not measured | Yes | ||
| Every version a prerelease | false | crates.io database dump | Yes | |
| Every version 0.0.x | false | crates.io database dump | Yes | |
| Every version yanked | false | crates.io database dump | Yes | |
| Crate deleted from crates.io | false | crates.io database dump | Yes |
Repository11,731 stars, 895 forks, 194 contributors, 10,408 commits. Stars alone never qualify a project.
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| GitHub stars | 11731 | GitHub repository | Yes — one part of the repository route | |
| GitHub forks | 895 | GitHub repository | Yes — one part of the repository route | |
| Contributors with a GitHub account | 194 | GitHub contributors | Yes — one part of the repository route | |
| Commits on the default branch | 10408 | GitHub repository | No | |
| Repository's main crate left out of the entry | none | crates.io database dump | Yes |
Facts that never count
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| License | Apache-2.0 OR MIT | crates.io database dump | No | |
| Runs on, from listed crates and their direct dependencies | WebGPU | crates.io database dump | No | |
| What shows each backend | WebGPU: re_renderer dependency wgpu, re_space_view_tensor dependency wgpu, re_test_context dependency wgpu, re_view_tensor dependency wgpu, re_viewer dependency wgpu, re_viewer_context dependency wgpu | crates.io database dump | No | |
| Native code, from listed crates and their dependencies | Binds native code: libmimalloc-sys, libudev-sys, wayland-sys, ring (feature oauth), coreaudio-sys (feature output) and 1 more | crates.io database dump | No | |
| Python bindings, from direct dependencies of listed crates | Has Python bindings: re_protos needs Python only with feature py | crates.io database dump | No | |
| Crates that depend on a listed crate directly | 67 | crates.io database dump | No |
Corrections and review history
No correction applies to this entry.
Judgments
A judgment enters only through an approved issue and a merged pull request.
No judgment applies to this entry.