rerun README

The project's README from github.com/rerun-io/rerun. As one markdown file: README.md.

Banner with Rerun logo

PyPi crates.io MIT Apache Rerun Discord

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.

Use cases

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

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:

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

Installing a pre-release Python SDK

  1. Download the correct .whl from GitHub Releases
  2. Run pip install rerun_sdk<…>.whl (replace <…> with the actual filename)
  3. Test it: rerun --version

rerun (rerun-io/rerun)

Searching Database…

11.6K ·GitHub
这是什么?Rerun 是面向物理 AI 的数据层:它可以记录、查询、可视化和流式传输多模态机器人数据(图像、点云、坐标变换、时间序列、视频),帮助你调试传感器数据流程,并把数据输入到模型训练中。
它只是像 RViz 那样的可视化工具,还是功能更多?它不只是查看器:它是一个存储与查询底层,内置实时查看器、数据帧/SQL 查询引擎和 SDK,基于列式分块存储,适用于多频率的物理数据。
我该怎么开始用它记录数据?为你使用的语言安装对应的 SDK(Python 用 pip install rerun-sdk,Rust 用 cargo add rerun,或使用 C++ SDK)。记录数据后,内置查看器会打开并实时显示数据。
我还需要单独安装 Viewer 程序吗?只有 Python SDK 内置了 Viewer;C++ 和 Rust 用户需要通过 pip 或 cargo install rerun-cli 单独安装 rerun 可执行文件。nasm 功能则需要 nasm 命令行工具,才能获得最佳的视频解码效果。
目前有哪些已知的不完善之处?项目仍在积极开发中,API 还在不断演进,预计会有破坏性变更;实体过多时查看器会变慢,数百万点的点云加载可能很慢。
这是给谁用的?它面向机器人、仿真和计算机视觉开发者,帮助他们调试和改进那些随时间产生丰富多模态传感器数据的系统。
我能在浏览器里查看数据,而不是用桌面应用吗?可以。除了原生查看器,Rerun Viewer 也可以直接在浏览器中运行。
整个项目都是免费开源的吗?是的。核心部分采用开放核心(open-core)模式:本仓库中的所有内容都保持开源免费,同时另有一款名为“Rerun Hub”的商业目录产品面向团队销售。
我可以用哪些语言记录数据?Rerun 提供 Python、Rust 和 C++ 的 SDK,你可以用自己流水线所使用的任何语言记录数据。
除了查看,我还能查询已记录的数据吗?可以。同一份已记录的数据既可以作为数据帧查询,也可以通过 SQL 查询,并且无需导出作业即可直接流式传输到模型训练中。
它能加载哪些类型的文件或数据源?它可以导入机器人日志、第一视角(egocentric)或 UMI 采集装置的数据、仿真输出、网络视频,以及 MCAP、.rrd 文件和 LeRobot 数据集等格式。
有现成的编程智能体集成吗?有。仓库中附带了智能体技能(位于 skills/ 文件夹中),可帮助编程智能体编写正确的 Rerun 记录代码,并可通过 skills CLI 安装。
Creator
rerun-io
Size
289.8 MB
Stars
11.6K
Age
4y
Commits · 90 Days