Object's attribute that says if object is still or moves?
Here is a simple setup with script that displays the velocity vector of the active object and an indicator of that vector's length: http://www.pasteall.org/blend/31772

If you run the modal operator and start the playback, you'll see how velocity changes, but that it never settles to completely zero. Thus, use some epsilon (tolerance value), such as
min and max out of 30 samples from diff vector lengths &lt; 0.1
(use a collections.deque(maxlen=30) for that, it's a capped array)

At the core of the script, I access Object.matrix_world.translation to get the current location in 3D world. Note that you need to .copy() this vector if you want to store the start vector, otherwise it will be an alias and the difference therefore zero.



It could be made a bit more efficient if one used an app handler (frame_change_post).