I would be interested in hearing more about what Eric means by 
"interpolation". An analogy to graphic data seems appropriate. A 
distinction I would bring up is between taking a set of dots
on a graph and (a) connecting them with line segments or (b) drawing the
best-fit curve through them. In the first case you get a fairly
unsatisfying set of interpolations. In the second you get a smooth curve
at the expense of adjusting the data.

NOW, if your interest in interpolation is to just do (a) -- make a
linear interpolation between each frame -- I think that might be less 
interesting. If, on the other hand you are interested in actually 
creating a  time-based "best fit curve" through the data -- basically 
fitting each atom through a sequence of frames, determining a smooth 
curve, and then  redoing the frames with interpolated frames to create 
the best-fit animation, THAT might be more interesting.

Another possibility is to implement a moveto-like transition between
frames. The idea here would be that the positions you see are
interpolations of frames while the animation is running, but you can
only stop at actual frames. Starting in a given frame, something like:

FrameTo <target> <number of interpolations per frame> <overall
frames_per_second>

The problem there to sort out would be what to do about helixes and
such. These really should be recalculated at each point. That might be
asking for a lot, but maybe not. It's interesting that Jmol can
calculate helixes and sheets -- it doesn't need to be told where they 
are. And it's very fast.

I worry about the overhead, though. AH.... how to do this without
messing up the data? How about this: a special frame that gets LOADED
with atom data and it is just that "animation frame" that you are
seeing. One frame. Perhaps with a special number, like 9999. (When
multiple files are loaded, then frames come in with numbers like 1001,
1002, 2001, 2002, so 9999 wouldn't be out of the question.) You could
even define the frame number using some simple SET command. "set
animationFrameNumber 9999"

Then perhaps one could say:

frame smoothAnimation <firstFrameNo> <lastFrameNo>
<interpolationsPerFrame> <interpolationsPerSecond> <otherOptions>

The cool thing about this is that you could do all the manipulation you 
want -- rotations, zooming, etc. -- while the thing is playing, and it 
would work just fine. Basically the rendering/animation engine would 
work just like ever, with the data changing under it.

So my proposal would be a single frame that is a clone of the atom set 
and is loaded on the fly. I think I've successfully separated the 
rendering functions from the calculation and visibility issues. There 
are no longer any aspects of visibility that are being determined DURING 
rendering - so we can define the state of the system at any time.

If necessary, we could do a precalculation, but I suspect the real issue 
there is scalability. You can't just preload 10,000,000 atom locations, 
helix information, etc. But, on the other hand, there might be a way to 
stream this -- to save an animation in some format using the application 
and then stream it in and visualize on the fly. Moving the atoms is no 
real problem. Miguel's analogy to vibration is intriguing. One could 
define this all in terms of differences and the sequence of getting from 
frame A to frame B as, in essense, a once-through vibration vector.

Interesting idea.

Bob



eric capps wrote:

>By interpolation between frames, I mean: an option, in the animation  
>menu, to create a number of "transition" frames between two frames in  
>an animation to make it look smoother. This is how it was described  
>to me:
>
>"I don't know how it work under the hood, but in the jmol 9 that I  
>use, when you open the Extras->Animate panel, you can check  
>'interpolate between frames', and choose the number of frames that it  
>will add between the ones you have loaded."
>
>Googling it turned up this alone: http://thomas.kuehne.cn/references/ 
>jmol.diff.
>
>Weird? Maybe this was a branch that didn't catch on or something, but  
>if it in fact is not implemented in Jmol 10, I could take a stab at it.
>
>On Jul 24, 2006, at 12:33 PM, Bob Hanson wrote:
>
>  
>
>>Eric,
>>
>>What does that mean, "interpolation between frames"? I suspect the
>>answer is "no", and I can't imagine that Jmol 9 did it.
>>
>>Bob
>>    
>>
>
>-------------------------------------------------------------------------
>Take Surveys. Earn Cash. Influence the Future of IT
>Join SourceForge.net's Techsay panel and you'll get the chance to share your
>opinions on IT & business topics through brief surveys -- and earn cash
>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>_______________________________________________
>Jmol-users mailing list
>Jmol-users@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/jmol-users
>  
>



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to