<div dir="ltr">Hi Nick,<div>            Great article. good to know that Hermite can eliminate some artifacts of linear interpolation. This could definitely be considered for iMSTK. Thanks.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 1, 2016 at 8:01 PM, Milef, Nicholas Boris <span dir="ltr"><<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">Ok, so I did some more digging around, and I found this article with some useful animations:
<div><span style="font-size:10pt"><a href="http://gafferongames.com/networked-physics/snapshots-and-interpolation/" target="_blank">http://gafferongames.com/<wbr>networked-physics/snapshots-<wbr>and-interpolation/</a></span></div>
<div>
<div><br>
</div>
<div>If you look at the last animation, it shows what happens when you use extrapolation vs. interpolation (for networking, but it's the same idea). I think interpolation makes sense for our application based on these results. I think that extrapolation is
 mainly used for animation and character movement in games.<br>
<div style="font-family:Times New Roman;color:#000000;font-size:16px">
<hr>
<div id="m_-7701461798004379043divRpF730643" style="direction:ltr"><font face="Tahoma" size="2" color="#000000"><b>From:</b> Sreekanth Arikatla [<a href="mailto:sreekanth.arikatla@kitware.com" target="_blank">sreekanth.arikatla@kitware.<wbr>com</a>]<br>
<b>Sent:</b> Tuesday, November 29, 2016 12:38 PM<br>
<b>To:</b> Alexis Girault<br>
<b>Cc:</b> Milef, Nicholas Boris; <a href="mailto:imstk-developers@imstk.org" target="_blank">imstk-developers@imstk.org</a><br>
<b>Subject:</b> Re: [Imstk-developers] Rendering interpolation/extrapolation<br>
</font><br>
</div><div><div class="h5">
<div></div>
<div>
<div dir="ltr">Hi Alexis, Nick,
<div>                 In our case i think the first thing we should do, which is easy, is to make the time step dT used by the physics module adaptive. It should be the set to the delta T that is measured in terms of the wall clock time between two successive
 physics solves. Once this is done we encounter the problem that Nick had mentioned.</div>
<div><br>
</div>
<div>In that case:</div>
<div>
<ol>
<li>If the lowest frame rate amongst all of physics objects is more than 30 Hz then we shouldn't observe much of a difference (unless we are dealing with haptics).<br>
</li><li>If the lowest frame rate amongst all of physics objects is less than 30 Hz then we will observe something like stop motion animation. In that case we need to probably use one of the options suggested from the link: extrapolation or interpolation. Extrapolation
 might work if there is no sudden and drastic change in direction of motion of parts of the scene else you will see artifacts. If we choose interpolation, then i think we are forced to lag by one time step and also choose the linear interpolation constant (slope)
 adaptively. This could work but I myself have never tried this. One problem I see is that if the frame rates are really low like 4fps then if the user tries to interact with the objects, they will observe the lag of one time step enforced by the method. If
 it is not interactive it should be fine I guess.</li></ol>
<div>Implementation wise adaptive time step and interpolation/extrapolation should not be very difficult. Its a good discussion to have. Let me know what you guys think.</div>
<div><br>
</div>
<div>Thanks.</div>
<div><br>
</div>
</div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Nov 29, 2016 at 11:39 AM, Alexis Girault <span dir="ltr">
<<a href="mailto:alexis.girault@kitware.com" target="_blank">alexis.girault@kitware.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Sreekanth, what's your take on our possible update rate for the physics modules?</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="m_-7701461798004379043m_-8046369141473702034gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr"><span style="color:rgb(136,136,136);font-size:12.8000001907349px">Alexis Girault</span><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<span style="color:rgb(136,136,136);font-size:12.8000001907349px">R&D Engineer in Medical Computing</span><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<span style="color:rgb(136,136,136);font-size:12.8000001907349px">Kitware, Inc.</span><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<a href="http://www.kitware.com/" rel="noreferrer" style="color:rgb(17,85,204);font-size:12.8000001907349px" target="_blank">http://www.kitware.com</a><br style="color:rgb(136,136,136);font-size:12.8000001907349px">
<font color="#999999"><a href="tel:(919)+969-6990+x325" target="_blank"><span style="font-size:12.8000001907349px">(919) 969-6990 x3</span>25</a></font><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote"><span>On Tue, Nov 29, 2016 at 11:02 AM, Milef, Nicholas Boris
<span dir="ltr"><<a href="mailto:milefn@rpi.edu" target="_blank">milefn@rpi.edu</a>></span> wrote:<br>
</span>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span>
<div>
<div style="direction:ltr;font-family:Tahoma;color:#000000;font-size:10pt">How are we handling different update rates from the physics modules in the rendering? I imagine this will be a pretty severe problem for physics modules with low update rates.
<div><br>
<div><a href="http://gamedev.stackexchange.com/questions/12754/how-to-interpolate-between-two-game-states" target="_blank">http://gamedev.stackexchange.c<wbr>om/questions/12754/how-to-inte<wbr>rpolate-between-two-game-state<wbr>s</a></div>
</div>
</div>
</div>
<br>
</span>______________________________<wbr>_________________<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" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/imstk-developers</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
______________________________<wbr>_________________<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" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/imstk-developers</a><br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-7701461798004379043gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Sreekanth Arikatla, Ph.D,</div>
<div dir="ltr">Senior R&D Engineer,</div>
<div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div></div>
</div>
</div>
</div>
</div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Sreekanth Arikatla, Ph.D,</div><div dir="ltr">Senior R&D Engineer,</div><div dir="ltr"><a href="http://www.kitware.com" style="font-size:12.8px" target="_blank">Kitware, Inc.</a>, Carrboro, NC.<div><br></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div>