This repository contains the open source subset of ReSim's C++ code intended to accelerate robotics development. For detailed documentation, please visit docs.resim.ai.
The expected developer workflow takes place entirely within our Docker container. See docs.resim.ai for detailed instructions on getting started.
Currently, the libraries are divided up into:
- Examples: Example binaries which demonstrate how to use our libraries.
- Assert: A simple library that we use for runtime assertions.
- Utils: Common utilities used throughout the repository.
- Math: Common math libraries.
- Time: Common time libraries.
- Transforms: Libraries for 3D transforms.
- Curves: Libraries for curves through 3D space.
- Actor: Libraries for rigid body states and trajectories.
- Visualization: Libraries for visualizing 3D objects with ReSim View.
- Testing: Common libraries for testing.
- Auth: Device code client for use with oauth.
- Dynamics: Libraries for defining and integrating dynamics.
- Experiences: The definition of our experience description format.
- Geometry: Libraries for geometric primitives and algorithms.
- Metrics: Tools for computing metrics during and after simulations.
- Planning: Tools for high-level planning and optimal control.
- Simulator: Our core simulator libraries.
We use Bazel as our build and test tool. As an example for those who might be less familiar with bazel, one can build our simulator using the command:
bazel build //resim/simulator:resim_run
This will result in the binary for the simulator being placed at
open-core/bazel-bin/resim/simulator/resim_run
. The binary can either be run
directly or run using bazel run
instead of bazel build
above.
Our build is mostly hermetic, and consequently most of our dependencies are tracked through bazel and will be automatically downloaded and built when needed for the target being built. However, we do depend on the UUID library from util-linux/util-linux, which is included in our development docker container.
If you add a new file to docs/
, it needs to be added to the nav:
section in the mkdocs.yml
of our internal docs repo before it will be easy to find on docs.resim.ai