iMSTK issueshttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues2023-11-20T08:13:27-05:00https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/500Line Mesh cutting introduces additional points2023-11-20T08:13:27-05:00Harald ScheirichLine Mesh cutting introduces additional pointsIn testing cutting in unity on connective tissue meshes we saw that additional vertices were introduced when cutting e.g. a 3 vertex line that was cut contained 7 vertices after cutting. Needs verifictation with a unity test in imstk for...In testing cutting in unity on connective tissue meshes we saw that additional vertices were introduced when cutting e.g. a 3 vertex line that was cut contained 7 vertices after cutting. Needs verifictation with a unity test in imstk for more triagehttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/499Can't use cutting with object that have other constraints2023-11-20T08:11:05-05:00Harald ScheirichCan't use cutting with object that have other constraintsCurrently the cutting algorithm removes _all_ constraints on any vertices involved in the cutting, that means that objects that are constrained to other vertices (e.g. other objects) may have those constraints removed as well.Currently the cutting algorithm removes _all_ constraints on any vertices involved in the cutting, that means that objects that are constrained to other vertices (e.g. other objects) may have those constraints removed as well.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/498How to compile to Android for Meta Quest 3?2023-11-06T09:01:23-05:00manuel GBTHow to compile to Android for Meta Quest 3?I saw previous issues regarding the compilation of the DLLs to Android but it is not mentioned anywhere else. Any idea?I saw previous issues regarding the compilation of the DLLs to Android but it is not mentioned anywhere else. Any idea?https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/497CMake compiling errors2023-11-06T08:59:12-05:00manuel GBTCMake compiling errorsiMSTK_BUILD_VISUAL_TESTING is not compatible with BUILD_FOR_UNITY if iMSTK_USE_RENDERING_VTK is toggled. It's not stated anywhere. When compiling with USE_OpenHaptics, 10 projects compile to DLL but 2 fail. Disabling OpenHaptics work. Bu...iMSTK_BUILD_VISUAL_TESTING is not compatible with BUILD_FOR_UNITY if iMSTK_USE_RENDERING_VTK is toggled. It's not stated anywhere. When compiling with USE_OpenHaptics, 10 projects compile to DLL but 2 fail. Disabling OpenHaptics work. But OpenHaptics is properly installed and can be used with Touch and Touch X devices.
Any idea?https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/496Warning MSB8065 and warning MSB80642023-11-13T09:10:13-05:00Elisa CornazzaniWarning MSB8065 and warning MSB8064I selected Microsoft Visual Studio 2022 and CMake 3.28.0
I'm having trouble getting started with iMSTK: "CMake will generate a `iMSTK.sln` solution file for Visual Studio at the top level for what is called the Superbuild". CMake genera...I selected Microsoft Visual Studio 2022 and CMake 3.28.0
I'm having trouble getting started with iMSTK: "CMake will generate a `iMSTK.sln` solution file for Visual Studio at the top level for what is called the Superbuild". CMake generates 'iMSTK.sln' solution file in 'Innerbuild', I don't have any 'Superbuild'.
"Open this file and build all targets, which will checkout, build and link all iMSTK dependencies". In Visual Studio I find this warning: warning MSB8065: Custom build for item "C:\\Users\\elisa\\iMSTK_build\\CMakeFiles\\501df03c7e50b6a607f2af337a2d915e\\iMSTK-configure.rule" succeeded, but specified output "c:\\users\\elisa\\imstk_build\\cmake\\ external\\imstk-prefix\\src\\imstk-stamp\\release\\imstk-configure" was not created. Incremental compilation may not work correctly. I am not able to run the program.
After this, the build is anyway completed but a pop-up communicates the interruption of the program because a folder called "ALL_BUILD" is not **found** at path "iMSTK_build\\x64\\Release\\ALL_BUILD".
Then I noticed the same folder was contained in another directory at path "iMSTK_build\\**Innerbuild**\\x64\\Release\\ALL_BUILD", so I copied and pasted it in the folder the program was looking for it and now the problem is just access. I tried to change the access properties of the folder but nothing changed.
If anyone found the same type of issue can please give any advice?
Thanks for your attention!https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/495Creating Multiple Pbd objects with the same constraint type may overwrite per...2024-03-11T09:08:03-04:00Harald ScheirichCreating Multiple Pbd objects with the same constraint type may overwrite per body constraint valuesCertain constraints e.g. `BendConstraint` in `enableBendConstraint` don't distinguish on the body in the creation of the constraint functor. This means that having two bodies with different stiffnesses but the same constraint may not workCertain constraints e.g. `BendConstraint` in `enableBendConstraint` don't distinguish on the body in the creation of the constraint functor. This means that having two bodies with different stiffnesses but the same constraint may not workhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/494NeedlePbdCH assumes needle tip is the end of the mesh2023-05-16T10:19:25-04:00Harald ScheirichNeedlePbdCH assumes needle tip is the end of the meshThere is an assumption built into the needle architecture that the tip of the needle is at the back end of the meshThere is an assumption built into the needle architecture that the tip of the needle is at the back end of the meshhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/491Max distance in distance constraint?2023-04-21T10:27:15-04:00lNatxiiMax distance in distance constraint?Is it a good idea to modify imstkPbdDistanceConstraint.cpp to set a maximum distance, and break/destroy the constraint like if it has been torn when the distance is bigger than the setted maxDistance?
Like this: https://youtu.be/c-fJcn...Is it a good idea to modify imstkPbdDistanceConstraint.cpp to set a maximum distance, and break/destroy the constraint like if it has been torn when the distance is bigger than the setted maxDistance?
Like this: https://youtu.be/c-fJcneHQXQ?t=9 (This is not PBD, but is the effect I want to achieve).
How will it affect to the mesh and the UV? I'm asking before trying, but I can try to do it with any problem if you think it is a good idea. (I'm using iMSTK for Unity but the code modification would be inside the.cpp so I'm posting here the issue).https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/490Remove bool parameter from constructor TestBehaviour(const bool useTaskGraph)2023-03-07T18:08:45-05:00Shreeraj JadhavRemove bool parameter from constructor TestBehaviour(const bool useTaskGraph)Remove bool parameter from constructor `TestBehaviour(const bool useTaskGraph)` as it is not very useful.
Refer to discussion here:
https://gitlab.kitware.com/iMSTK/iMSTK/-/merge_requests/963#note_1328994Remove bool parameter from constructor `TestBehaviour(const bool useTaskGraph)` as it is not very useful.
Refer to discussion here:
https://gitlab.kitware.com/iMSTK/iMSTK/-/merge_requests/963#note_1328994https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/488Update build instructions for CSharp wrappers2022-12-15T09:20:02-05:00Shreeraj JadhavUpdate build instructions for CSharp wrappersBuilding with CSharp Wrappers enabled may not be trivial for new developers. Update build instructions to include instructions to install swig, installation of .NET framework and SDK.
Additionally, it appears that the build specifically...Building with CSharp Wrappers enabled may not be trivial for new developers. Update build instructions to include instructions to install swig, installation of .NET framework and SDK.
Additionally, it appears that the build specifically requires .NET framework 4.6.1 which is out of support now. Is this something that is governed by Unity or can we bump the required framework to the latest one or at least one that is under support. See this page for support info from Microsoft:\
https://dotnet.microsoft.com/en-us/download/visual-studio-sdkshttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/487Redundant classes / files between Examples2022-12-05T16:31:27-05:00Shreeraj JadhavRedundant classes / files between ExamplesThere are certain classes and files that are duplicates of each other in the Examples (particularly related to Needles).
For e.g.:
1. NeedleInteraction.cpp
1. NeedleInteraction.h
1. NeedlePbdCH.h
1. NeedleRigidBodyCH.cpp
1. NeedleRigidBo...There are certain classes and files that are duplicates of each other in the Examples (particularly related to Needles).
For e.g.:
1. NeedleInteraction.cpp
1. NeedleInteraction.h
1. NeedlePbdCH.h
1. NeedleRigidBodyCH.cpp
1. NeedleRigidBodyCH.h
There maybe small differences between them. These files/classes should be refactored to remove duplication.
![image](/uploads/b34c9ed0a48caf1f14144b6141ece38f/image.png)https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/486Deformable Surface to Capsule/Sphere Collisions generates nans2022-11-28T08:41:03-05:00Jacob MooreDeformable Surface to Capsule/Sphere Collisions generates nansAn issue occurs when collisions happen between spheres/capsules on deformable surface meshes for some applications. See: https://discourse.kitware.com/t/deformable-surface-mesh-to-capsule-sphere-collisions/928An issue occurs when collisions happen between spheres/capsules on deformable surface meshes for some applications. See: https://discourse.kitware.com/t/deformable-surface-mesh-to-capsule-sphere-collisions/928https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/482shared_from_this and Capture Lists2022-10-20T17:49:01-04:00Andrew Wilsonshared_from_this and Capture ListsIn many locations lambdas are used that capture `this`
```
MyClass::MyClass()
{
auto func = [&]()
{
this->doSomething();
};
}
```
The above is fine but if this function ptr is to be passed around it could exist longer th...In many locations lambdas are used that capture `this`
```
MyClass::MyClass()
{
auto func = [&]()
{
this->doSomething();
};
}
```
The above is fine but if this function ptr is to be passed around it could exist longer then the duration of the class, for which any reference to anything to `this` in that function would fail, likely a read access violation.
With shared_from_this in Components we can make this safer.
```
MyClass::MyClass()
{
auto strongThis = shared_from_this();
auto func = [strongThis]()
{
strongThis->doSomething();
};
}
```
This however, won't work because we cannot use shared_from_this in a constructor. For this reason it may be appropriate in Behaviours to have a separate function to initialize internal state. Particularly in a Behaviour that uses TaskNode's which rely on function ptrs.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/481Haply Issues2022-10-19T04:04:11-04:00Andrew WilsonHaply IssuesRemaining Haply issues here:
- [ ] Haply Pen Blocks at 50hz. Stalling the haptics thread. Call every 20ms.
- [ ] Construct Haply device without pen. Currently no way to do this. Meaning it looks via bluetooth for the pen everytime whic...Remaining Haply issues here:
- [ ] Haply Pen Blocks at 50hz. Stalling the haptics thread. Call every 20ms.
- [ ] Construct Haply device without pen. Currently no way to do this. Meaning it looks via bluetooth for the pen everytime which is a 5s or so stall. When using VR controllers or testing with linear tracking only this is undesirable. Also not verified what this does on a computer without wireless capabilities.
- [ ] Haply static libraries do not work on vs2019. Only on vs2022. There was a fix in vs2019, but I have not yet pinpoint'd the exact vs version. Currently an error is thrown if you use any vs2019.Harald ScheirichHarald Scheirichhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/478First PBD Rigid Body Disappears on Reset2022-10-12T16:51:02-04:00Andrew WilsonFirst PBD Rigid Body Disappears on ResetOnly the first rigid body disappears on reset of the scene.Only the first rigid body disappears on reset of the scene.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/477CCD Bug when Geometries are Flipped2022-10-09T23:59:46-04:00Andrew WilsonCCD Bug when Geometries are FlippedAt the moment you can do something along the lines of:
```
SphereToCapsuleCD cd;
cd.setInputA(sphere);
cd.setInputB(capsule);
cd.update();
SphereToCapsuleCD cd;
cd.setInputA(capsule);
cd.setInputB(sphere);
cd.update();
```
When flipping...At the moment you can do something along the lines of:
```
SphereToCapsuleCD cd;
cd.setInputA(sphere);
cd.setInputB(capsule);
cd.update();
SphereToCapsuleCD cd;
cd.setInputA(capsule);
cd.setInputB(sphere);
cd.update();
```
When flipping you get the output flipped. This makes it easy for user code to not have to guarantee orders for each CD method. Then the callee can simply ask for outputA and get the relevant output.
The CCD in PbdObjectCollision does this:
```
pbdCCD->updatePreviousTimestepGeometry(pbdCCD->getInput(0), pbdCCD->getInput(1));
```
This does not handle reversible inputs. If SphereToCapsuleCCD where to be created. Input0 would have to be sphere. Input1 would have to be capsule. If reversed failure would occur.
In most instances we use it for self collision, there it's a non-issue. There's a possibility using it for two separate line meshes in the reversed order would fail.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/476Get ImplicitGeometryToPointSetCCD subclassing CCDAlgorithm2022-10-10T00:00:05-04:00Andrew WilsonGet ImplicitGeometryToPointSetCCD subclassing CCDAlgorithmCurrently this class does not subclass CCDAglorithm as it existed before. ImplicitGeoemtryToPointSetCCD uses displacements instead of pre/post vertices at the moment.Currently this class does not subclass CCDAglorithm as it existed before. ImplicitGeoemtryToPointSetCCD uses displacements instead of pre/post vertices at the moment.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/475Componentize ScreenCaptureUtility2022-10-13T09:12:55-04:00Andrew WilsonComponentize ScreenCaptureUtilityScreenCaptureUtility could move to a Behaviour. It is currently integrated into VTKViewer itself. Can help debloat VTKViewer and the VTKRenderer a bit more.ScreenCaptureUtility could move to a Behaviour. It is currently integrated into VTKViewer itself. Can help debloat VTKViewer and the VTKRenderer a bit more.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/474Join DeviceClient buttons2022-10-10T00:00:42-04:00Andrew WilsonJoin DeviceClient buttonsDeviceClient stores button states in the base class.
MouseDeviceClient and HapticDeviceClient each have a separate events for it. buttonStateChanged, mousePress, mouseRelease. It would be nice if buttonStateChanged was reusable with Mou...DeviceClient stores button states in the base class.
MouseDeviceClient and HapticDeviceClient each have a separate events for it. buttonStateChanged, mousePress, mouseRelease. It would be nice if buttonStateChanged was reusable with MouseDeviceClient.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/473Missing Pbd Rigid Collision Case2022-10-03T23:14:51-04:00Andrew WilsonMissing Pbd Rigid Collision CaseToday I discovered a missing case in pbd rigid collisions.
Mostly we do collisions of rigids vs deformable. In the few instances of rigid vs rigid we mostly have point based contacts which are supported. But in a few cases there are poi...Today I discovered a missing case in pbd rigid collisions.
Mostly we do collisions of rigids vs deformable. In the few instances of rigid vs rigid we mostly have point based contacts which are supported. But in a few cases there are point (rigid) vs edge (rigid). Rigid edge and rigid triangle are not handled at the moment.