rerun-io/rerun
요약
Rerun은 로보틱스, 시뮬레이션, 컴퓨터 비전 분야를 위한 다중 모드 데이터 시각화 및 디버깅 도구입니다. Rust 기반의 컬럼형 스토리지를 사용하여 이미지, 포인트 클라우드, 시계열 등 다양한 데이터를 실시간으로 기록하고 쿼리하며 학습으로 스트리밍할 수 있습니다.
핵심 포인트
- 다중 모드(이미지, 포인트 클라우드, 시계열 등) 데이터 통합 지원
- Rust 기반의 고성능 컬럼 청크 스토리지 사용
- Python, Rust, C++ SDK 제공 및 실시간 시각화 뷰어 내장
- 데이터프레임 및 SQL을 통한 데이터 쿼리 가능
- 데이터셋을 별도 내보내기 없이 학습으로 직접 스트리밍
다중 모드 데이터에 최적화된 공유 컬럼형 스토리지로 로그를 기록하고, 쿼리하며, 시각화하고, 학습까지 스트리밍합니다.
기능: Rerun은 다양한 소스 및 형식(로봇 로그, 인간 데이터 리깅, 시뮬레이션, 웹 비디오; MCAP, rrd, LeRobot)에서 오는 다중 속도(multi-rate), 다중 모드(multimodal) 데이터(이미지, 포인트 클라우드, 변환(transforms), 시계열, 관절 상태(joint states), 비디오)를 수집합니다. 내장 뷰어는 모든 것을 실시간으로 동기화하여 렌더링합니다: 에피소드를 스크러빙하고, 센서를 나란히 비교하며, CV 파이프라인을 라이브로 시청할 수 있습니다. 동일한 데이터는 dataframes 또는 SQL로 쿼리할 수 있으며, 학습(training)으로 직접 스트리밍됩니다. Rust로 구축되었으며 다중 속도 물리 데이터에 최적화된 컬럼 청크 스토리지(column-chunk storage)를 사용합니다. Python, Rust, C++용 SDK가 제공됩니다.
빠른 시작: pip install rerun-sdk
— 2분 이내에 첫 다중 모드 데이터를 기록하고 뷰어에서 확인해 보세요.
- 로봇 로그, 에고센트릭/UMI 리깅, 시뮬레이션 및 웹 비디오를 하나의 기저(substrate)에 수집합니다.
- CV 파이프라인(SLAM, 핸드 트래킹, 모션 리타겟팅)을 테이블 편집으로 실행합니다.
- dataframes 또는 SQL로 원시(raw), 중간, 파생 데이터를 쿼리합니다.
- 파이프라인 전반에 걸쳐 다중 속도, 다중 모드 시퀀스를 시각화합니다.
- 데이터셋 혼합물을 직접 학습으로 스트리밍합니다 — 내보내기 작업이나 오래된 사본(stale copies)이 필요 없습니다.
다중 속도, 다중 모드, 공간적: 이미지, 포인트 클라우드, 시계열, 텐서, 변환, 관절 상태, 비디오. 엔드투엔드로 보존됩니다.
import rerun as rr # pip install rerun-sdk
arr.init(
이제 어떤 터미널에서든 `rerun --help`를 실행할 수 있습니다.
- 📚 상위 수준 문서 (High-level docs)
- ⏃ 로그 기록 가능 타입 (Loggable Types)
- ⚙️ 예제 (Examples)
- 📖 코드 스니펫 (Code snippets)
- 🌊 C++ API 문서 (C++ API docs)
- 🐍 Python API 문서 (Python API docs)
- 🦀 Rust API 문서 (Rust API docs)
⁉️ 문제 해결 (Troubleshooting)
우리는 활발하게 개발 중입니다.
추가하고 싶은 기능이 많으며, API는 여전히 진화하고 있습니다.
*파괴적 변경 사항 (Breaking changes)이 발생할 수 있음을 유의하세요!*
몇 가지 부족한 점:
Rerun은 2D, 3D, 텍스트, 시계열 (Time series), 텐서 (Tensors) 등 풍부한 멀티모달 (Multimodal) 데이터를 포함하는 복잡한 프로세스를 이해하고 개선할 수 있도록 구축되었습니다. 이는 로보틱스 (Robotics), 시뮬레이션 (Simulation), 컴퓨터 비전 (Computer vision) 또는 많은 센서나 시간에 따라 변화하는 기타 신호가 포함되는 모든 분야를 포함한 많은 산업에서 사용됩니다.
예를 들어, 당신이 진공 청소 로봇을 만들고 있는데 로봇이 계속 벽에 부딪힌다고 가정해 봅시다. 왜 그런 걸까요? 이를 디버깅할 도구가 필요하지만, 일반적인 디버거 (Debugger)는 도움이 되지 않을 것입니다. 마찬가지로, 단순히 텍스트를 로그로 남기는 것도 별로 도움이 되지 않습니다. 로봇이 "문 통과 중"이라고 로그를 남길 수는 있지만, 그것만으로는 왜 로봇이 벽을 문이라고 생각하는지 설명해주지 못합니다.
당신에게 필요한 것은 로봇이 머릿속에 담고 있는 세상의 모든 다양한 표현들을 로그로 기록할 수 있는 시각적이고 시간적인 디버거 (Visual and temporal debugger)입니다. 예를 들면 다음과 같습니다:
- RGB 카메라 피드 (RGB camera feed)
- 깊이 이미지 (Depth images)
- 라이다 스캔 (Lidar scan)
- 세그멘테이션 이미지 (Segmentation image, 로봇이 보는 것을 해석하는 방식)
- 아파트의 3D 지도 (3D map)
- 로봇이 감지한(또는 감지했다고 생각하는) 모든 객체들을 3D 지도의 3D 형상으로 표현한 것
- 예측에 대한 신뢰도 (Confidence)
- 기타 등등
또한, 이 모든 데이터 스트림이 시간이 지남에 따라 어떻게 변화하는지 확인하여, 무엇이, 언제, 왜 잘못되었는지 정확히 짚어낼 수 있어야 합니다.
아마도 태양광의 눈부심이 센서 중 하나에 잘못 부딪혀 세그멘테이션 네트워크 (Segmentation network)를 혼란스럽게 만들었고, 이로 인해 잘못된 객체 탐지 (Object detection)로 이어졌을 수도 있습니다. 혹은 라이다 스캔 코드의 버그였을 수도 있습니다. 또는 오도메트리 (Odometry)가 고장 나서 로봇이 아파트의 다른 위치에 있다고 생각했을 수도 있습니다. 혹은 수천 가지의 다른 이유 중 하나일 수도 있습니다. Rerun이 이를 찾아낼 수 있도록 도와줄 것입니다!
하지만 로봇의 관점에서 세상을 보는 것은 단순히 디버깅(debugging)만을 위한 것이 아닙니다. 이는 알고리즘을 개선하는 방법, 설정할 새로운 테스트 케이스, 또는 수집해야 할 데이터셋에 대한 아이디어를 제공할 것입니다. 또한 로봇의 두뇌를 동료, 상사, 그리고 고객에게 설명할 수 있게 해줍니다. 기타 등등 말이죠. 보는 것이 믿는 것이며, 백문이 불여일견이고, 멀티모달 시계열 로깅 (multimodal temporal logging)은 천 장의 이미지보다 가치 있습니다 :)
데이터를 보고 이해하는 것이 로보틱스 (robotics)의 발전을 위한 핵심이지만, 한 가지가 더 있습니다. 시각화를 위해 수집한 데이터를 로봇에서 실행되는 모델과 알고리즘을 훈련하고 평가하기 위한 새로운 데이터셋을 만드는 데 사용할 수도 있습니다. Rerun은 정확히 그러한 목적으로 녹화 데이터에서 깨끗한 데이터셋을 쉽게 추출할 수 있도록 쿼리 API (query APIs)를 제공합니다.
물론, Rerun은 로봇 이외의 용도로도 훨씬 더 유용합니다. 어떤 형태의 센서든, 혹은 시간에 따라 변화하는 2D 또는 3D 상태(state)를 다루는 경우라면 Rerun은 훌륭한 도구가 됩니다.
RViz와 같은 순수 시각화 도구에서 넘어온 경우, 최신 데이터만 보는 것에 익숙할 수 있습니다.
Rerun은 단순한 시각화 솔루션 그 이상입니다. 강력한 시각화 도구(visualizer), 저장 모델(storage model), 그리고 쿼리 엔진(query engine)을 갖춘 멀티모달 데이터 플랫폼을 제공합니다 (참고: *"What is Rerun?"*).
로보틱스 분야에서 Rerun을 사용하여 테스트 실행을 기록하거나, 훈련 데이터를 관리 및 쿼리하거나, 라이브 스트림 또는 녹화 데이터(MCAP과 같은 제3자 형식 포함)를 시각적으로 디버깅하는 등 훨씬 더 많은 일을 할 수 있습니다.
따라서 Rerun이 뷰어(viewer)에서 데이터 스트림을 시각화할 수 있게 해주는 동시에, 로보틱스 애플리케이션에 Rerun 로깅을 통합하면 Rerun의 더 넓은 역량을 활용할 수 있는 문이 열립니다.
시각화에만 관심이 있다면, Rerun 뷰어는 시간 인지형 인메모리 데이터베이스 (time-aware in-memory database) 덕분에 과거로 돌아갈 수 있는 기능과 같은 강력한 기능을 갖추고 있습니다. 이 버퍼(buffer)의 크기를 필요에 따라 조정할 수 있으며 (여기 참조), 예를 들어 장시간 실행되거나 메모리가 제한된 애플리케이션에서 Rerun을 RViz 대체제로 사용하고 싶다면 더 작은 크기로 조정할 수 있습니다.
Rerun은 오픈 코어 (open-core) 모델을 사용합니다. 이 저장소의 모든 것은 오픈 소스(open source)로 유지되며 무료(beer와 freedom 모두의 의미에서)로 제공될 것입니다.
또한 우리는 로봇 데이터를 위한 확장 가능한 카탈로그인 Rerun Hub를 구축하고 있습니다. 현재 이는 소수의 선정된 디자인 파트너에게만 제공됩니다. 관심이 있다면 여기를 클릭하세요.
Rerun 오픈 소스 프로젝트는 개별 개발자의 요구 사항을 목표로 합니다. 상용 제품은 컴퓨터 비전 (computer vision) 및 로보틱스 (robotics) 제품을 구축하고 운영하는 팀의 특정 요구 사항을 목표로 합니다.
연구에서 Rerun을 사용할 때는 귀하의 작업에 대한 기여를 인정하기 위해 Rerun을 인용해 주세요. 이는 논문의 소프트웨어 또는 방법론 섹션에 Rerun에 대한 참조를 포함함으로써 수행할 수 있습니다.
권장 인용 형식:
@software{RerunSDK,
title = {Rerun: A Visualization SDK for Multimodal Data},
author = {{Rerun Development Team}},
...
"insert version number"를 사용한 Rerun의 버전으로, "insert date of usage"를 연구에서 도구를 사용한 날짜로 교체해 주세요. 이 인용 형식은 Rerun 개발 팀이 그들의 작업에 대해 적절한 공로를 인정받도록 돕고, 다른 연구자들이 이 도구를 더 쉽게 발견할 수 있도록 합니다.
`ARCHITECTURE.md`
`CODE_OF_CONDUCT.md`
`CODE_STYLE.md`
`CONTRIBUTING.md`
`BUILD.md`
`rerun_py/README.md`
- Python SDK를 위한 지침
`rerun_cpp/README.md`
- C++ SDK를 위한 지침
GitHub Releases에서 올바른 `.whl` 파일을 다운로드하세요. - 다음을 실행합니다:
`pip install rerun_sdk<…>.whl`
(`<…>`를 실제 파일 이름으로 교체하세요) - 테스트합니다:
`rerun --version`
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Rust (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기