update SO3 by difference