Rerun Rust SDK 项目搭建实战:从 cargo new 到第一个 3D 可视化程序
2026/9/16 18:23:15 网站建设 项目流程

Rerun Rust SDK 项目搭建实战:从 cargo new 到第一个 3D 可视化程序

【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun

本篇技术指南围绕 Rerun(一个用于可视化、查询与流式处理多模态机器人数据的开源 SDK,仓库位于GitHub_Trending/re/rerun)的Rust 项目搭建展开,讲解如何通过cargo newcargo add rerun快速初始化一个可运行的 Rerun Rust 工程。读完本文,你将掌握:完整的项目初始化步骤、reruncrate 的 feature 配置与版本匹配要求、一个可直接复制运行的最小 3D 点云示例,以及通往 Log and Ingest 教程与更高级连接方式(gRPC、RRD 文件、内嵌 Viewer)的完整路径。

前置条件:安装 Rust SDK 与 Viewer

在初始化项目之前,需要先完成两件事:

  1. 安装 Rust SDK:在项目里加入reruncrate 依赖,即cargo add rerun。官方安装文档见 install-rerun/rust.md。
  2. 安装 Viewer(独立于语言的可视化程序):Rerun 的数据格式在跨版本间尚未完全稳定,因此请务必保证你使用的 crate 版本与 Viewer 版本一致。Viewer 的多种安装方式见 install-rerun/viewer.md,主要包括:
安装途径命令说明
GitHub Release 二进制下载对应平台的rerun-cli免编译
Cargo(预编译)cargo binstall rerun-cli通过cargo-binstall下载二进制
Cargo(源码编译)cargo install rerun-cli --locked需要 Rust 1.96+
Snap(社区维护)snap install rerun通过 Snap Store
Python SDK 附带pip3 install rerun-sdk/conda install -c conda-forge rerun-sdk/pixi global install rerun-sdk安装 Python SDK 的同时获得rerun命令

安装完成后,在终端运行rerun即可启动 Viewer,它会等待 SDK 通过 gRPC 连接。

版本提示:reruncrate 要求较新的 Rust 工具链。仓库内examples/rust/minimal/Cargo.toml声明rust-version = "1.96"edition = "2024",因此使用旧版 Rust 时请先升级工具链(仓库根目录的 rust-toolchain 文件指定了项目推荐的工具链版本)。

第一步:用 cargo new 创建项目并添加 rerun 依赖

按照官方文档 project-setup/rust.md 的指引,整个初始化过程只需三条命令:

cargo new my_project cd my_project cargo add rerun
  • cargo new my_project会生成一个标准的 Rust 二进制工程(src/main.rs+Cargo.toml)。
  • cargo add rerun会将rerun作为最新版本依赖写入Cargo.toml[dependencies]段。

如果你在仓库内部开发示例(例如参考 examples/rust/minimal),也可以使用路径依赖方式指向本仓库的顶层 crate:

[dependencies] rerun = { path = "../../../crates/top/rerun" }

依赖添加完成后,你便可以进入>cargo add rerun --features native_viewer

第三步:编写最小可运行示例

完成依赖添加后,参考仓库中的 examples/rust/minimal/src/main.rs,可以在src/main.rs中写入如下代码——它创建一个记录流、spawn 一个 Viewer,并记录一组带颜色的 3D 点:

//! Demonstrates the most barebone usage of the Rerun SDK. use rerun::demo_util::grid; use rerun::external::glam; fn main() -> Result<(), Box<dyn std::error::Error>> { let rec = rerun::RecordingStreamBuilder::new("rerun_example_minimal").spawn()?; let points = grid(glam::Vec3::splat(-10.0), glam::Vec3::splat(10.0), 10); let colors = grid(glam::Vec3::ZERO, glam::Vec3::splat(255.0), 10) .map(|v| rerun::Color::from_rgb(v.x as u8, v.y as u8, v.z as u8)); rec.log( "my_points", &rerun::Points3D::new(points) .with_colors(colors) .with_radii([0.5]), )?; Ok(()) }

关键 API 解读(可对照 crates/top/rerun/README.md 中的快速上手片段):

  • RecordingStreamBuilder::new(application_id):以稳定的ApplicationId初始化一个 recording,稳定的 ID 能让 Viewer 在多次运行间保留 UI 状态。
  • .spawn():默认行为是在另一个进程中启动 Viewer,并把数据自动管道发送过去——适合单机实验。
  • rec.log(entity_path, &archetype):核心日志入口,第一个参数是实体路径(如"my_points"),第二个参数是内置 archetype(如Points3D)。Points3D::new(...).with_colors(...).with_radii(...)采用构建器模式批量填充组件。

运行cargo run后,Viewer 窗口即会显示这组点云。

如果希望使用全局记录流(不显式持有RecordingStream),README 中还展示了另一种写法:rerun::RecordingStream::global(rerun::StoreKind::Recording)?,随后直接用rec.log(...)记录Points3DImage等 archetype。

第四步:进入 Log and Ingest 完整教程

项目初始化完成后的标准下一站是 Log and Ingest 教程,它通过一个动画 DNA 算盘示例,带你覆盖 Rerun 的核心概念:

  • Archetypes 与 ComponentsPoints3DLineStrips3DTransform3D等 archetype 是构建组件批次的便捷高层抽象,底层实际记录的是 position、color、radius 等组件。
  • Entities 与层级"dna/structure/left"这样的实体路径构成层级,影响可视化与空间变换。
  • Timelines 与时间set_duration_secs("stable_time", t)创建自定义时间线;注意若只在自定义时间线上记录部分数据,会触发 "latest-at" 语义导致其他数据"消失",需要在记录静态结构前先把自定义时间线归零。
  • 空间变换:通过Transform3Darchetype 在层级上叠加旋转。

该教程的 Rust 完整代码位于 examples/rust/dna/src/main.rs,教程中内嵌的代码片段则在 docs/snippets/all/tutorials/dna.rs(按// region: .../// endregion: ...标记切分),可直接对照学习。

第五步:探索其他数据输出与连接方式

spawn()适合单机实验,Rerun 还提供了多种替代方案(详见 contenteditable="false">【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询