/minko

3D framework for web, desktop and mobile devices.

Primary LanguageC++OtherNOASSERTION

SmartShape Engine

1. Build the engine

1.1. Prerequisites

  • The following software are installed:
    • Docker CE 17+
    • Visual Studio 2017
    • CMake
  • Being logged on to GitLab's Container Registry to be able to pull the docker images (see this README)
  • Clone the repository smartshape-engine
  • Go into the root directory of smartshape-engine.

1.2. Build starting from smartshape-engine@10.2.0

1.2.1. Android

./script/build.sh android release

1.2.2. HTML5

./script/build.sh html5 release

1.2.3. Linux64

./script/build.sh linux64 release

1.2.4. Windows64

./script/build.sh windows64 release

If the final command (msbuild) fails, you might have to change the VCTargetsPath and add the path of msbuild.exe (for example "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin") to the PATH environment variable. To change the VCTargetsPath (for example):

SET VCTargetsPath=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets

1.2.5. More options

There are more ways to build the engine. Here is the detailed usage of the building script

Usage: ./script/build.sh <target> <build-type> [--cmake '<cmake-args>']

<target>      The target platform of the build. Available targets are:
                  * android
                  * html5
                  * linux64

<build-type>  The type of build to perform. Available types are:
                  * debug
                  * release

ENVIRONMENT VARIABLES
              The following environment variables can customize the build:

              MAKE_ARGS
                  Arguments to pass to the make program. Default value: -j8.

1.3. Build before smartshape-engine@10.2.0

1.3.1. Android

docker run -it --rm \
   -v ${PWD}:${PWD} -w ${PWD} \
    -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u $(id -u $USER):$(id -g $USER) \
   registry.aerys.in/aerys/smartshape-docker/android:{TAG} \
   bash -c "
        mkdir -p build && cd build
        cmake .. \
            -DCMAKE_BUILD_TYPE=Release \
            -DWITH_EXAMPLES=OFF \
            -DWITH_PLUGINS=ON \
            -DWITH_NODEJS_WORKER=ON \
            -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk-linux/build/cmake/android.toolchain.cmake
        make
    "

1.3.2. HTML5

docker run -it --rm \
   -v ${PWD}:${PWD} -w ${PWD} \
   -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u $(id -u $USER):$(id -g $USER) \
   registry.aerys.in/aerys/smartshape-docker/html5:{TAG} \
    bash -c "
        mkdir -p build && cd build
        cmake .. \
            -DCMAKE_BUILD_TYPE=Release \
            -DWITH_EXAMPLES=OFF \
            -DWITH_PLUGINS=ON \
            -DCMAKE_TOOLCHAIN_FILE=/emsdk_portable/sdk/cmake/Modules/Platform/Emscripten.cmake
        make
    "

1.3.3. Linux64

docker run -it --rm \
   -v ${PWD}:${PWD} -w ${PWD} \
   -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -u $(id -u $USER):$(id -g $USER) \
   registry.aerys.in/aerys/smartshape-docker/linux64:{TAG} \
   bash -c "
        mkdir -p build && cd build
        cmake .. \
            -DCMAKE_BUILD_TYPE=Release \
            -DWITH_EXAMPLES=OFF \
            -DWITH_PLUGINS=ON && \
        make
   "

2. Run

smartshape-engine doesn't have to be run. It is used by the other parts of SmartShape as a base.

3. Develop

When modifying the smartshape-engine code, you have to build the engine again once your modifications are done.

4. Contents

4.1 Framework


Sources for the Minko framework.

4.2 Example

Example applications created with the Minko framework and its plugins.

4.3 Template

This folder contains templates you can use to ease the development of the Minko framework, plugins or applications.

4.4 Plugin

Sources for Minko's plugins.

Available plugins are:

  • angle
  • assimp
  • bullet
  • debug
  • devil
  • fx
  • html-overlay
  • http-loader
  • http-worker
  • jpeg
  • leap
  • lua
  • oculus
  • offscreen
  • particles
  • png
  • sdl
  • sensors
  • serializer
  • video-camera
  • vr
  • zlib