iMSTK issueshttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues2019-12-20T16:18:02-05:00https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/221CMake 3.14x build issue2019-12-20T16:18:02-05:00Sreekanth ArikatlaCMake 3.14x build issueCMake 3.14X has an issue with mismatching x86 and x64 build config for dependenciesCMake 3.14X has an issue with mismatching x86 and x64 build config for dependenciesRelease 2.0.0https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/210Update documentation for new rendering features2020-01-14T15:03:48-05:00Nicholas MilefUpdate documentation for new rendering featuresRelease 2.0.0Nicholas MilefNicholas Milefhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/196Cannot Start in Paused Mode2020-03-08T12:19:26-04:00Sreekanth ArikatlaCannot Start in Paused ModeRelease 2.0.0https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/140`addModule()` can cause crash when scene name is the same as a module name2021-01-08T17:23:47-05:00Nicholas Milef`addModule()` can cause crash when scene name is the same as a module nameIf you call `addModule` with a module that has the same name as the scene that already is added to the SimulationManager, there's a crash. I think we should just print out an error message detailing the issue (because we can't control wh...If you call `addModule` with a module that has the same name as the scene that already is added to the SimulationManager, there's a crash. I think we should just print out an error message detailing the issue (because we can't control when a scene gets added vs. when a module gets added).Release 2.0.0Nicholas MilefNicholas Milefhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/52Move NIDAQ support to VRPN2020-12-08T10:25:56-05:00Sean RadiganMove NIDAQ support to VRPNThe NIDAQ implementation should be moved to a VRPN backend. The current code is dependent on NIDAQmx.h and this file should not be distributed with our source, it needs to be fixed before we go public.The NIDAQ implementation should be moved to a VRPN backend. The current code is dependent on NIDAQmx.h and this file should not be distributed with our source, it needs to be fixed before we go public.Release 2.0.0Sean RadiganSean Radiganhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/9SimMedTK Configuration file(s)2020-11-14T02:25:44-05:00Sreekanth ArikatlaSimMedTK Configuration file(s)Discuss and finalize the items for config files for SMTK.
Implement the finalized planDiscuss and finalize the items for config files for SMTK.
Implement the finalized planRelease 2.0.0https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/4Using VTK to add text rendering2020-11-14T02:25:44-05:00Sreekanth ArikatlaUsing VTK to add text renderingenable text to be rendered to opengl screenenable text to be rendered to opengl screenRelease 2.0.0Sean RadiganSean Radiganhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/493Modifying the thread head2023-04-20T10:38:07-04:00lNatxiiModifying the thread headIs there any variable or any way to set the thread head position and orientation? Do I explain?Is there any variable or any way to set the thread head position and orientation? Do I explain?https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/492Downloading oneTBB error2023-04-19T16:28:50-04:00HaloSunDownloading oneTBB errorWhen I build iMSTK I get the following error:
downloading 'https://hub.fastgit.xyz/oneapi-src/oneTBB/archive/46fb877ef1618d9de9a9ba10cee107592b7cdb2d.zip' failed TBB B:\iMSTK\build\CMake\External\CUSTOMBUILD 1
I've tried reconfiguring a...When I build iMSTK I get the following error:
downloading 'https://hub.fastgit.xyz/oneapi-src/oneTBB/archive/46fb877ef1618d9de9a9ba10cee107592b7cdb2d.zip' failed TBB B:\iMSTK\build\CMake\External\CUSTOMBUILD 1
I've tried reconfiguring and generating many times, also tried downloading oneTBB,it doesn't fix this error.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/489PbdObject initialize orientations error2023-01-11T13:45:43-05:00bds-jamesPbdObject initialize orientations errorPbdObject::setDeformBodyFromGeometry line207, 211, 213
```cpp
std::shared_ptr<AbstractDataArray> orientations = geom->getVertexAttribute("Orientations");
if (orientations != nullptr && orientations->getNumberOfCo...PbdObject::setDeformBodyFromGeometry line207, 211, 213
```cpp
std::shared_ptr<AbstractDataArray> orientations = geom->getVertexAttribute("Orientations");
if (orientations != nullptr && orientations->getNumberOfComponents() == 4 && orientations->getScalarType() == IMSTK_DOUBLE
//[- && std::dynamic_pointer_cast<VecDataArray<double, 3>>(orientations)->size() == numParticles) -]
[+ && std::dynamic_pointer_cast<VecDataArray<double, 4>>(orientations)->size() == numParticles) +]
{
auto vec = std::dynamic_pointer_cast<VecDataArray<double, 4>>(orientations);
body.orientations = std::make_shared<StdVectorOfQuatd>(numParticles);
//[- for (int i = 0; i < orientations->size(); i++) -]
[+ for (int i = 0; i < vec->size(); i++) +]
{
//[- (*body.orientations)[i] = Quatd((*vec)[i][3], (*vec)[i][1], (*vec)[i][2], (*vec)[i][0]); -]
[+ (*body.orientations)[i] = Quatd((*vec)[i][3], (*vec)[i][0], (*vec)[i][1], (*vec)[i][2]); +]
}
}
```Harald ScheirichHarald Scheirichhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/485cmake: error in configuration process, project files may be invalid2022-11-01T02:22:23-04:00OOFYFIcmake: error in configuration process, project files may be invalidHi I am OOFYFI so when I was compiling Torque3D Game engine source code I got an error called: "error in configuration process, project files may be invalid"
I think missed installing something, I need help with this error please help me...Hi I am OOFYFI so when I was compiling Torque3D Game engine source code I got an error called: "error in configuration process, project files may be invalid"
I think missed installing something, I need help with this error please help me asap thank you.
![image](/uploads/fa7fb2841a678f052d14472032c835bf/image.png)
[CMakeOutput.log](/uploads/92f72e6e79665f9fcd1f396670df75d7/CMakeOutput.log)
[CMakeError.log](/uploads/ec8dc4d42573b44ba9c750f7f25aaf75/CMakeError.log)https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/484Enable VRPN in CI Dashboard for Testing Haptics Examples2022-11-01T02:22:47-04:00Andrew WilsonEnable VRPN in CI Dashboard for Testing Haptics ExamplesVRPN should be able to test haptics examples on windows, it doesn't require a downloading step since its downloaded through the superbuild so we should tick this on once the windows CI is back online.VRPN should be able to test haptics examples on windows, it doesn't require a downloading step since its downloaded through the superbuild so we should tick this on once the windows CI is back online.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/483EventObject::postEvent bug or intended?2022-11-17T14:43:17-05:00AinrayEventObject::postEvent bug or intended?In EventObject::postEvent, there is a small piece of code as following
`// For every direct observer
// Directly call its function
for (auto i = directObservers.begin(); i != directObservers.end(); i++)
{
...In EventObject::postEvent, there is a small piece of code as following
`// For every direct observer
// Directly call its function
for (auto i = directObservers.begin(); i != directObservers.end(); i++)
{
if (i->first == e.m_type)
{
std::vector<Observer>& observers = i->second;
** for (std::vector<Observer>::iterator j = observers.begin(); j != observers.end(); j++)
{
// If function of observer does not exist, remove observer
if (j->second != nullptr)
{
// Call the function
j->second(ePtr.get());
}
else
{
j = i->second.erase(j);
}
}**
}
} `
As marked by bold fonts, if the iterator j has null function, it will be erased. The potential problem is that: "j++" in the for statement, which is
run regardless of whether function of j is null or not. When j's function happens to be null, the 'erase' will move j to the next iterator just after
the erased one, whose function will not be called because j will further be moved to the next position by "j++" statement. So if there is a 'observer'
whose function is null, its next 'observer' will be ignored in any way.
Is it intended for any reason? Or it is a bug? EventObject is the basic class of iMSTK. So I think I should report it here.
Yours,
Ainray
wwzhang0421@163.comhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/480Haply Pen Blocking2022-10-16T15:29:39-04:00Andrew WilsonHaply Pen BlockingThe Haply pen blocks at 50hz. You can choose not to use the pen to get 1000hz.The Haply pen blocks at 50hz. You can choose not to use the pen to get 1000hz.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/479A Way to Construct Haply Device Without Searching for Pen2022-10-16T15:29:41-04:00Andrew WilsonA Way to Construct Haply Device Without Searching for PenCurrently when we make a Haply device we always search for the Haply bluetooth pen which takes a good 5-10s of just waiting to not find it.
This is undesirable when you aren't using the pen in the first place.Currently when we make a Haply device we always search for the Haply bluetooth pen which takes a good 5-10s of just waiting to not find it.
This is undesirable when you aren't using the pen in the first place.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/470Pbd Rigid Grasping2022-10-06T18:03:24-04:00Andrew WilsonPbd Rigid GraspingWe need to be able to grasp rigid objects. Such as a needle (also other rigids for testing can be nice).
- [x] Pbd Rigid Grasping
- [x] Rigid Analytic on Rigid Analytic grasping w/ Haptics
- [x] Rigid Analytic on Deformable Mesh graspin...We need to be able to grasp rigid objects. Such as a needle (also other rigids for testing can be nice).
- [x] Pbd Rigid Grasping
- [x] Rigid Analytic on Rigid Analytic grasping w/ Haptics
- [x] Rigid Analytic on Deformable Mesh grasping w/ Haptics
- [x] Rigid Mesh on Rigid Analytic grasping (this may be done not sure) w/ Haptics
- [x] Positional/point grasping
- [x] Grasping with rotation
- [x] Multi point grasping
- [x] Lap Tool (capsule stand in) Needle Manipulation Example
Grasping was implemented with PbdRigidBodyPointToPointConstraint which constrains a point on a rigid body to a point on another. It can exert both forces and torques to achieve this. Unfortunately the object can still "spin" around the grasped point. You could, ofc, establish more grasp points but you'd want to in an orthonormal basis to prevent rotation in all directions. I would sooner recommend using a PbdAngularDistanceConstraint (already introduced, but possibly not working), and introduce an optional offset there. So you could maintain the relative angles made when grasping.
Multi point grasping could be tricky to keep stable. I don't think the linear will present huge problems. Maybe a low stiffness on the PbdAngularDistanceConstraint. I would test both with and without haptics. With haptics may be more stable. Since you can't pull one device without also pulling the other. Of course, if you don't have two haptic devices I think testing without is fine. Additionally all our devices don't render torque so if you grab a needle in two locations and rotate in opposite directions there will be conflicts/unsolvable situations.https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/466PbdObjectCutting With Vertex Dense Objects2022-08-30T15:41:10-04:00Justin WooPbdObjectCutting With Vertex Dense ObjectsCutting does not occur properly with vertex dense objects.
[cutting-example.cpp](/uploads/0299c62e2288dcacda7364c9c1522599/cutting-example.cpp)
![cutting-1](/uploads/186af9987c3b2e392c958e979fb40eac/cutting-1.gif)
![cutting-2](/upload...Cutting does not occur properly with vertex dense objects.
[cutting-example.cpp](/uploads/0299c62e2288dcacda7364c9c1522599/cutting-example.cpp)
![cutting-1](/uploads/186af9987c3b2e392c958e979fb40eac/cutting-1.gif)
![cutting-2](/uploads/aff4259f48840c4c13c4cc3ea5507b36/cutting-2.gif)https://gitlab.kitware.com/iMSTK/iMSTK/-/issues/465PbdContactConstraints in PbdObjectGrasping2022-09-15T20:19:15-04:00Andrew WilsonPbdContactConstraints in PbdObjectGraspingPbdObjectGrasping needs to be upgraded to work with rigid bodies and upgraded for two-way interaction to allow grasping haptics.
- Grasping of rigid with rigid body.
- Grasping of soft with rigid body.
Existing approach uses PbdDistan...PbdObjectGrasping needs to be upgraded to work with rigid bodies and upgraded for two-way interaction to allow grasping haptics.
- Grasping of rigid with rigid body.
- Grasping of soft with rigid body.
Existing approach uses PbdDistanceConstraint which only does a linear solve. So you could only grasp from the rigid body origin. Now you can use PbdDistanceBodyToBodyConstraint to constraint two points on a rigid body (off origin) by a distance.Andrew WilsonAndrew Wilsonhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/463Failed test on Linux for PbdObjectCollision2022-10-11T11:28:44-04:00Jacob MooreFailed test on Linux for PbdObjectCollisionJust here as a reminder. Passes all test on windows. Something GCC specific, but went ahead and merged the branch since it was already so large.Just here as a reminder. Passes all test on windows. Something GCC specific, but went ahead and merged the branch since it was already so large.Andrew WilsonAndrew Wilsonhttps://gitlab.kitware.com/iMSTK/iMSTK/-/issues/462AppendMesh doesn't work2022-08-30T11:12:30-04:00Connor BowleyAppendMesh doesn't workWhen using `imstk::AppendMesh` I am getting a warning `Input 0 invalid` even though the pointers I added via `addInputMesh` were non-null. I find the implementation suspect since [the requestUpdate function](https://gitlab.kitware.com/iM...When using `imstk::AppendMesh` I am getting a warning `Input 0 invalid` even though the pointers I added via `addInputMesh` were non-null. I find the implementation suspect since [the requestUpdate function](https://gitlab.kitware.com/iMSTK/iMSTK/-/blob/master/Source/Filtering/imstkAppendMesh.cpp#L36-53) just repeatedly calls for `getInput(0)`.
@harald.scheirich also noticed that the way the ports are setup in the constructor and `addInputMesh`, there will always be one extra port when `requestUpdate` is called.
Notably this filter does not appear to be used or tested anywhere.Jacob MooreJacob Moore