Project Layout
raisim2Lib is the public package workspace. It downloads and uses binary RaiSim and rayrai packages, then provides examples, wrappers, resources, and documentation around those packages. It is not the RaiSim engine source tree, so engine-internal benchmark sources and implementation files are not available here. This page maps the directories users most often need while installing the package and building examples.
Public Workspace Directories
| Path | Purpose |
|---|---|
raisim | Platform-specific binary RaiSim package with headers, libraries, and CMake config files. Downloaded by the first CMake configure (or raisim_upgrade); not tracked in Git. |
rayrai | Platform-specific binary rayrai package with the renderer library, headers, and CMake config files. Downloaded together with raisim. |
examples | C++ example sources and their CMake project. CMake target names include primitive_grid and rayrai_tcp_viewer. |
examples/tools/debug | Optional manual regression and debug tools; see Regression and Debug Tools. |
rsc | Runtime resources such as robot models, meshes, textures, USD/glTF assets, and example data. |
raisimPy | Optional Python wrapper build for the binary RaiSim package. |
raisimGymTorch | Reinforcement-learning package built against the binary RaiSim package. |
docs | Documentation site: Markdown pages, the VitePress configuration and theme, and the scripts that generate the API reference. |
thirdParty | Bundled third-party sources: Eigen3 (used by Windows builds) and nanobind (used by raisimPy). |
scripts | Helper scripts: the Blender scene exporter (export_blender_scene.py) and the Linux desktop-launcher installer for rayrai_tcp_viewer. |
raisim_env.*, raisim_upgrade.* | Environment scripts that add the package library directories to the library search path (.sh, .bat, .ps1) and scripts that download a release package into raisim and rayrai (.sh, .ps1). |
Build Directories
Build directories are generated locally and are not part of the repository. The docs use these names for clarity:
| Build directory | Typical use |
|---|---|
build | Default local build for examples and optional wrappers. |
build-examples | Top-level build with examples enabled; the example commands in these docs use it. |
build-debug | Debug build for local debugging. |
build-docs | CMake-driven docs build. |
On Linux and macOS, a top-level build places example executables, together with a copy of rsc, under the examples subdirectory of the build tree. The install target does not copy these source-built examples, and the release package does not ship a separate prebuilt TCP viewer. For example:
./build-examples/examples/primitive_grid
./build-examples/examples/rayrai_tcp_viewerOn Windows, CMake places the example executables under <build-dir>/bin, together with a copy of rsc and the runtime DLLs.
The package example tree documented under Examples contains grouped source directories such as src/server, src/rayrai, src/worlds, src/xml, and src/benchmark. Target names, not source directory names, are the stable user-facing interface.
Installed Package Layout
The unpacked release contains separate package prefixes for RaiSim and rayrai:
<raisim2Lib>/raisim
<raisim2Lib>/rayraiDownstream projects use CMAKE_PREFIX_PATH to find these installed packages. See Installation for environment setup and activation.
Where To Add New Things
| Change | Usual location |
|---|---|
| New user-facing C++ example | examples/src plus a target registration in examples/CMakeLists.txt. |
| New example resource | rsc. Put example-only resources under a relevant subdirectory there. |
| New Python wrapper behavior | raisimPy. |
| New RL package behavior | raisimGymTorch. |
| New docs page | A Markdown file in docs/sections and an entry in docs/.vitepress/sidebar.mts. |
Keep examples focused on demonstrating the public binary-package APIs.