I changed the code, and added the following code after build() and world.buildAllObjects(), but still get the position shifting:
buttShine.setOrigin( new SimpleVector( 0, 0, zoffset) );
buttShine.setCenter( new SimpleVector( 0, 0, zoffset) );
buttShine.setRotationPivot( new SimpleVector( 0, 0, zoffset) );
So in that case, pivit, center, and origin are all the same, correct?
As for when the origin should be different than the pivot point, isn't that the case where a child is offset from a parent, but you want it to rotate around it's own center, and not the parent's center? I may be visualizing incorrectly how this works. Anyway, the above would seem to indicate that the position-shift problem is related to something else, anyway, wouldn't it? I can repost the demo applet and source with the above changes if that helps.