Object's attribute that says if object is still or moves? Is it possible to know if an object moves or not with python in Blender? Is there any object's attribute/state/other that gives this information?

EDIT: Here I speak of movement in world space. More precisely, if the world positions of the vertices of an object don't move between two frames, I consider the object doesn't move. If the camera moves but the objects don't, then their world positions shouldn't change and I consider they don't move.

I saw some answer using Blender Game Engine with an active object, but I just use a rigid solids simulation in Cycles.
EDIT bis: My goal is to know when the objects in the simulation are in their final state basically. 

Example: a wrecking ball breaks a stack of cubes. Some cubes fall, and after some time they stop sliding on the ground: the object's state should tell me that now they are "inactive". If they get hit by other falling cubes, then their state should change back to "active", until they "stabilize" again.

Thanks !
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).