This project is a plugin and an executable GUI for SOFA based on the QtQuick library. This work is based on an initial project from Anatoscope. For your information, the roadmap of the project is available on a dedicated issue.
- Scene graph editing
- Interactive modeling
- Project oriented approach
- Prefab as reusable and parametric object
- 2D Canvas
- Custom widgets per component
- Live coding
- Non-linear workflow
Scene editting |
Modelling: |
Prefab |
Parametric modelling |
Custom UI |
Application specific UI |
$ mkdir runsofa2
$ cd runsofa2
$ mkdir plugins
$ cd plugins
$ git clone git@github.com:SofaDefrost/SofaQtQuick.git -b macos
$ git clone git@github.com:SofaDefrost/plugin.SofaPython3.git -b fix_for_SofaQtQuick
$ cd ..
$ git clone git@github.com:SofaDefrost/sofa.git -b SofaQtQuickGUI
$ git clone git@github.com:paceholder/nodeeditor.git
Create a CmakeLists.txt in the plugins/ directory:
add_subdirectory(plugin.SofaPython3)
add_subdirectory(SofaQtQuick)
Better take brew's version of qt5 instead of downloading it form their website
$ brew install qt
$ brew install pybind11
$ brew install ccache
nodeeditor is a third-party library necessary for some gui widgets.
$ cd nodeeditor
$ mkdir build
$ cd build
$ cmake ..
$ make
$ cd ../..
$ mkdir build
$ cd build
$ cmake ../sofa -DSOFA_EXTERNAL_DIRECTORIES="../plugins" -DAPPLICATION_RUNSOFA2=ON -DSOFA_USE_CCACHE=ON -G "CodeBlocks - Ninja"
$ ninja
$ bin/runSofa2
Hopefully, that's all folks !