Akce
List of project requirements¶
As the project is authored by the client and is an internal school project, the specification of the requirements is rather loose. We have tried to write the specification as detailed as possible, but we have a relatively free hand from the client in the selection of libraries and the specific implementation.
Main objective: to combine PBD and ARAP
Functional requirements:¶
- Implementation of a new method
Implement a new method for muscle deformation based on a combination of approaches PBD and ARAP with partial use of existing code, in the framework of Muscle Wrapping 2.0, following the instructions of M. Červenka - Testing of the new method
Verify the behaviour on selected muscles (at least gluteus maximus, gluteus medius, iliacus) during hip flexion/extension and internal rotation (all data included in Muscle Wrapping 2.0 package);
Quantitative verification:
- The ability of the muscle to maintain volume (can be measured)
- lengths of muscle fibres as a function of muscle shape (i.e. x-axis = angle of movement, y-axis = fibre length)
Qualitative verification:
- ability of the muscle to deform naturally - visual testing
- not intersecting the muscle with the bone
▪ any bugs in the implementation that become apparent during the validation process, remove / report on GitLab - Comparison of the old and new approach
- Implement a tool to visually compare the existing approach with the new one
The client needs to be able to see the results of the two older approaches and the new approach at the same time and from the same perspective. The idea is that the window can be switched (at the touch of a key) between a juxtapose view (one result on the left, the other on the right) and a superpose view (results over each other, in a different color, or one as a wireframe, etc.). The visualization will respond to the mouse - zoom, pan, rotate XYZ, in the case of juxtapose the two views are synchronized (i.e. manipulation in the left will automatically cause manipulation in the right and vice versa).
▪ color map encoding on the surface of muscle A the distance from the surface of muscle B - Perform comparison of results: shape visually, shape by metrics (e.g. DC, JI, MSE, etc.), volume by calculation
Non-functional requirements:¶
- Time/memory requirements for our optimization - will be specified after analysis
- The system must be easy to use, navigate, and understand, with intuitive and consistent interfaces and feedback mechanisms.
- Multiplatform support - Windows & Linux - testing will be done on Windows 10 & Ubuntu 22.04
- Update/redesign existing CMAKE system to configure MuscleWrapping 2.0. with respect to incorporating new third party libraries so that an uninitiated developer be able to easily begin development without having to laboriously resolve interdependencies individual libraries and their versions (called Superbuild) [TSP1 + TSP2]
- Ensure that the project is cross-platform so that it can be compiled and run on common platforms (Windows, Linux, MacOS, ...). It is expected to translate using CMake [TSP1]
- Set up a CI/CD mechanism on GitLab to facilitate further development [TSP1 (TSP2)]
▪ If a change is detected in the repository, the user can manually force a build, if he doesn't force it, the build will automatically occur at night, if automatic build is not disabled.
Build = all compiled in release maximized form and provide a RELEASE deployment. - Analyze and document existing time inefficiencies in the implementation [TSP1]
- Optimize critical inefficiencies using e.g. multi-threading, GPGPU, whatever custom implementation or library implementation - specific specification will take place in discussion with the project contractor at the end of TSP1
▪ A large subtask where the scope will need to be clearly defined after analysis. It may become a term paper for a parallel programming course.
Aktualizováno uživatelem Václav Šíma před více než 1 rok · 4 revizí