iMSTK issueshttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues2019-05-02T13:40:34-04:00https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/218Add unique ID to all scene objects through Entity class2019-05-02T13:40:34-04:00Nicholas MilefAdd unique ID to all scene objects through Entity classAdd unique ID to all scene objects. This is necessary for networking. We can create an `Entity` class that will allow this to be possible.Add unique ID to all scene objects. This is necessary for networking. We can create an `Entity` class that will allow this to be possible.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/216Add PhysX support for rigid bodies2019-07-28T15:59:38-04:00Nicholas MilefAdd PhysX support for rigid bodies@sreekanth\-arikatla@sreekanth\-arikatlahttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/206Add tetrahedral overlay mesh2019-07-28T15:59:34-04:00Sreekanth ArikatlaAdd tetrahedral overlay meshAdd the ability to create an overlay tetrahedral mesh for a given input mesh.
Possible steps:
1. Start by overlaying a uniform grid confined to the bounding box
2. Remove the voxels that do not have a node or edge from the input mesh
3....Add the ability to create an overlay tetrahedral mesh for a given input mesh.
Possible steps:
1. Start by overlaying a uniform grid confined to the bounding box
2. Remove the voxels that do not have a node or edge from the input mesh
3. Split the remaining voxels into 8 tetrahedra eachhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/203Add profiling tools to Vulkan renderer2019-07-28T15:59:29-04:00Nicholas MilefAdd profiling tools to Vulkan rendererNicholas MilefNicholas Milefhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/202Add transformation to scene object class2019-07-28T15:59:25-04:00Nicholas MilefAdd transformation to scene object classI think that the scene object class should also have a transformation. The reason is that then the VisualModels, physics geometry, etc. can be instantiated to the same place at runtime. It could also allow for rendering optimizations suc...I think that the scene object class should also have a transformation. The reason is that then the VisualModels, physics geometry, etc. can be instantiated to the same place at runtime. It could also allow for rendering optimizations such as instancing.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/201Deep subsurface scattering2019-07-28T15:59:01-04:00Nicholas MilefDeep subsurface scatteringDeep homogenous subsurface scattering:
https://www.ea.com/frostbite/news/approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look
This doesn't replace the subsurface scattering we have now. However, it allo...Deep homogenous subsurface scattering:
https://www.ea.com/frostbite/news/approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look
This doesn't replace the subsurface scattering we have now. However, it allows for deep scattering and is less performance-intensive. It will be based on thickness maps.Nicholas MilefNicholas Milefhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/200Add Frame Graph Feature2019-07-28T15:59:22-04:00Nicholas MilefAdd Frame Graph FeatureCurrently, it's difficult to add new workloads to the GPU and add new render passes in the Vulkan engine. Currently, render passes are in one big function called `renderFrame()` inside of imstkVulkanRenderer.cpp. This is getting messy, e...Currently, it's difficult to add new workloads to the GPU and add new render passes in the Vulkan engine. Currently, render passes are in one big function called `renderFrame()` inside of imstkVulkanRenderer.cpp. This is getting messy, especially with ensuring correct image layout transitions.
This is also problematic with compute shaders. The compute shader MR currently is asynchronous (async compute) with the render graph, but it only allows CPU read-back. I want to add support for Compute->Graphics transfer to easily allow for GPU physics.
The frame graph concept allows GPU workloads to be scheduled automatically and handle resource transitions/synchronization, particularly for explicit graphics APIs (Vulkan, DirectX 12, Metal, etc.). This is a relatively new (2017) idea for structuring a renderer:
https://www.gdcvault.com/play/1024612/FrameGraph-Extensible-Rendering-Architecture-in
This feature will be slowly integrated into the Vulkan renderer.Nicholas MilefNicholas Milefhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/197Add post-processing module for metrics visualization and analysis2019-07-28T15:59:18-04:00Sreekanth ArikatlaAdd post-processing module for metrics visualization and analysishttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/195Add raytracing support to Vulkan renderer2019-07-28T15:59:15-04:00Nicholas MilefAdd raytracing support to Vulkan rendererNVidia released Vulkan extensions for raytracing (unfortunately not for OpenGL). This will help with complex rendering effects.
https://devblogs.nvidia.com/vulkan-raytracing/NVidia released Vulkan extensions for raytracing (unfortunately not for OpenGL). This will help with complex rendering effects.
https://devblogs.nvidia.com/vulkan-raytracing/Nicholas MilefNicholas Milefhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/193VTK features potentially useful for imstk2019-07-28T15:58:40-04:00Sreekanth ArikatlaVTK features potentially useful for imstkLinks to VTK features that could be useful in the context of medical simulation:
* [CombinePolydata](https://lorensen.github.io/VTKExamples/site/Cxx/Filtering/CombinePolyData/)
* [ConstrainedDelaunay2D](https://lorensen.github.io/VTKEx...Links to VTK features that could be useful in the context of medical simulation:
* [CombinePolydata](https://lorensen.github.io/VTKExamples/site/Cxx/Filtering/CombinePolyData/)
* [ConstrainedDelaunay2D](https://lorensen.github.io/VTKExamples/site/Cxx/Filtering/ConstrainedDelaunay2D/)
* [ExtractVisibleCells](https://lorensen.github.io/VTKExamples/site/Cxx/Filtering/ExtractVisibleCells/)
* [DeformMesh](https://lorensen.github.io/VTKExamples/site/Cxx/Meshes/DeformPointSet/)
* [SplitPolyData](https://lorensen.github.io/VTKExamples/site/Cxx/Meshes/SplitPolyData/)
* [IdentifyHoles](https://lorensen.github.io/VTKExamples/site/Cxx/Meshes/IdentifyHoles/)
* [ExtractEdges](https://lorensen.github.io/VTKExamples/site/Cxx/Meshes/ExtractEdges/)
* [Subdivision](https://lorensen.github.io/VTKExamples/site/Cxx/Meshes/Subdivision/)
* [Triangulate](https://lorensen.github.io/VTKExamples/site/Cxx/Meshes/Triangulate/)
* [Decimation](https://lorensen.github.io/VTKExamples/site/Cxx/Meshes/Decimation/)
* [CleanPolyData](https://lorensen.github.io/VTKExamples/site/Cxx/PolyData/CleanPolyData/)
* [DeleteCells](https://lorensen.github.io/VTKExamples/site/Cxx/PolyData/DeleteCells/)
* [VolumeRendering](https://lorensen.github.io/VTKExamples/site/Cxx/VolumeRendering/FixedPointVolumeRayCastMapperCT/)
* [Video](https://lorensen.github.io/VTKExamples/site/Cxx/Video/FFMPEG/)
* [Charts](https://www.vtk.org/Wiki/VTK/Charts)
* [Useful code snippets](https://lorensen.github.io/VTKExamples/site/Cxx/Snippets/)https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/191Merge Constrained Particle Dynamics code into imstk2019-07-04T16:44:26-04:00Sreekanth ArikatlaMerge Constrained Particle Dynamics code into imstkhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/186Add FCL integration2019-07-04T16:20:55-04:00Sreekanth ArikatlaAdd FCL integrationiMSTK can benefit from a comprehensive library for collision detection like FCL
https://github.com/flexible-collision-library/fcliMSTK can benefit from a comprehensive library for collision detection like FCL
https://github.com/flexible-collision-library/fclhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/178Add an option to build imstk without rendering module2018-09-15T12:15:58-04:00Sreekanth ArikatlaAdd an option to build imstk without rendering module1. Add cmake options to not build any rendering backend at configure time
2. Even if the rendering is configured at build time, the user should let simulation manager know that no rendering is needed and the simulation manager should dis...1. Add cmake options to not build any rendering backend at configure time
2. Even if the rendering is configured at build time, the user should let simulation manager know that no rendering is needed and the simulation manager should disable render context.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/176Add the ability to retrieve and store the point and cell data into the mesh c...2019-07-28T15:58:37-04:00Sreekanth ArikatlaAdd the ability to retrieve and store the point and cell data into the mesh class from standard vtk formatsAlexis GiraultAlexis Giraulthttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/164Add the ability to explicitly set the transform for geometries2018-04-27T11:02:50-04:00Sreekanth ArikatlaAdd the ability to explicitly set the transform for geometriesAt present, one can apply the transform (meaning, append the supplied transform over the previous transform) but not directly overwrite it. While adding this one has to make sure if the transform supplied is rigid transform.At present, one can apply the transform (meaning, append the supplied transform over the previous transform) but not directly overwrite it. While adding this one has to make sure if the transform supplied is rigid transform.Nicholas MilefNicholas Milefhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/163Allow inter mesh maps loadable from external file2019-07-28T15:58:33-04:00Sreekanth ArikatlaAllow inter mesh maps loadable from external fileAt present, the mesh maps are computed at run-time. For large meshes it could take time to do so. It is therefore desirable to have a precomputed map stored in an external file and should be loadable at runtime.At present, the mesh maps are computed at run-time. For large meshes it could take time to do so. It is therefore desirable to have a precomputed map stored in an external file and should be loadable at runtime.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/161Enable audio support for Linux and OS X2022-06-29T09:48:49-04:00Sreekanth ArikatlaEnable audio support for Linux and OS XCurrently, audio support is built by default on windows only. This could be extended to Linux and OS XCurrently, audio support is built by default on windows only. This could be extended to Linux and OS Xhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/160Known issues with Vulkan rendering backend2019-06-28T10:54:30-04:00Sreekanth ArikatlaKnown issues with Vulkan rendering backend* [x] The rotation using mouse doesn't work about all axes
* [ ] `RenderMaterial::DisplayMode::WIREFRAME_SURFACE` is not supported yet
* [x] Closing the render window using `esc` key is not supported yet
* [ ] Point rendering not support...* [x] The rotation using mouse doesn't work about all axes
* [ ] `RenderMaterial::DisplayMode::WIREFRAME_SURFACE` is not supported yet
* [x] Closing the render window using `esc` key is not supported yet
* [ ] Point rendering not supported yet
**Not urgent**
* [ ] `Debug` render mode is not fully supported (Nick will expand; also mention axis rendering)
* [ ] Displaying the text on the render window is not supported yet. So `p` doesn't work.
* [x] Add upper-level documentation for setting up Vulkan for the first time
* [x] Multiple examples cannot be run sequentially
* [ ] Do some comparison of frame rates and memory usage between vulkan and vtk backends
* [ ] Add support for Linux and Mac (MoltenVK is apparently open-source now, so Mac support could be a possibility)
Misc.
* [ ] Tetrahedral, hexahedral, line meshes, etc.: will be added to the Vulkan version
* [ ] Certain material properties: will be added overtime, but this is also related to the material editor a bit
* [ ] Interactor features: some of the interactor features aren't implemented yet
* [x] Cubemaps: there isn't support for the traditional variety of cubemaps as implemented in VTK (see latest MR)Nicholas MilefNicholas Milefhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/156Add configuration files for certain modules2019-07-28T15:58:29-04:00Sreekanth ArikatlaAdd configuration files for certain modulesSome areas where config files could help
1. Scene definitions
2. Global render settings (background, render window properties, render axis etc.)
3. Configuring various scene objects (PBD, FEM, rigid bodies etc.)
What format is the best?Some areas where config files could help
1. Scene definitions
2. Global render settings (background, render window properties, render axis etc.)
3. Configuring various scene objects (PBD, FEM, rigid bodies etc.)
What format is the best?https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/153Add audio support2017-10-20T12:01:17-04:00Sreekanth ArikatlaAdd audio supportNeeded for bone drilling simulation
Some options:
- http://www.openal-soft.org/ (LGPL)
- http://audiere.sourceforge.net/home.php (LGPL)
- https://www.sfml-dev.org/index.php (zlib license)
- http://www.portaudio.com/ (GNU)
- https:...Needed for bone drilling simulation
Some options:
- http://www.openal-soft.org/ (LGPL)
- http://audiere.sourceforge.net/home.php (LGPL)
- https://www.sfml-dev.org/index.php (zlib license)
- http://www.portaudio.com/ (GNU)
- https://github.com/google/pindrop (Apache License v2.0)
- https://www.libsdl.org/ (zlib license) [*Nick: we can possibly separate out the audio from SDL. I think VTK uses SDL for VR, but AFAIK it uses GLUT for non-VR*]