1. Building From Source#
Note
The build instructions here are for general users who just want to build OSC.
Because everyone’s C++ build environment is slightly different, there are
no catch-all build instructions that will work for everyone. Instead, we
recommend reading + running the automated build scripts (located at scripts/
in the source tree), or reading Development Environment, which
concretely covers tips-and-tricks for Visual Studio or QtCreator.
1.1. Building on Windows (10 or newer)#
1.1.1. Windows Environment Setup#
The OpenSim Creator build requires that the development environment has git,
a C++-20 compiler, cmake, NSIS (if packaging an installer), and python
(to run build_windows.py, build script bindings, and build this documentation). Here
is a step-by-step guide for setting up a typical development environment:
- Get
git: Download and install
gitfrom https://git-scm.com/downloadsMake sure to add it to the
PATH. Usually, the installer asks if you want this. If it doesn’t ask, then you may need to add it manually (google: “Modify windows PATH”, add yourgitinstall, which defaults toC:\Program Files\Git\bin).Verify it’s installed by opening a terminal (
Shift+Right-Click->Open Powershell window here) and rungit
- Get
- Get Visual Studio >=2022 (C++ compiler - note: Visual Studio is not the same as Visual Studio Code):
Download and install it from https://visualstudio.microsoft.com/downloads/
Make sure to select C/C++ development in the installer wizard when it asks you which parts you would like to install
- Get
cmake: Download and install it from https://cmake.org/download/
Make sure to add it to the
PATH. Usually, the installer asks if you want this. If it doesn’t ask, then you may need to add it manually (google: “Modify windows PATH”, add yourcmakeinstall:C:\Program Files\CMake\bin).Verify it’s installed by opening a terminal (
Shift+Right-Click->Open Powershell window here) and runcmake.
- Get
- Get
NSIS(if you plan on packaging an installer.exe): Download and install it from https://nsis.sourceforge.io/Download
- Get
- Get
pythonandpip: Download from https://www.python.org/downloads/
Make sure
pythonandpipare added to thePATH(the installer usually prompts this)Verify they are installed by opening a terminal (
Shift+Right-Click->Open Powershell window here) and runpython --helpandpip --help
- Get
- Clone the
opensim-creatorsource code repository: Open a terminal,
cdto your workspace directory (e.g.Desktop), and rungit clone https://github.com/ComputationalBiomechanicsLab/opensim-creatorThe resulting
opensim-creatordirectory should contain all necessary source code to build the project (incl. third_party code etc.)
- Clone the
- Install
pippackage dependencies (if building these documentation pages): Using either a virtual environment (google it), or your base
pythoninstallation,cdinto theopensim-creatordirectory in a terminal and install the documentation package dependencies with:
- Install
pip install -r docs/requirements.txt -r docs/requirements-dev.txt
1.1.2. Windows Build#
Assuming your environment has been set up correctly (explained above), the
easiest way to build OpenSim Creator is with the python script located at
scripts/build_windows.py in the source code repository. The steps are:
Open a PowerShell terminal (
Shift+Right-Click->Open Powershell window here)Either
cdinto theopensim-creatordirectory (if cloned when you setup the environment, above), or clone it withgit clone https://github.com/ComputationalBiomechanicsLab/opensim-creator.Run the build script:
python scripts/build_windows.py. Note: this can take a long time, grab a coffee ☕The
build/directory should contain the built installer
1.2. Building on MacOS (Sonoma or newer)#
- Get
brew: Go to https://brew.sh/ and follow installation instructions
- Get
- Get
git: Can be installed via
brew:brew install git
- Get
- Get C++23-compatible compiler (e.g.
clangvia brew, or newer XCodes): OpenSim Creator is a C++23 project, so you’ll have to use a more recent XCode (>=15), or install a newer
clangfrom brew (e.g.brew install clang)
- Get C++23-compatible compiler (e.g.
- Get
cmake: Can be installed via
brew:brew install cmake
- Get
- Get
pythonandpip(optional: you only need this if you want to build documentation): Can be installed via
brew:brew install python
- Get
- Build OpenSim Creator in a terminal:
Clone
opensim-creator:git clone https://github.com/ComputationalBiomechanicsLab/opensim-creatorcdinto the source dir:cd opensim-creatorIf you have multiple C++ compilers, make sure that the
CCandCXXenvironment variables point to compilers that are compatible with C++23. E.g.export CXX=$(brew --prefix llvm@15)/bin/clang++Run the build script:
scripts/build_mac.sh(warning: can take a long time)
- Done:
The
build/directory should contain the built installer
1.3. Building on Ubuntu (22.04 or newer)#
- Get
git: Install
gitvia your package manager (e.g.apt-get install git)
- Get
- Get a C++23-compatible compiler:
E.g. on Ubuntu 22.04, install
g++-12orclang++`via your package manager (e.g.apt-get install g++-12)
- Get
cmake: Install
cmakevia your package manager (e.g.apt-get install cmake)
- Get
- Get
pythonandpip(optional: you only need this if you want to build documentation): Install
python3andpip3via your package manager (e.g.apt-get install python3 pip3)
- Get
- Use
gitto get OpenSim Creator’s (+ dependencies’) source code: Clone
opensim-creator:git clone https://github.com/ComputationalBiomechanicsLab/opensim-creatorcdinto the source dir:cd opensim-creatorThe remaining build steps are performed in the source directory
- Use
- Get python libraries (optional: you only need this if you want to build documentation):
cdinto theopensim-creatorsource directory (if you haven’t already)Install all necessary python libraries into your current python environment with
pip install -r docs/requirements.txt -r docs/requirements-dev.txt`
- Build OpenSim Creator from source:
cdinto theopensim-creatorsource directory (if you haven’t already)Run the build script, you can use the
CCandCXXenvironment variables to choose your C++ compiler if you’re using the non-default one, e.g.CC=gcc-12 CXX=g++-12 scripts/build_ubuntu.shYou can also accelerate it by setting the number of threads:
OSC_BUILD_CONCURRENCY=20 ./scripts/build_ubuntu.sh
- Done:
After the build is complete, the
build/directory should contain the built installer