A modular high-fidelity dynamic simulation framework that runs on top of Unity.
SimuNEX is a high-fidelity dynamic simulation framework designed as a modular platform to simulate dynamic systems across various domains. It serves as a powerful tool for researchers, engineering students, and members of the Intelligent Systems Lab, offering a versatile environment for simulating complex systems and phenomena.
\UnityProject
folder in the Unity Editor. You're now all set to start building and simulating dynamic systems!For any additional details, configurations, or advanced setups, refer to the documentation.
SimuNEX is in its early stages of development and is only usable through the Unity Editor, offering interfaces for building dynamic systems similar to an API. Currently, the following features are available:
For upcoming plans and features, please check out the ongoing projects.
Quadcopter |
AUV |
Mars Rover 3D Model by NASA. |
Quadruped Robot |
Multi-stage Rocket 3D Model by Stanley Creative. |
Our project documentation is hosted on Render and is structured as follows:
To host the documentation locally, you'll need Docker installed on your system as it provides an isolated environment with all necessary dependencies. The documentation can be hosted using helper scripts included in the repository. Here's how to do it:
Install Docker: Ensure Docker is installed on your system. Visit the Docker Installation Guide for instructions.
Clone the Repository: If you haven't already, clone the repository to your local machine:
git clone https://github.com/intelligent-systems-lab-org/SimuNEX.git
cd SimuNEX
Run the Build Script: Use the build_docs.sh
script (or build_docs.bat
on Windows) to build the Docker image and optionally run the container. This script updates the documentation version using the version specified in package.json
, builds the Docker image that contains Sphinx and Doxygen documentation, and optionally runs the container locally.
To build the Docker image and run the container (making the documentation available on localhost
):
./build_docs.sh --host
Accessing Documentation Locally: Once the container is running, you can access the user documentation at http://localhost and the developer documentation at http://localhost/dev/.
build_docs.sh
script automates the process of setting up and serving the documentation locally. It requires Docker to be installed because it builds the documentation inside Docker containers to ensure a consistent environment.--host
flag will start the Docker containers and serve the documentation on your local machine. Without the flag, it will only update the versions in the Doxyfile
and sphinx's conf.py
specified from the package.json
file.Name | Version | Supported OS | Purpose | URL |
---|---|---|---|---|
ROS2ForUnity | 1.1.0 | Windows, Linux | Communication using ROS 2[^1] | link |
Eigen | 3.4.0 | Windows[^2] | For matrix operations | link |
ErrorProne.NET.CoreAnalyzers | 0.1.2 | Windows | For code analysis and Roslyn support[^3] | link |
NSubstitute (experimental) | 5.1.0 | Windows, Linux | For mock testing | link |
[^1]: Currently on Foxy installations only.
[^2]: Custom C# bindings that only currently support Windows. Separately maintained in another repository. See here.
[^3]: Functions with Visual Studio 2022.
ROS 2 was tested on Windows, the ROSOnWindows binary was installed, which can be found here. This binary is provided by Microsoft's IoT team and is designed to simplify the installation process for ROS 2 on Windows. Credit should be given to the ms-iot team for their work on the binary, and their repository can be found here.
SimuNEX© 2022-2023 by Lee Bissessar, Intelligent Systems Lab (ISL) is licensed under the SimuNEX License.
Under this license, users may utilize the software for personal or educational purposes and are granted permission to modify and redistribute the software freely, subject to certain conditions outlined in the full license. These conditions include restrictions against commercial and military use, requirements for attribution, and guidelines for redistribution of altered versions.
Please note that the SimuNEX License supersedes the previous CC-BY-NC-SA-4 International License. For a detailed overview of the terms and conditions, please refer to the LICENSE file.