3 个不稳定版本

0.2.0 2024年4月28日
0.1.1 2024年1月9日
0.1.0 2024年1月8日

#104 in 模拟

每月下载量31次
用于 isaac_sim

MIT/Apache

96KB
1.5K SLoC

omniverse_rs

crates.io Rust Docker deps.rs codecov.io

Rust 接口用于 NVIDIA 奥米尼维尔

状态

该项目处于早期开发阶段,尚未准备好用于生产。目前并未全部暴露奥米尼维尔工具包 API。

文档和示例目前不足,但在存储库更稳定后将成为重点。

概述

工作空间包含以下包

  • omniverse_sys: 奥米尼维尔的不安全 Rust 绑定
  • omniverse: 奥米尼维尔的安全 Rust 绑定(进行中)

大部分绑定是通过使用 autocxx 从奥米尼维尔头文件自动生成的,而一些则是通过 rust-cpp 手写。如果启用了 vendored 功能,奥米尼维尔工具包可以在 cargo 构建过程中自动下载。

依赖关系

完整的依赖关系列表可以在 Dockerfile 中找到。

说明

Rust

omniverse 添加为 Rust 依赖项到您的 Cargo.toml 清单中。

[dependencies]
omniverse = { version = "0.2" }

请注意,第一次构建可能需要长达 1 小时,因为将自动下载 OpenUSD 和奥米尼维尔工具包,并且启用了 vendored 功能(大部分时间用于编译 OpenUSD)。工件将被缓存在 OUT_DIR 中,并在后续构建中重用。

或者,您可以通过以下环境变量指定现有 OpenUSD 和奥米尼维尔工具包安装目录的路径。

export OPENUSD_PATH=/path/to/pxr/openusd
export CARB_APP_PATH=/path/to/omniverse/kit

强烈建议使用 lldmold 链接器,因为 ld 可能目前失败。

Docker

要在您的系统上安装 Docker,您可以运行 .docker/host/install_docker.bash 以配置支持 NVIDIA GPU 的 Docker。

.docker/host/install_docker.bash

通过运行 Docker 容器,您隐式地同意了 NVIDIA Omniverse EULA。如果您不同意此许可协议,请不要使用此容器。

构建镜像

要从 Dockerfile 构建新的 Docker 镜像,您可以根据以下示例运行 .docker/build.bash

.docker/build.bash ${TAG:-latest} ${BUILD_ARGS}

运行容器

要运行 Docker 容器,您可以使用 .docker/run.bash,如下所示。

.docker/run.bash ${TAG:-latest} ${CMD}

运行开发容器

要以开发模式(源代码作为卷挂载)运行 Docker 容器,您可以使用 .docker/dev.bash,如下所示。

.docker/dev.bash ${TAG:-latest} ${CMD}

作为替代方案,熟悉 Dev Containers 的 VS Code 用户可以修改包含的 .devcontainer/devcontainer.json 以满足其需求。为了方便起见,提供了一个 .devcontainer/open.bash 脚本,可以将此存储库作为 VS Code 中的 Dev Container 打开。

.devcontainer/open.bash

加入容器

要从另一个终端加入正在运行的 Docker 容器,您可以使用 .docker/join.bash,如下所示。

.docker/join.bash ${CMD:-bash}

免责声明

本项目与 NVIDIA 公司无关联。

许可证

本项目采用双许可证,以与 Rust 项目兼容,可在 MIT 或 Apache 2.0 许可证下使用。

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证定义,均将按上述方式双许可,而无需任何额外的条款或条件。

依赖关系

~4–11MB
~208K SLoC