Understanding virtual objects through reverse engineering