iMSTK issueshttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues2021-12-20T15:57:17-05:00https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/382Upgrade VTK 9.12021-12-20T15:57:17-05:00Andrew WilsonUpgrade VTK 9.1Shouldn't be difficult to upgrade.
Ideally also expose the PBR clear coat material parameters in RenderMaterial. If used correctly could give a nice sheen to some tissues and make them look "wet" (specifically the ability to use fresnel...Shouldn't be difficult to upgrade.
Ideally also expose the PBR clear coat material parameters in RenderMaterial. If used correctly could give a nice sheen to some tissues and make them look "wet" (specifically the ability to use fresnel).
Also check:
- If the vtkXRenderWindowInteractor fixed (can we remove our patched implementation?).
- If shadows fixedhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/381CodeFormatEnforcer Failing2021-11-19T22:58:28-05:00Andrew WilsonCodeFormatEnforcer FailingAgain uncrustify is reporting fail, but not actually correcting anything when run.Again uncrustify is reporting fail, but not actually correcting anything when run.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/380Invert Rotation Issues2021-11-17T18:41:01-05:00Andrew WilsonInvert Rotation IssuesIn Unity we have LHS instead of RHS used in imstk & opengl. Requiring inverting of the positions and orientations of a controller.
Currently inverting orientations does not work in imstk.
While invert Y is on take a tool (such as sciss...In Unity we have LHS instead of RHS used in imstk & opengl. Requiring inverting of the positions and orientations of a controller.
Currently inverting orientations does not work in imstk.
While invert Y is on take a tool (such as scissors, syringe, or needle) pointing down z. Rotate 90deg around global y. Then rotate 90deg around global x. You will see the incorrect orientation.
![_output001_2021-11-11_22-08-00__2_](/uploads/b66e796326739b6279e32fc3e75ab95c/_output001_2021-11-11_22-08-00__2_.gif)https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/379Fix Test Timeout2022-04-05T19:40:29-04:00Andrew WilsonFix Test TimeoutTest timeout keeps tripping up. Especially in debug.Test timeout keeps tripping up. Especially in debug.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/378ReadTheDocs build Failing2021-11-10T16:20:38-05:00Harald ScheirichReadTheDocs build Failinghttps://readthedocs.org/projects/imstk-unity/builds/15156193/
See also
https://github.com/readthedocs/readthedocs.org/issues/8616https://readthedocs.org/projects/imstk-unity/builds/15156193/
See also
https://github.com/readthedocs/readthedocs.org/issues/8616Harald ScheirichHarald Scheirichhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/374compile error, openhaptics2021-11-04T10:42:19-04:00xianger-qicompile error, openhapticsi want to run the example: FemurCut , so i install the openhaptics and geomagic_touch_device_driver, in the “/opt/openhaptics” and “opt/geomagic_touch_device_driver”, then i change cmake variable “iMSTK_USE_OpenHaptics” to “ON” and run c...i want to run the example: FemurCut , so i install the openhaptics and geomagic_touch_device_driver, in the “/opt/openhaptics” and “opt/geomagic_touch_device_driver”, then i change cmake variable “iMSTK_USE_OpenHaptics” to “ON” and run cmake …/iMSTK. The terminal print error “cant find openHaptics”
![Screenshot_from_2021-10-08_23-40-57](/uploads/91afb698c5966f377cea9363f8c0ae93/Screenshot_from_2021-10-08_23-40-57.png)![Screenshot_from_2021-10-08_23-41-22](/uploads/63b73a9eb963ab9cbf8412a101848753/Screenshot_from_2021-10-08_23-41-22.png)
how can i fix that?https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/373CMake Tells Project Files May be Invalid2021-10-07T18:28:26-04:00Zhiqi MaoCMake Tells Project Files May be InvalidI am trying to install iMSTK to my computer, and CMake tells me that Error in configuration process, project files may be invalid.
I have used Visual Studio 15 2017 and Visual Studio 16 2019 as generator.
I also tried use Visual Studi...I am trying to install iMSTK to my computer, and CMake tells me that Error in configuration process, project files may be invalid.
I have used Visual Studio 15 2017 and Visual Studio 16 2019 as generator.
I also tried use Visual Studio Enterprise 2019 to direct build the iMSTK.sln, however, it tells me the following error message
Severity Code Description Project File Line Suppression State
Error CMake Error:
Running
'C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe' '-C' 'H:/iMSTK/out/build/x64-Debug' '-t' 'recompact'
failed with:
ninja: error: build.ninja:958: bad $-escape (literal $ must be written as $$) H:\iMSTK\ ninja
I currently have CMake version 3.20.5, git version2.33.0.windows.2, and git lfs/2.13.3
Can someone help me resolve this problem?https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/372Build without OpenVR support2022-04-12T16:46:28-04:00Connor BowleyBuild without OpenVR supportFor projects that don't need OpenVR, it would be useful to have a build flag to turn off OpenVR support and not require OpenVR in the build process.For projects that don't need OpenVR, it would be useful to have a build flag to turn off OpenVR support and not require OpenVR in the build process.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/369Khronos ML summit2021-10-22T21:18:45-04:00pierre boudierKhronos ML summitHello,
I am the chair of a working group at Khronos developing standards for graphics and compute hardware accelerators (as well as a representative for Nvidia in those groups).
We are organizing a summit to gather feedback from the ec...Hello,
I am the chair of a working group at Khronos developing standards for graphics and compute hardware accelerators (as well as a representative for Nvidia in those groups).
We are organizing a summit to gather feedback from the ecosystem, and influence the design of the next round of improvements, and I thought that you may be interested in being represented:
https://www.khronos.org/events/2021-invitation-to-the-khronos-machine-learning-summit
This summit is IP free, and will let you present your project and your needs for improvements in the ML ecosystem, as well as hearing from other companies.
regards,
Pierre Boudier
Software architect at Nvidia
chair of the Machine Learning TSG at Khronoshttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/368PbdConstraintFunctors should be constructed in PbdModelConfig and used for pa...2021-12-15T17:29:07-05:00Andrew WilsonPbdConstraintFunctors should be constructed in PbdModelConfig and used for parametersOne of the issues with the PbdModelConfig is how it stores parameters. Each Functor could have any set of parameters. Generally:
- "Regular Constraints": Have one double stiffness value
- FEMConstraints: Have either possions ratio+you...One of the issues with the PbdModelConfig is how it stores parameters. Each Functor could have any set of parameters. Generally:
- "Regular Constraints": Have one double stiffness value
- FEMConstraints: Have either possions ratio+youngs modulus OR lame parameters
- BendConstraint: Has an extra parameter for strides
Really there's no telling (literally unable to tell) what parameters a user would want to use with a functor. While we should still maintain the pretty simple PbdModelConfig::enableConstraint function. It should immediately create and store the functor otherwise PbdModelConfig has to worry about how to store all these parameters and then later use them to setup functors which causes nasty code.
This should eliminate complexities in PbdModelConfig for FEM and Bend constraints. Specialized functions such as enableBendConstraint(stiffness, stride) and enableFEMConstraint(type, material) should still be present.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/366VTKViewer::setDebugAxesLength Should not need an active VTKRenderer to set de...2022-09-26T12:07:41-04:00Andrew WilsonVTKViewer::setDebugAxesLength Should not need an active VTKRenderer to set debug axes lengthIf you call setDebugAxesLength before setting an active scene it will do nothing. This is because the renderer is lazy created. Not created until active scene is created (legacy reason of creating separate renderers for separate scenes, ...If you call setDebugAxesLength before setting an active scene it will do nothing. This is because the renderer is lazy created. Not created until active scene is created (legacy reason of creating separate renderers for separate scenes, which still work decently for scene switching).Andrew WilsonAndrew Wilsonhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/365Some VTK Models can't be converted2021-10-27T09:42:40-04:00Harald ScheirichSome VTK Models can't be converted`copyToPolyData(mesh)` fails with
```
2021/09/01 09:36:59 10949845 CONTRACT [imstkGeometryUtilities.cpp->copyToVtkDataArray:139]
******* EXIT trigger caused by broken Contract: CHECK(imstkArray != nullptr)
"AbstractDataArray provid...`copyToPolyData(mesh)` fails with
```
2021/09/01 09:36:59 10949845 CONTRACT [imstkGeometryUtilities.cpp->copyToVtkDataArray:139]
******* EXIT trigger caused by broken Contract: CHECK(imstkArray != nullptr)
"AbstractDataArray provided is not valid!
******* STACKDUMP *******
```
on some `.vtk` filesHarald ScheirichHarald Scheirichhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/364Event Documentation in Event_System.rst doesn't actually explain how async ev...2021-09-03T14:37:31-04:00Harald ScheirichEvent Documentation in Event_System.rst doesn't actually explain how async events are processedhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/363Incorrect Doc for Rigid Body in DynamicModels.rst2021-09-27T08:44:33-04:00Harald ScheirichIncorrect Doc for Rigid Body in DynamicModels.rstRefers to PHYSX, needs to be updated for Rigidbody2Refers to PHYSX, needs to be updated for Rigidbody2https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/362Transition to Default Adaptive Stepping2021-10-11T15:36:51-04:00Andrew WilsonTransition to Default Adaptive SteppingBy default we use parallel rendering and scene updates. So if you just setup a SceneManager and Viewer this is the behavior you get. The good majority of newer examples use adaptive and have the extra line: `sceneManager->setExecutionTyp...By default we use parallel rendering and scene updates. So if you just setup a SceneManager and Viewer this is the behavior you get. The good majority of newer examples use adaptive and have the extra line: `sceneManager->setExecutionType(Module::ExecutionType::ADAPTIVE);`.
Ideally adaptive is default and the user doesn't have to add this extra line (worse they forget). The reason adaptive should be default is that many things "just work" when using the sequential nature of the adaptive mode. Because:
- It's very easy to make mistakes, especially if you didn't know you were running them in parallel and you caused a race condition or something.
- The adaptive mode has more consistency across machines. Generally running on anything faster than what the simulation was tuned for will result in roughly the same simulation. This has been very helpful.
Transitioning every example to parallel is tricky as many physics parameters need reparameterization. What we can do though is make ADAPTIVE default and then go through every example and use sceneManager->setExecutionType(Module::ExecutionType::PARALLEL); And then eventually try to transition the parallel ones to adaptive.
Side Note: I am not prepared to completely removed parallel due to the high performance requirements of some simulators. It really depends on the program. If the scene itself is well parallelized, then running rendering and scene updates in parallel makes little difference. But in a number of programs it can make a decent difference.Andrew WilsonAndrew Wilsonhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/361Remove Reals2021-09-16T15:47:08-04:00Andrew WilsonRemove RealsMixed usage of reals and doubles are in iMSTK. Mostly important we switch to one, at least for now we should just completely switch to doubles.Mixed usage of reals and doubles are in iMSTK. Mostly important we switch to one, at least for now we should just completely switch to doubles.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/358Remove DebugRenderDelegates from VTKRenderer2021-08-31T15:02:10-04:00Andrew WilsonRemove DebugRenderDelegates from VTKRendererDebug render geometry was removed, debug render delegates were removed from the Viewer, but they still exist in VTKRenderer. They need to be removed.Debug render geometry was removed, debug render delegates were removed from the Viewer, but they still exist in VTKRenderer. They need to be removed.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/357Missing documentation for updating dependencies2021-09-03T10:01:44-04:00Harald ScheirichMissing documentation for updating dependenciesAs we are pulling dependencies from our fork, it would be good if there was documentation on how to update a dependency, escpecially under circumstances when we we have modifications on a branch e.g. VRPN.
E.g. what are the steps to tak...As we are pulling dependencies from our fork, it would be good if there was documentation on how to update a dependency, escpecially under circumstances when we we have modifications on a branch e.g. VRPN.
E.g. what are the steps to take, where are we rebasing/merging and how is it done without breaking previous buildshttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/356Inconsistent Nomenclature with regards to position and orientation2021-11-18T08:35:56-05:00Harald ScheirichInconsistent Nomenclature with regards to position and orientationGeometry:
`translation`, `rotation`
RigidBody:
`position`, `orientation`
Controller:
`position`, `rotation`
Can we agree on a set of these ?Geometry:
`translation`, `rotation`
RigidBody:
`position`, `orientation`
Controller:
`position`, `rotation`
Can we agree on a set of these ?https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/355RigidBody `getPosition()` invalid close to the beginning of the simulation2021-09-10T08:44:59-04:00Harald ScheirichRigidBody `getPosition()` invalid close to the beginning of the simulationcalling rigidBody->getPosition() in the first frame in visualUpdate() seems to return a dereferenced `nullptr`, the position and other variables in the body are allocated on the heap, and they are still nullptr at this time.
@andrew.wi...calling rigidBody->getPosition() in the first frame in visualUpdate() seems to return a dereferenced `nullptr`, the position and other variables in the body are allocated on the heap, and they are still nullptr at this time.
@andrew.wilson can we remediate this by just replacing the heap allocated data with stack data or is there another reason `m_position` and other variables are on the heap ? Where are these actually allocated ? If they need to be on the heap, can we just allocated them in the constructor.