Rerun 快速上手:多模态数据可视化开发环境的完整搭建指南
【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun
你手里有一堆图像、点云、IMU 信号和关节状态,散落在日志和传感器里,普通调试器根本看不清问题出在哪?Rerun 是为此而生的数据层:记录、查询、实时可视化多模态机器人数据,并把同一份数据直接流进训练。读完并照做完这份 Rerun 开发环境指南,你能从源码编译出 Viewer,跑通 Python 与 Rust 两个最小示例,并且遇到报错时知道该查哪里。
环境一览:动手前先自查
| 类别 | 要求 | 说明 |
|---|---|---|
| 操作系统 | Linux x86_64 / aarch64(glibc ≥ 2.28)、macOS 11+、Windows 64 位 | 见 pixi.toml 的 platforms 声明 |
| Rust / Cargo | 1.96.0 | 由 rust-toolchain 钉死,含 wasm32 目标 |
| Pixi | ≥ 0.71.3 | 仓库唯一的依赖与任务管理器 |
| Git LFS | 必装 | UI 测试快照等大文件存在 LFS 里 |
| 图形后端 | Linux 需 EGL/GL 开发库 | 窗口类程序的基本前提 |
| C++ 附加项 | 仅 C++ SDK 需要 | Windows 必须另装 Visual Studio 2022 |
两点容易漏:仓库用 PyO3 做 Python 绑定,Python 解释器(3.11)由 pixi 管理,你不用自己折腾虚拟环境;Windows 下 git 需要开启 symlink,否则后续构建可能报错,可用git config core.symlinks检查。
30 秒快速体验:最短路径跑起来
先给正反馈,细节后面再补。把仓库克隆下来,装依赖,起 Viewer:
git clone https://gitcode.com/GitHub_Trending/re/rerun cd rerun && pixi install pixi run rerun第一次编译会花一段时间(viewer 依赖很多 crate),窗口弹出、能看到空的时间轴面板,就说明环境基本通了。这一步等价于cargo run --package rerun-cli ...,只是 pixi 帮你把 feature 和工具链都配好了。
分步完整搭建:四步把环境装对
第一步:装工具链
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh rustup install 1.96.0 && rustup default 1.96.0为什么钉版本:pixi 的 check-env 会严格比对cargo --version,版本不对后面一堆任务都会莫名其妙失败。Apple Silicon 若提示 host 是 x86_64,执行rustup set default-host aarch64-apple-darwin后再装。Pixi 按其官网脚本安装,Windows 用图形安装包即可。
第二步:初始化仓库
git clone https://gitcode.com/GitHub_Trending/re/rerun && cd rerun git lfs install && git lfs pull仓库把 UI 回归测试快照放在 LFS 里,正常构建不拉也能编译,但跑测试会缺素材。跑完git lfs ls-files能看到一堆文件清单,说明 LFS 工作正常。
第三步:装项目依赖
pixi install这一条会按 pixi.toml 的base环境从 conda-forge 拉下 Rust 1.96.0、Python 3.11、clang、ninja、nasm 等全部开发工具,并自动执行激活脚本生成rerun_py/pyo3-build.cfg。macOS 上确认rustc -vV输出的 host 与你的芯片一致;Windows 上确认 symlink 已开启。
第四步:环境自检
pixi run check-env它只查三件事:pixi、cargo、rustc 的版本是否精确匹配(脚本在 scripts/check_env.py)。任何一项不对,它都会直接告诉你该跑哪条升级命令,照着执行再复查即可。
首次运行与验证:编译 Viewer 并跑通最小示例
先编译核心可执行文件并启动:
pixi run rerun产物在target/debug/rerun,要发布版就换成pixi run rerun-release。预期现象:一个原生窗口弹出,里面是空的时间轴和蓝图面板——此时还没有数据,这是正常的。
接着走一遍 Python 数据链路。Python SDK 的 Rust 扩展需要先用 maturin 编进 uv 管理的.venv:
pixi run py-build pixi run uv run examples/python/minimal/minimal.py预期现象:脚本里spawn=True会自动拉起一个 viewer 窗口,并出现my_points实体——一个 10×10×10 的彩色 3D 点云网格,位置从 -10 到 10 均匀分布。仓库里的可视化快照长这样:
窗口里能看到彩色点云,链路就全通了。想跑 Rust 侧的最小示例(examples/rust/minimal/):
cargo run -p minimal示例会连上已在运行的 viewer,或自己 spawn 一个;debug 构建优先使用target/debug/rerun。
深入一步:Python 与 Rust SDK 接入和调试
日常开发主要用这两条命令:
pixi run rspy # 进入 uv 环境的交互式解释器,import rerun 即用 pixi run uv run <脚本路径> # 在正确环境里跑任意示例脚本Python 的运行时依赖由 pixi 环境之外的 uv 独立管理(见 pixi.toml 注释),所以别在你的全局 pip 环境里乱装包,示例依赖用pixi run py-sync-examples补。
调试配置:
- VS Code 装 rust-analyzer + CodeLLDB,对
target/debug/rerun打断点直接调 viewer 二进制; - 排查 Rust 侧 panic 时加
RUST_BACKTRACE=full,堆栈会完整打出来; - 嫌 debug 编译慢时,
pixi run rerun-build-fast用 Cranelift 后端快速出一个能跑的 viewer(需先rustup component add rustc-codegen-cranelift-preview --toolchain nightly)。
C++ 侧只用一条命令就能验证工具链:pixi run -e cpp cpp-test,它会在cpp环境里编译并跑 C++ 测试;构建时会自动导出compile_commands.json,clangd 直接可用。
排错速查:现象 → 原因 → 解法
| 现象 | 原因 | 解法 |
|---|---|---|
failed to parse contents of PYO3_CONFIG_FILE | 没经过 pixi 激活,rerun_py/pyo3-build.cfg缺失 | pixi run ensure-pyo3-build-cfg(详见 BUILD.md) |
check-env报版本不匹配 | 系统 Rust 不是 1.96.0 | rustup install 1.96.0 && rustup default 1.96.0,并确认真在读仓库 rust-toolchain |
| Apple Silicon 编译报架构不匹配 | rustup host 默认成了 x86_64 | rustup set default-host aarch64-apple-darwin && rustup install 1.96.0 |
| Windows 构建/链接失败 | git 未开 symlink | 启用core.symlinks,必要时打开开发者模式,参考 BUILD.md |
git lfs ls-files为空 | 没装 LFS | 装 git-lfs 后git lfs install && git lfs pull |
| Linux 窗口打不开 / 报 EGL 缺失 | 缺图形开发库 | 安装 EGL/GL 开发包后重试,必要时启用软件渲染 |
接下来你能做什么
pixi run rerun [文件.rrd]打开任意 RRD 录制文件,按时间轴回看多模态数据;pixi run py-build+ uv 环境跑通你自己的 Python 日志脚本;cargo run -p <示例名>逐个逛 examples/ 里的多语言示例;- 环境、任务、测试细节以 BUILD.md 和 TESTING.md 为准。
构建中卡住或版本对不上,先看排错表再翻 BUILD.md,绝大多数环境问题都能在三步内定位。
【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考