Menu

Installation

Nikolaus Vahrenkamp Valerij Wittenbeck
Attachments
Simox_cmake_gui.png (53640 bytes)

Get Simox from a PPA

You have the choice of either installing the simox package from our PPA or by compiling the sources (see below). The PPA/package currently is available only on Ubuntu distributions starting from Precise (12.04) up to and including Trusty (14.04).

First, add the PPA to your list of repositories and then install the package via apt-get:

sudo add-apt-repository ppa:simox-dev/ppa
sudo apt-get update
sudo apt-get install simox

Keep in mind that this will only install simox without any special options enabled (e.g. bullet) and with Coin visualization support.

Get Simox from sourceforge repository

Retrieve the sources with:

svn co https://svn.code.sf.net/p/simox/code/trunk simox

Or use a GUI-based SVN client to grab the sources from:

https://svn.code.sf.net/p/simox/code/trunk

Install dependencies

You will need the following libraries installed on your system:

Visualization / 3D Model support

  1. Coin3D/Qt (recommended)
    For 3D visualization support Simox offers a plugin-like mechanism that can be extended in order to make your favorite 3D library usable. In the current version Coin3D/Qt support is already implemented allowing to handle Open Inventor file formats (.iv, .vrml) in combination with Qt-based GUIs. If you want to use this visualization supported you will additionally need the following libraries:
  2. OpenSceneGraph
    With OpenSceneGraph (OSG) a LGPL library can be used with Simox (instaed of the GPL-library Coin3D). OSG supports several file formats for 3D-model loading, e.g. 3dc, 3ds, flt, geo, iv, ive, lwo, md2, obj, osg, whereas some of them depend on external libraries which must be present on your system. Have a look at OSG's installation and plugin help pages.
  3. No visualization support
    With this setup, visualization is disabled and hence, no collision detection can be performed. Nevertheless all operations which do not rely on 3d models, e.g. coordinate transformations, are still available.

Linux

Simox is tested on several Ubuntu platforms and there shouldn't be any problems with other distributions (if you observe any strange behaviors, please let us know).

  • In order to setup the dependencies, you could either
    • have a look at the package manager of your distribution (maybe the libs you will need are already installed)
    • or you install them by hand, i.e. compile and install the sources.
    • On an Ubuntu 14.04 system you can install the libraries (with coin support) the following way (on other systems the names of the libraries may differ slightly):
        sudo apt-get install build-essential libboost-all-dev libeigen3-dev libsoqt4-dev libcoin80-dev cmake cmake-gui libqt4-dev subversion
  • create a build directory, e.g. <path_to_your_simox_checkout>/build
  • Setup your environment variables (not needed if the dependencies were installed to the standard linux system paths, e.g. when the package management system was used)
    • Eigen3_DIR -> Path to Eigen3
    • BOOST_ROOT -> The Boost directory
    • Coin3D_DIR -> The Coin3D library
    • SoQt_DIR -> the SoQt lib (Has to be compiled with the used Coin3D and Qt version)
    • QT_QMAKE_EXECUTABLE -> The complete path to the qmake binary file. Usually located at <QtDir>/bin/qmake
    • Simox_DIR -> The path to your simox checkout
    • An exemplary setup could look like this (Adjust the paths according to your setup!). You can create a simox_setpath.sh file and by calling source simox_setpath.sh all exports are set in your shell environment.
        export Eigen3_DIR=~/libs/Eigen3/include/eigen3
        export QT_QMAKE_EXECUTABLE=~/libs/Qt-4.7.4/bin/qmake
        export BOOST_ROOT=~/libs/boost/1.47.0
        export SoQt_DIR=~/libs/Coin3D
        export Coin3D_DIR=~/libs/Coin3D
        export Simox_DIR=~/simox
  • Create make files:
    • go to your build directory: cd $Simox_DIR
    • call either ccmake .. or use the cmake-gui .. (see below for further information about cmake-gui)
    • configure ('c' in ccmake) and generate make files ('g' in ccmake)
  • Compile Simox
    • Now Simox with all examples can be compiled by typing 'make'. Optionally you can specify how many processes should be used for compiling (e.g. 'make -j4')
  • IDE

Windows

IDE / Compiler

On Windows we recommend the Visual Studio series for development. Microsoft provides a free version, the Visual Studio Express Edition: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express. (todo: maybe the platform SDK or the Windows SDK have to installed with the VS express edition.)

Download and install dependencies

Windows Environment Variables

In order to allow smooth development we recommend to setup your windows envrionment variables according to your installation. Check, if the following entries are present at your system:

  • BOOSTDIR -> the boost directory
  • COINDIR -> The Coin3D install directory
  • QTDIR -> The Qt directory
  • Simox_DIR -> The directory where you checked out the simox source code.
  • The Path variable should contain the following entries:
    • %QTDIR%\bin
    • %COINDIR%\bin
    • %BOOSTDIR%\lib

Mac

todo

Compile Simox

You can use cmake, ccmake (on linux) or cmake-gui for setting up the compilation process.

  • Create a build directory (e.g. $Simox_DIR/build) and configure simox with cmake .. or by starting cmake-gui.
  • Check, if all paths are found correctly.
  • configure (until all entries are valid) and generate make/solution files
  • Compile with make or open generated project files in your IDE (E.g. a cmake visual studio generator will create the following solution file $Simox_DIR/build/Simox.sln)
  • The libraries will be located at BUILD_DIR/lib and all binaries go to BUILD_DIR/bin
  • Debug / Release: On linux and mac you can switch between debug and release by setting the CMAKE_BUILD_TYPE variable either to Debug or to Release. When compiling with VisualStudio, you can select the build type within your IDE.

Here is an exemplary setup with cmake-gui:


Related

Wiki: Simox_Wiki_Pages