This documentation reflects AI2-THOR version 2.1.0. For the latest AI2-THOR documentation, visit ai2thor.allenai.org.

Held Object Manipulation

After the agent has picked up a Sim Object that is pickupable, these actions can be used to manipulate held items in various ways.


Move Hand Forward

Moves the Agent’s hand and held object forward relative to the agent’s current facing. The hand can only be moved if it is holding an object.

event = controller.step(dict(action='MoveHandAhead', moveMagnitude = 0.1))
Parameter Type Description Default
moveMagnitude float The distance, in meters, to move the hand in this direction 0.0

Move Hand Back

Moves the Agent’s hand and held object backward relative to the agent’s current facing. The hand can only be moved if it is holding an object.

event = controller.step(dict(action='MoveHandBack', moveMagnitude = 0.1))
Parameter Type Description Default
moveMagnitude float The distance, in meters, to move the hand in this direction 0.0

Move Hand Left

Moves the Agent’s hand and held object left relative to the agent’s current facing. The hand can only be moved if it is holding an object.

event = controller.step(dict(action='MoveHandLeft', moveMagnitude = 0.1))
Parameter Type Description Default
moveMagnitude float The distance, in meters, to move the hand in this direction 0.0

Move Hand Right

Moves the Agent’s hand and held object right relative to the agent’s current facing. The hand can only be moved if it is holding an object.

event = controller.step(dict(action='MoveHandRight', moveMagnitude = 0.1))
Parameter Type Description Default
moveMagnitude float The distance, in meters, to move the hand in this direction 0.0

Move Hand Up

Moves the Agent’s hand and held object up relative to the agent’s current facing. The hand can only be moved if it is holding an object.

event = controller.step(dict(action='MoveHandUp', moveMagnitude = 0.1))
Parameter Type Description Default
moveMagnitude float The distance, in meters, to move the hand in this direction 0.0

Move Hand Down

Moves the Agent’s hand and held object down relative to the agent’s current facing. The hand can only be moved if it is holding an object.

event = controller.step(dict(action='MoveHandDown', moveMagnitude = 0.1))
Parameter Type Description Default
moveMagnitude float The distance, in meters, to move the hand in this direction 0.0

Rotate Hand

Rotates the hand and held object about the specified axes (x, y, z) to the specified degree. These examples rotate a held object to 90 degrees about each axis.

event = controller.step(dict(action='RotateHand', x = 90))
event = controller.step(dict(action='RotateHand', y = 90))
event = controller.step(dict(action='RotateHand', z = 90))

Multiple Axes can be specified at once as well.

event = controller.step(dict(action='RotateHand', x = 90, y = -15, z = 28))
Parameter Type Description Default
x float rotation about the object’s x axis 0.0
y float rotation about the object’s y axis 0.0
z float rotation about the object’s z axis 0.0


Continue on to the Miscellaneous Actions documentation for additional features.