<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:等线;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Microsoft JhengHei Light";
        panose-1:2 11 3 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@Microsoft JhengHei Light";}
@font-face
        {font-family:微软雅黑;
        panose-1:2 11 5 3 2 2 4 2 2 4;}
@font-face
        {font-family:"\@微软雅黑";}
@font-face
        {font-family:"Microsoft YaHei UI";
        panose-1:2 11 5 3 2 2 4 2 2 4;}
@font-face
        {font-family:"\@Microsoft YaHei UI";}
@font-face
        {font-family:"微软雅黑 Light";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
        {font-family:"\@微软雅黑 Light";}
@font-face
        {font-family:"\@等线";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Microsoft YaHei Light";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Microsoft JhengHei Light",sans-serif;
        color:#1F497D;
        font-weight:normal;
        font-style:normal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-family:"微软雅黑 Light",sans-serif;color:#1F497D'>Hi Sreekanth,<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"微软雅黑 Light",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"微软雅黑 Light",sans-serif;color:#1F497D'>Theoretically, we can write and read force and other information to the haptic device via their API. Why iMSTK didn’t provide this interface? 60-70HZ is not a smooth force even it is a zeroth-order hold, we need to consider the force filter in the high-speed thread.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"微软雅黑 Light",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"微软雅黑 Light",sans-serif;color:#1F497D'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"微软雅黑 Light",sans-serif;color:#1F497D'>Zhaohui<o:p></o:p></span></p><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Sreekanth Arikatla [mailto:sreekanth.arikatla@kitware.com] <br><b>Sent:</b> 2017</span><span lang=ZH-CN style='font-size:11.0pt;font-family:"微软雅黑",sans-serif'>年</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>6</span><span lang=ZH-CN style='font-size:11.0pt;font-family:"微软雅黑",sans-serif'>月</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>8</span><span lang=ZH-CN style='font-size:11.0pt;font-family:"微软雅黑",sans-serif'>日</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> 16:17<br><b>To:</b> Zhaohui Xia <unihui@gmail.com><br><b>Cc:</b> Andinet Enquobahrie <andinet.enqu@kitware.com>; imstk-developers@imstk.org<br><b>Subject:</b> Re: [Imstk-developers] high-speed thread in iMSTK<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Hi Zhaohui,<o:p></o:p></p><div><p class=MsoNormal>                  I'm guessing you are using phantom omni. If so yes, it has its own servo thread that starts after hdStartScheduler() call. Its rate is much higher and can be set with hdSetSchedulerRate() but is left to the default value in iMSTK. The forces are still updated at 60-70 Hz but applied in zeroth-order hold fashion.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Unfortunately the debug mode runs much slower. I'm not aware of any other way than setting the VS flags for <a href="https://msdn.microsoft.com/en-us/library/k1ack8f1.aspx">speed</a>. You may also try (if possible) using small mesh to debug code and run actual mesh in release. <o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Thu, Jun 8, 2017 at 3:33 PM, Zhaohui Xia <<a href="mailto:unihui@gmail.com" target="_blank">unihui@gmail.com</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'>Hi Andinet,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'>I am afraid I made a mistake. The device thread is definitely a high-speed thread. I figure out the issue, because I forget to close something when I change the code in that thread.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'>I think there is no performance bottlenecks currently in the main thread under </span><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:red'>Release </span><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'>mode (60-70HZ), since the mesh size (1000 vertices) is not very big now.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'>But under </span><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:red'>Debug </span><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'>mode, the speed is too slow, it is just </span><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:red'>0.16HZ </span><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'>for the same mesh. Do we have any ways to improve it, e.g. changing some settings? It would be very helpful for work if it can run faster.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'>Thanks,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft JhengHei Light",sans-serif;color:#1F497D'>Zhaohui</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Andinet Enquobahrie [mailto:</span><a href="mailto:andinet.enqu@kitware.com" target="_blank"><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>andinet.enqu@kitware.com</span></a><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>] <br><b>Sent:</b> 2017</span><span lang=ZH-CN style='font-size:11.0pt;font-family:等线'>年</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>6</span><span lang=ZH-CN style='font-size:11.0pt;font-family:等线'>月</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>8</span><span lang=ZH-CN style='font-size:11.0pt;font-family:等线'>日</span><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> 13:29<br><b>To:</b> Zhaohui Xia <</span><a href="mailto:unihui@gmail.com" target="_blank"><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>unihui@gmail.com</span></a><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>><br><b>Cc:</b> </span><a href="mailto:imstk-developers@imstk.org" target="_blank"><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>imstk-developers@imstk.org</span></a><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'><br><b>Subject:</b> Re: [Imstk-developers] high-speed thread in iMSTK</span><o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Zhaohui<o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Can you profile your code and let us know the key performance bottlenecks in iMSTK?<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>This is something Dr. Des is also interested. We will be exploring ways of accelerating some of the modules.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>thanks<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Andinet<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Thu, Jun 8, 2017 at 12:40 PM, Zhaohui Xia <<a href="mailto:unihui@gmail.com" target="_blank">unihui@gmail.com</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft YaHei UI",sans-serif'>Hi All,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft YaHei UI",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft YaHei UI",sans-serif'>Do we have a high-speed thread (e.g. 1000HZ) in iMSTK? I tried different modules e.g VRPNDeviceServer (device) and SceneMange (main thread), but the maximum frame rates of them are 60-70HZ under Release mode.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft YaHei UI",sans-serif'>I also tried to set the Loopdelay to 0.001 or smaller (from my understand, its default value is 0 should have the fastest speed, but it also 60-70HZ).</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft YaHei UI",sans-serif'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft YaHei UI",sans-serif'>Thanks,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft YaHei UI",sans-serif'>Zhaohui</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Verdana",sans-serif;color:#3B3838;background:white'>-----------------------------------------------------------------------------------------------------------</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Microsoft YaHei Light";background:white'>Zhaohui Xia, Ph.D.</span><span style='font-family:"Microsoft YaHei Light"'><br><span style='background:white'>Postdoctoral Research Associate, Center for Modeling, Simulation and Imaging in Medicine (CeMSIM)</span><br><span style='background:white'>Rensselaer Polytechnic Institute</span></span><o:p></o:p></p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'><br>_______________________________________________<br>Imstk-developers mailing list<br><a href="mailto:Imstk-developers@imstk.org" target="_blank">Imstk-developers@imstk.org</a><br><a href="http://public.kitware.com/mailman/listinfo/imstk-developers" target="_blank">http://public.kitware.com/mailman/listinfo/imstk-developers</a><o:p></o:p></p></blockquote></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><br><br clear=all><o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>-- <o:p></o:p></p><div><div><div><div><div><div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Andinet Enquobahrie, Ph.D., MBA<br>Director of Medical Computing<br>Kitware, Inc.<br><br><a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><a href="tel:%28919%29%20969-6990%20x311" target="_blank"><span style='font-size:9.5pt;color:#1155CC'>(919) 969-6990 x311</span></a><o:p></o:p></p></div><div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:9.5pt'> </span><o:p></o:p></p></div></blockquote></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div></div></div></div></div></div></div></div></div></div></div></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><br>_______________________________________________<br>Imstk-developers mailing list<br><a href="mailto:Imstk-developers@imstk.org">Imstk-developers@imstk.org</a><br><a href="http://public.kitware.com/mailman/listinfo/imstk-developers" target="_blank">http://public.kitware.com/mailman/listinfo/imstk-developers</a><o:p></o:p></p></blockquote></div><p class=MsoNormal><br><br clear=all><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>-- <o:p></o:p></p><div><div><div><div><div><div><div><div><div><div><div><div><div><div><p class=MsoNormal>Sreekanth Arikatla, Ph.D.,<o:p></o:p></p></div><div><p class=MsoNormal>Senior R&D Engineer,<o:p></o:p></p></div><div><p class=MsoNormal><a href="http://www.kitware.com" target="_blank"><span style='font-size:9.5pt'>Kitware, Inc.</span></a>, Carrboro, NC.<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></body></html>