Repository: NextCenturyCorporation/MCS (language: python)

Issue:
MCS-602 Eval 4 Interactive Object Permanence and Reorientation Templates
Check out this link: https://github.com/NextCenturyCorporation/MCS/blob/MCS-602-eval-4-training-examples/machine_common_sense/scenes/README.md#interactive-object-permanence-and-reorientation-tasks


Discussion / hints:

Fix patch:
diff --git a/CPU_Container.dockerfile b/CPU_Container.dockerfile
index 9b846d302..5efa8627c 100644
--- a/CPU_Container.dockerfile
+++ b/CPU_Container.dockerfile
@@ -9,7 +9,7 @@ ARG DEBIAN_FRONTEND=noninteractive
 ENV TZ=America/New_York
 
 # --build-arg mcsversion=0.0.x to override default in docker build command
-ARG mcsversion=0.4.0
+ARG mcsversion=0.4.1
 
 ENV DEBIAN_FRONTEND=noninteractive
 ENV MCS_EXECUTABLE_PATH="/MCS-AI2-THOR-Unity-App-v${mcsversion}.x86_64"
diff --git a/Dockerfile b/Dockerfile
index b2cb0048d..7b86efb73 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -19,7 +19,7 @@ ENV NVIDIA_DRIVER_CAPABILITIES ${NVIDIA_DRIVER_CAPABILITIES},display
 # ENV LANG C.UTF-8
 
 # --build-arg mcsversion=0.0.x to override default in docker build command
-ARG mcsversion=0.4.0
+ARG mcsversion=0.4.1
 
 WORKDIR /mcs
 
diff --git a/README.md b/README.md
index 348c5b612..c0212fc37 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@
 
 ## Installation
 
-The latest release of the MCS Python library is `0.4.0`.
+The latest release of the MCS Python library is `0.4.1`.
 
 ### Virtual Environments
 
@@ -65,26 +65,26 @@ Here are the instructions for downloading and installing our latest Unity releas
 
 ### Unity Application
 
-The latest release of the MCS Unity app is `0.4.0`.
+The latest release of the MCS Unity app is `0.4.1`.
 
 Please note that our Unity App is built on Linux. If you need a Mac or Windows version, please [contact us](#troubleshooting) directly.
 
-1. [Download the Latest MCS Unity App](https://github.com/NextCenturyCorporation/MCS/releases/download/0.4.0/MCS-AI2-THOR-Unity-App-v0.4.0.x86_64)
+1. [Download the Latest MCS Unity App](https://github.com/NextCenturyCorporation/MCS/releases/download/0.4.1/MCS-AI2-THOR-Unity-App-v0.4.1.x86_64)
 
-2. [Download the Latest MCS Unity Data Directory TAR](https://github.com/NextCenturyCorporation/MCS/releases/download/0.4.0/MCS-AI2-THOR-Unity-App-v0.4.0_Data.tar.gz)
+2. [Download the Latest MCS Unity Data Directory TAR](https://github.com/NextCenturyCorporation/MCS/releases/download/0.4.1/MCS-AI2-THOR-Unity-App-v0.4.1_Data.tar.gz)
 
 3. Ensure that both the Unity App and the TAR are in the same directory.
 
 4. Untar the Data Directory:
 
 ```
-tar -xzvf MCS-AI2-THOR-Unity-App-v0.4.0_Data.tar.gz
+tar -xzvf MCS-AI2-THOR-Unity-App-v0.4.1_Data.tar.gz
 ```
 
 5. Mark the Unity App as executable:
 
 ```
-chmod a+x MCS-AI2-THOR-Unity-App-v0.4.0.x86_64
+chmod a+x MCS-AI2-THOR-Unity-App-v0.4.1.x86_64
 ```
 
 ## Training Datasets
diff --git a/machine_common_sense/API.md b/machine_common_sense/API.md
index 7b34309ab..d2bf528a2 100644
--- a/machine_common_sense/API.md
+++ b/machine_common_sense/API.md
@@ -524,7 +524,31 @@ Drop an object you are holding.
 
 #### END_HABITUATION( = 'EndHabituation')
 Ends a habituation trial for the scene by blanking the screen for one
-action. Sometimes needed for the passive tasks.
+action (and teleporting the agent if needed). Sometimes needed depending
+on the task type.
+
+Note that we currently plan to use the starting position/rotation as
+teleport parameters here for applicable cases. We cannot currently
+guarantee that using a position intersecting another object or outside
+the room won’t cause issues or errors.
+
+
+* **Parameters**
+
+    
+    * **xPosition** (*float**, **optional*) – The global X position of the vector to teleport the agent to during
+    the blank screen. The Z position must also be specified for this to
+    work.
+
+
+    * **zPosition** (*float**, **optional*) – The global Z position of the vector to teleport the agent to during
+    the blank screen. The X position must also be specified for this to
+    work.
+
+
+    * **yRotation** (*float**, **optional*) – Degrees (global, not relative) to rotate the agent along the Y axis
+    during the blank screen.
+
 
 
 * **Returns**
diff --git a/machine_common_sense/_version.py b/machine_common_sense/_version.py
index abeeedbf5..f0ede3d37 100644
--- a/machine_common_sense/_version.py
+++ b/machine_common_sense/_version.py
@@ -1,1 +1,1 @@
-__version__ = '0.4.0'
+__version__ = '0.4.1'
diff --git a/machine_common_sense/action.py b/machine_common_sense/action.py
index cbf69a72b..5d9243717 100644
--- a/machine_common_sense/action.py
+++ b/machine_common_sense/action.py
@@ -564,12 +564,34 @@ class Action(Enum):
     END_HABITUATION = (
         "EndHabituation",
         "h",
-        "Ends a habituation trial for the scene by blanking the screen for" +
-        "for one action. Sometimes needed for the passive tasks."
+        "Ends a habituation trial for the scene by blanking the screen " +
+        "for one action (and teleporting the agent if needed). Sometimes" +
+        " needed depending on the task type. (xPosition=float, " +
+        "zPosition=float, yRotation=float)"
     )
     """
     Ends a habituation trial for the scene by blanking the screen for one
-    action. Sometimes needed for the passive tasks.
+    action (and teleporting the agent if needed). Sometimes needed depending
+    on the task type.
+
+    Note that we currently plan to use the starting position/rotation as
+    teleport parameters here for applicable cases. We cannot currently
+    guarantee that using a position intersecting another object or outside
+    the room won't cause issues or errors.
+
+    Parameters
+    ----------
+    xPosition : float, optional
+        The global X position of the vector to teleport the agent to during
+        the blank screen. The Z position must also be specified for this to
+        work.
+    zPosition : float, optional
+        The global Z position of the vector to teleport the agent to during
+        the blank screen. The X position must also be specified for this to
+        work.
+    yRotation : float, optional
+        Degrees (global, not relative) to rotate the agent along the Y axis
+        during the blank screen.
 
     Returns
     -------
diff --git a/machine_common_sense/controller.py b/machine_common_sense/controller.py
index c8ce4f856..541acc6e6 100644
--- a/machine_common_sense/controller.py
+++ b/machine_common_sense/controller.py
@@ -43,12 +43,30 @@
 from .config_manager import ConfigManager
 
 
+def __reset_override(self, scene):
+    # From https://github.com/allenai/ai2thor/blob/2.5.0/ai2thor/controller.py#L503-L525 # noqa: E501
+    # Remove the error check: if scene not in self.scenes_in_build
+    self.server.send(dict(action='Reset', sceneName=scene, sequenceId=0))
+    self.last_event = self.server.receive()
+    self.last_event = self.step(
+        action='Initialize',
+        **self.initialization_parameters
+    )
+    return self.last_event
+
+
+ai2thor.controller.Controller.reset = __reset_override
+
+
 def __image_depth_override(self, image_depth_data, **kwargs):
     # From https://github.com/NextCenturyCorporation/ai2thor/blob/47a9d0802861ba8d7a2a7a6d943a46db28ddbaab/ai2thor/server.py#L232-L240 # noqa: E501
     # The MCS depth shader in Unity is completely different now, so override
     # the original AI2-THOR depth image code. Just return what Unity sends us.
     image_depth = ai2thor.server.read_buffer_image(
-        image_depth_data, self.screen_width, self.screen_height, **kwargs)
+        image_depth_data,
+        self.screen_width,
+        self.screen_height
+    )
     return image_depth
 
 
@@ -128,6 +146,11 @@ class Controller():
     RECEPTACLE_IMAGE_COORDS_X_KEY = 'receptacleObjectImageCoordsX'
     RECEPTACLE_IMAGE_COORDS_Y_KEY = 'receptacleObjectImageCoordsY'
 
+    # used for EndHabituation teleport
+    TELEPORT_X_POS = 'xPosition'
+    TELEPORT_Z_POS = 'zPosition'
+    TELEPORT_Y_ROT = 'yRotation'
+
     # Hard coding actions that effect MoveMagnitude so the appropriate
     # value is set based off of the action
     # TODO: Move this to an enum or some place, so that you can determine
@@ -660,11 +683,32 @@ def validate_and_convert_params(self, action, **kwargs):
         receptacle_vector['y'] = self._convert_y_image_coord_for_unity(
             float(receptacleObjectImageCoordsY))
 
+        teleportRotInput = kwargs.get(self.TELEPORT_Y_ROT)
+        teleportPosXInput = kwargs.get(self.TELEPORT_X_POS)
+        teleportPosZInput = kwargs.get(self.TELEPORT_Z_POS)
+
+        teleportRotation = None
+        teleportPosition = None
+
+        if teleportRotInput is not None and Util.is_number(teleportRotInput):
+            teleportRotation = {}
+            teleportRotation['y'] = kwargs.get(self.TELEPORT_Y_ROT)
+
+        if (teleportPosXInput is not None and
+                Util.is_number(teleportPosXInput) and
+                teleportPosZInput is not None and
+                Util.is_number(teleportPosZInput)):
+            teleportPosition = {}
+            teleportPosition['x'] = teleportPosXInput
+            teleportPosition['z'] = teleportPosZInput
+
         return dict(
             objectId=kwargs.get("objectId", None),
             receptacleObjectId=kwargs.get("receptacleObjectId", None),
             rotation=rotation_vector,
             horizon=horizon,
+            teleportRotation=teleportRotation,
+            teleportPosition=teleportPosition,
             moveMagnitude=moveMagnitude,
             objectImageCoords=object_vector,
             receptacleObjectImageCoords=receptacle_vector
diff --git a/machine_common_sense/recorder.py b/machine_common_sense/recorder.py
index 011a36c87..52b887bab 100644
--- a/machine_common_sense/recorder.py
+++ b/machine_common_sense/recorder.py
@@ -1,7 +1,5 @@
-import os
 import time
 import pathlib
-import shutil
 import threading
 import queue
 
@@ -101,18 +99,6 @@ def finish(self) -> None:
         self.flush()
         self.writer.release()
 
-        if self._frames_written > 0:
-            # convert video to use h264 codec for browser playing
-            # which is not usable directly from opencv
-            shutil.move(self._path, 'temp.mp4')
-            os.system(
-                f'ffmpeg -loglevel quiet -i temp.mp4'
-                f' -vcodec libx264 -vf format=yuv420p {self._path}')
-            os.remove('temp.mp4')
-        else:
-            # Remove the unused video file without any frames.
-            os.remove(self._path)
-
     @property
     def path(self) -> pathlib.Path:
         return self._path
diff --git a/machine_common_sense/scenes/README.md b/machine_common_sense/scenes/README.md
index 46eb86f22..366fc9271 100644
--- a/machine_common_sense/scenes/README.md
+++ b/machine_common_sense/scenes/README.md
@@ -1,14 +1,10 @@
-# MCS Scene Configuration Files: README
+# MCS Scene Configuration Files
 
-## Documentation
+Documentation: [SCHEMA.md](./SCHEMA.md)
 
-[SCHEMA.md](./SCHEMA.md)
+## Interactive Scenes
 
-## Examples
-
-### Interactive Scenes
-
-#### Playroom
+### Playroom
 
 An open room containing over 40 objects for undirected exploration.
 
@@ -16,25 +12,98 @@ An open room containing over 40 objects for undirected exploration.
 
 ![playroom_3_2](./videos/playroom_3_2.gif)
 
-#### Retrieval Goal
+### Retrieval Goal
+
+Soccer ball retrieval goal for the Summer 2021 evaluation:
+
+- [retrieval_goal_example_with_soccer_ball.json](./retrieval_goal_example_with_soccer_ball.json)
+
+Silver trophy retrieval goal for the Winter 2020 evaluation:
+
+- [retrieval_goal_example_with_trophy.json](./retrieval_goal_example_with_trophy.json)
+
+### Hinged Containers
+
+Soccer ball inside hinged containers for the Summer 2021 evaluation:
+
+- [hinged_container_example_with_soccer_ball.json](./hinged_container_example_with_soccer_ball.json)
+
+![hinged_container_example_with_soccer_ball](./videos/hinged_container_example_with_soccer_ball.gif)
+
+Silver trophy inside hinged containers for the Winter 2020 evaluation:
+
+- [hinged_container_example_with_trophy.json](./hinged_container_example_with_trophy.json)
+
+![hinged_container_example_with_trophy](./videos/hinged_container_example_with_trophy.gif)
+
+### Interactive Object Permanence and Reorientation Tasks
+
+The room has different dimensions/bounds, and isn't necessarily square. Previously, the room's dimensions were always [-5, 5] on both the X and the Z axes.
+
+- [template_12_by_8.json](./template_12_by_8.json)
+- [template_2_by_4.json](./template_2_by_4.json)
+
+| | |
+| --------- | ----------- |
+| ![](./videos/template_12_by_8.gif) | ![](./videos/template_2_by_4.gif) |
+
+The room's outer walls are individually, distinctly colored. Previously, all of the room's outer walls were always the same color.
+
+- [template_individually_colored_walls.json](./template_individually_colored_walls.json)
+
+| |
+| --------- |
+| ![](./videos/template_individually_colored_walls.gif) |
+
+The performer agent is positioned on top of a flat, raised platform. Moving off the edge of the platform will cause the performer agent to automatically, instantaneously fall down to the floor, and the performer agent will not be able to move back on top of the platform.
+
+- [template_platform_independent.json](./template_platform_independent.json)
+- [template_platform_bisecting.json](./template_platform_bisecting.json)
+
+| | |
+| --------- | ----------- |
+| ![](./videos/template_platform_independent.gif) | ![](./videos/template_platform_bisecting.gif) |
+
+The performer agent is temporarily "frozen" (can only use the Pass action) at the start and/or in the middle of an interactive scene. This is done by the same method that is used for the passive/VoE scenes (see the StepMetadata.action_list property).
+
+- [template_frozen_first_10_steps.json](./template_frozen_first_10_steps.json)
+- [template_frozen_after_10_steps.json](./template_frozen_after_10_steps.json)
+
+| | |
+| --------- | ----------- |
+| ![](./videos/template_frozen_first_10_steps.gif) | ![](./videos/template_frozen_after_10_steps.gif) |
 
-Soccer ball retrieval for the Summer 2021 evaluation:
+A cylindrical mechanism attached to a wall or the ceiling throws (for interactive object permanence) or drops (for reorientation) the target object (i.e. soccer ball) into the scene.
 
-- [soccer_ball_retrieval_example.json](./soccer_ball_retrieval_example.json)
+- [template_mechanism_dropping_soccer_ball.json](./template_mechanism_dropping_soccer_ball.json)
+- [template_mechanism_throwing_soccer_ball.json](./template_mechanism_throwing_soccer_ball.json)
 
-Silver trophy retrieval for the Winter 2020 evaluation:
+| | |
+| --------- | ----------- |
+| ![](./videos/template_mechanism_dropping_soccer_ball.gif) | ![](./videos/template_mechanism_throwing_soccer_ball.gif) |
+
+The performer agent is "kidnapped" (can only call the EndHabituation action) and teleported to another position in the current room one or more times. Prior to being kidnapped, the performer agent is able to move around and explore its environment for a limited number of steps. On the kidnapped step, the returned images will be black. Prior to the final kidnapping, StepMetadata.habituation_trial will be an integer; after the final kidnapping, StepMetadata.habituation_trial will be "None" to denote the test trial.
 
-- [trophy_retrieval_example.json](./trophy_retrieval_example.json)
+- [template_kidnapping.json](./template_kidnapping.json)
+- [template_kidnapping_then_frozen.json](./template_kidnapping_then_frozen.json)
 
-#### Hinged Containers
+| | |
+| --------- | ----------- |
+| ![](./videos/template_kidnapping.gif) | ![](./videos/template_kidnapping_then_frozen.gif) |
 
-- [hinged_container_example.json](./hinged_container_example.json)
+Combination of multiple elements. For example: a platform, being frozen, and a mechanism throwing the soccer ball into the scene.
 
-![hinged_container_example](./videos/hinged_container_example.gif)
+- [template_interactive_object_permanence_scene.json](./template_interactive_object_permanence_scene.json)
 
-### Intuitive Physics Scenes
+| |
+| --------- |
+| ![](./videos/template_interactive_object_permanence_scene.gif) |
 
-#### Gravity Support: Objects Falling Down
+## Intuitive Physics Scenes
+
+### Gravity Support: Objects Falling Down
+
+All of these examples are PLAUSIBLE
 
 - [gravity_support_ex_01.json](./gravity_support_ex_01.json)
 - [gravity_support_ex_02.json](./gravity_support_ex_02.json)
@@ -49,22 +118,15 @@ Silver trophy retrieval for the Winter 2020 evaluation:
 - [gravity_support_ex_11.json](./gravity_support_ex_11.json)
 - [gravity_support_ex_12.json](./gravity_support_ex_12.json)
 
-| Plausible |
-| --------- |
-| ![](./videos/gravity_support_ex_01.gif) | |
-| ![](./videos/gravity_support_ex_02.gif) | |
-| ![](./videos/gravity_support_ex_03.gif) | |
-| ![](./videos/gravity_support_ex_04.gif) | |
-| ![](./videos/gravity_support_ex_05.gif) | |
-| ![](./videos/gravity_support_ex_06.gif) | |
-| ![](./videos/gravity_support_ex_07.gif) | |
-| ![](./videos/gravity_support_ex_08.gif) | |
-| ![](./videos/gravity_support_ex_09.gif) | |
-| ![](./videos/gravity_support_ex_10.gif) | |
-| ![](./videos/gravity_support_ex_11.gif) | |
-| ![](./videos/gravity_support_ex_12.gif) | |
-
-#### Object Permanence and Spatio-Temporal Continuity: Objects Moving on Multiple Axes Behind Occluders
+| | |
+| ![](./videos/gravity_support_ex_01.gif) | ![](./videos/gravity_support_ex_02.gif) |
+| ![](./videos/gravity_support_ex_03.gif) | ![](./videos/gravity_support_ex_04.gif) |
+| ![](./videos/gravity_support_ex_05.gif) | ![](./videos/gravity_support_ex_06.gif) |
+| ![](./videos/gravity_support_ex_07.gif) | ![](./videos/gravity_support_ex_08.gif) |
+| ![](./videos/gravity_support_ex_09.gif) | ![](./videos/gravity_support_ex_10.gif) |
+| ![](./videos/gravity_support_ex_11.gif) | ![](./videos/gravity_support_ex_12.gif) |
+
+### Object Permanence and Spatio-Temporal Continuity: Objects Moving on Multiple Axes Behind Occluders
 
 Relevant for the Summer 2021 evaluation. Objects may move on only the X axis (as in previous evaluations), on both the X and Z axes (see the "move deep" example scenes), and/or on both the X and Y axes (see the "move toss" example scenes).
 
@@ -81,7 +143,7 @@ Relevant for the Summer 2021 evaluation. Objects may move on only the X axis (as
 | ![](./videos/move_deep_fast_03.gif) | ![](./videos/move_deep_fast_04.gif) |
 | ![](./videos/move_toss_fast_01.gif) | ![](./videos/move_toss_fast_02.gif) |
 
-#### Object Permanence: Objects Moving on Multiple Axes and Stopping Behind Occluders
+### Object Permanence: Objects Moving on Multiple Axes and Stopping Behind Occluders
 
 Relevant for the Summer 2021 evaluation. Objects may move across the entire screen and exit on the other side (as in previous evaluations), or come to a natural stop behind the occluder. Objects may move on only the X axis (as in previous evaluations), on both the X and Z axes (see the "move deep" example scenes), and/or on both the X and Y axes (see the "move toss" example scenes).
 
@@ -98,7 +160,7 @@ Relevant for the Summer 2021 evaluation. Objects may move across the entire scre
 | ![](./videos/move_deep_slow_01.gif) | ![](./videos/move_deep_slow_02.gif) |
 | ![](./videos/move_toss_slow_01.gif) | ![](./videos/move_toss_slow_02.gif) |
 
-#### Object Permanence: Objects Falling Down Behind Occluders
+### Object Permanence: Objects Falling Down Behind Occluders
 
 Relevant for the Winter 2020 evaluation.
 
@@ -109,7 +171,7 @@ Relevant for the Winter 2020 evaluation.
 | --------- | ----------- |
 | ![](./videos/object_permanence_plausible.gif) | ![](./videos/object_permanence_implausible.gif) |
 
-#### Shape Constancy: Objects Falling Down Behind Occluders
+### Shape Constancy: Objects Falling Down Behind Occluders
 
 Relevant for the Winter 2020 and Summer 2021 evaluations
 
@@ -120,7 +182,7 @@ Relevant for the Winter 2020 and Summer 2021 evaluations
 | --------- | ----------- |
 | ![](./videos/shape_constancy_plausible.gif) | ![](./videos/shape_constancy_implausible.gif) |
 
-#### Spatio-Temporal Continuity: Objects Moving Across Behind Occluders
+### Spatio-Temporal Continuity: Objects Moving Across Behind Occluders
 
 Relevant for the Winter 2020 evaluation.
 
@@ -131,9 +193,9 @@ Relevant for the Winter 2020 evaluation.
 | --------- | ----------- |
 | ![](./videos/spatio_temporal_continuity_plausible.gif) | ![](./videos/spatio_temporal_continuity_implausible.gif) |
 
-### Agents Scenes
+## Agents Scenes
 
-#### Agents Have Goals and Preferences
+### Agents Have Goals and Preferences
 
 - [agents_preference_expected.json](./agents_preference_expected.json)
 - [agents_preference_unexpected.json](./agents_preference_unexpected.json)
@@ -142,16 +204,16 @@ Relevant for the Winter 2020 evaluation.
 | --------- | ----------- |
 | ![](./videos/agents_preference_expected.gif) | ![](./videos/agents_preference_unexpected.gif) |
 
-### Simple Scenes
+## Simple Scenes
 
-#### With Objects
+### With Objects
 
 - [ball_close.json](./ball_close.json)
 - [ball_far.json](./ball_far.json)
 - [ball_obstructed.json](./ball_obstructed.json)
 - [block_close.json](./block_close.json)
 
-#### With Walls
+### With Walls
 
 - [wall_ahead.json](./wall_ahead.json)
 - [wall_diagonal.json](./wall_diagonal.json)
diff --git a/machine_common_sense/scenes/SCHEMA.md b/machine_common_sense/scenes/SCHEMA.md
index 73832bc29..79cdcb769 100644
--- a/machine_common_sense/scenes/SCHEMA.md
+++ b/machine_common_sense/scenes/SCHEMA.md
@@ -17,6 +17,7 @@
   - [Teleport Config](#teleport-config)
   - [Transform Config](#transform-config)
   - [Vector Config](#vector-config)
+  - [Room Materials Config](#room-material-config)
 - [Object List](#object-list)
 - [Material List](#material-list)
 
@@ -37,6 +38,17 @@ Example:
     "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
     "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
     "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "roomDimensions": {
+        "x": 10,
+        "y": 3,
+        "z": 10
+    },
+    "roomMaterials": {
+        "left":"AI2-THOR/Materials/Walls/DrywallGreen",
+        "front":"AI2-THOR/Materials/Walls/Drywall4Tiled",
+        "right": "AI2-THOR/Materials/Walls/Drywall4Tiled",
+        "back": "AI2-THOR/Materials/Walls/Drywall4Tiled"
+    },
     "performerStart": {
         "position": {
             "x": -1,
@@ -90,6 +102,7 @@ Each **scene config** has the following properties:
 - `ceilingMaterial` (string, optional): The material (color/texture) for the room's ceiling. See the [Material List](#material-list) for options. Default (v0.0.3+): `"AI2-THOR/Materials/Walls/Drywall"`
 - `floorMaterial` (string, optional): The material (color/texture) for the room's floor. See the [Material List](#material-list) for options. Default (v0.0.3+): `"AI2-THOR/Materials/Fabrics/CarpetWhite 3"`
 - `floorProperties` ([physics config](#physics-config), optional): Enable custom friction, bounciness, and/or drag on the floor. Default: see [physics config](#physics-config).
+- `roomDimensions` (Vector3, optional): Specify the size of the room, not including the thickness of walls, floor, and ceiling.  If omitted or set to 0, 0, 0, the default will be used.  Note: There is a maximum visibility which for objects and structures beyond will not be rendered.  Use caution when creating rooms where the maximum distance exceeds this maximum visibility.  The maximum visibility is 15 meters. Default: 10, 3, 10.  
 - `goal` ([goal config](#goal-config), optional): The goal for the scene. Default: none
 - `intuitivePhysics` (bool, optional): Specific performer and room setup for intuitive physics scenes.
 - `isometric` (bool, optional): Specific performer and room setup for agent scenes.
@@ -98,6 +111,7 @@ Each **scene config** has the following properties:
 - `performerStart` ([transform config](#transform-config), optional): The starting position and rotation of the performer (the "player"). Only the `position.x`, `position.z`, `rotation.x` (head tilt), and `rotation.y` properties are used. Default: `{ "position": { "x": 0, "z": 0 }, "rotation": { "y": 0 } }`
 - `version` (int, optional): The version of this scene configuration. Default: the latest version
 - `wallMaterial` (string, optional): The material (color/texture) for the room's four outer walls. See the [Material List](#material-list) for options. Default (v0.0.3+): `"AI2-THOR/Materials/Walls/DrywallBeige"`
+- `roomMaterials` ([room material config](#room-material-config), optional): The materials for each individual wall.  For any individual wall not provided, or all outer walls if object is not provided, they will use 'wallMaterial' property.
 - `wallProperties` ([physics config](#physics-config), optional): Enable custom friction, bounciness, and/or drag on the walls. Default: see [physics config](#physics-config).
 
 ### Object Config
@@ -253,6 +267,13 @@ Each **vector config** has the following properties:
 - `y` (float, optional)
 - `z` (float, optional)
 
+### Room Material Config
+
+- `left` (string, optional): The material (color/texture) for the room's left outer wall. See the [Material List](#material-list) for options.  If not provided, walls will use 'wallMaterial' property.  Default: none
+- `right` (string, optional): The material (color/texture) for the room's right outer wall. See the [Material List](#material-list) for options.  If not provided, walls will use 'wallMaterial' property.  Default: none
+- `front` (string, optional): The material (color/texture) for the room's front outer wall. See the [Material List](#material-list) for options.  If not provided, walls will use 'wallMaterial' property.  Default: none
+- `back` (string, optional): The material (color/texture) for the room's back outer wall. See the [Material List](#material-list) for options.  If not provided, walls will use 'wallMaterial' property.  Default: none
+
 ## Object List
 
 ### Attributes
diff --git a/machine_common_sense/scenes/hinged_container_example_with_soccer_ball.json b/machine_common_sense/scenes/hinged_container_example_with_soccer_ball.json
new file mode 100644
index 000000000..9c0c68930
--- /dev/null
+++ b/machine_common_sense/scenes/hinged_container_example_with_soccer_ball.json
@@ -0,0 +1,530 @@
+{
+    "name": "hinged_container_example_with_soccer_ball",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": [{
+        "id": "case_1_small",
+        "type": "case_1",
+        "salientMaterials": ["plastic"],
+        "materials": ["AI2-THOR/Materials/Plastics/BlackPlastic"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 3.5,
+                "y": 0,
+                "z": 2
+            },
+            "rotation": {
+                "x": 0,
+                "y": 270,
+                "z": 0
+            },
+            "scale": {
+                "x": 1,
+                "y": 1,
+                "z": 1
+            }
+        }]
+    }, {
+        "id": "case_1_med",
+        "type": "case_1",
+        "salientMaterials": ["metal"],
+        "materials": ["AI2-THOR/Materials/Metals/WhiteMetal"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 3.5,
+                "y": 0,
+                "z": 0.75
+            },
+            "rotation": {
+                "x": 0,
+                "y": 270,
+                "z": 0
+            },
+            "scale": {
+                "x": 2,
+                "y": 2,
+                "z": 2
+            }
+        }]
+    }, {
+        "id": "case_1_large",
+        "type": "case_1",
+        "salientMaterials": ["plastic"],
+        "materials": ["UnityAssetStore/Kindergarten_Interior/Models/Materials/color 1"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 3.5,
+                "y": 0,
+                "z": -1.25
+            },
+            "rotation": {
+                "x": 0,
+                "y": 270,
+                "z": 0
+            },
+            "scale": {
+                "x": 3,
+                "y": 3,
+                "z": 3
+            }
+        }]
+    }, {
+        "id": "case_3_small",
+        "type": "case_3",
+        "salientMaterials": ["plastic"],
+        "materials": ["UnityAssetStore/Kindergarten_Interior/Models/Materials/color 4"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 0.75,
+                "y": 0,
+                "z": 3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 180,
+                "z": 0
+            },
+            "scale": {
+                "x": 1,
+                "y": 1,
+                "z": 1
+            }
+        }]
+    }, {
+        "id": "case_3_large",
+        "type": "case_3",
+        "salientMaterials": ["metal"],
+        "materials": ["AI2-THOR/Materials/Metals/HammeredMetal_AlbedoTransparency 1"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 2.25,
+                "y": 0,
+                "z": 3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 180,
+                "z": 0
+            },
+            "scale": {
+                "x": 2.25,
+                "y": 2.25,
+                "z": 2.25
+            }
+        }]
+    }, {
+        "id": "chest_1_small",
+        "type": "chest_1",
+        "salientMaterials": ["plastic"],
+        "materials": ["UnityAssetStore/Kindergarten_Interior/Models/Materials/color 3"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -3.5,
+                "y": 0,
+                "z": 0.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 90,
+                "z": 0
+            },
+            "scale": {
+                "x": 0.5,
+                "y": 0.5,
+                "z": 0.5
+            }
+        }]
+    }, {
+        "id": "chest_1_med",
+        "type": "chest_1",
+        "salientMaterials": ["wood"],
+        "materials": ["AI2-THOR/Materials/Wood/WornWood"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -3.5,
+                "y": 0,
+                "z": 1.25
+            },
+            "rotation": {
+                "x": 0,
+                "y": 90,
+                "z": 0
+            },
+            "scale": {
+                "x": 0.7,
+                "y": 0.7,
+                "z": 0.7
+            }
+        }]
+    }, {
+        "id": "chest_1_large",
+        "type": "chest_1",
+        "salientMaterials": ["metal"],
+        "materials": ["AI2-THOR/Materials/Metals/Metal"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -3.5,
+                "y": 0,
+                "z": 2.25
+            },
+            "rotation": {
+                "x": 0,
+                "y": 90,
+                "z": 0
+            },
+            "scale": {
+                "x": 1.3,
+                "y": 1.3,
+                "z": 1.3
+            }
+        }]
+    }, {
+        "id": "chest_2_small",
+        "type": "chest_2",
+        "salientMaterials": ["metal"],
+        "materials": ["AI2-THOR/Materials/Metals/BrownMetal 1"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -2.5,
+                "y": 0,
+                "z": 3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 180,
+                "z": 0
+            },
+            "scale": {
+                "x": 0.5,
+                "y": 0.5,
+                "z": 0.5
+            }
+        }]
+    }, {
+        "id": "chest_2_med",
+        "type": "chest_2",
+        "salientMaterials": ["plastic"],
+        "materials": ["UnityAssetStore/Kindergarten_Interior/Models/Materials/color 2"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -1.75,
+                "y": 0,
+                "z": 3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 180,
+                "z": 0
+            },
+            "scale": {
+                "x": 1,
+                "y": 1,
+                "z": 1
+            }
+        }]
+    }, {
+        "id": "chest_2_large",
+        "type": "chest_2",
+        "salientMaterials": ["wood"],
+        "materials": ["AI2-THOR/Materials/Wood/DarkWoodSmooth2"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -0.75,
+                "y": 0,
+                "z": 3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 180,
+                "z": 0
+            },
+            "scale": {
+                "x": 2,
+                "y": 2,
+                "z": 2
+            }
+        }]
+    }, {
+        "id": "chest_3_small",
+        "type": "chest_3",
+        "salientMaterials": ["metal"],
+        "materials": ["AI2-THOR/Materials/Metals/BrushedAluminum_Blue"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 2.5,
+                "y": 0,
+                "z": -3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 0,
+                "z": 0
+            },
+            "scale": {
+                "x": 1,
+                "y": 1,
+                "z": 1
+            }
+        }]
+    }, {
+        "id": "chest_3_med",
+        "type": "chest_3",
+        "salientMaterials": ["plastic"],
+        "materials": ["AI2-THOR/Materials/Plastics/WhitePlastic"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 1.75,
+                "y": 0,
+                "z": -3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 0,
+                "z": 0
+            },
+            "scale": {
+                "x": 1.6,
+                "y": 1.6,
+                "z": 1.6
+            }
+        }]
+    }, {
+        "id": "chest_3_large",
+        "type": "chest_3",
+        "salientMaterials": ["wood"],
+        "materials": ["AI2-THOR/Materials/Wood/WoodGrain_Brown"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 0.75,
+                "y": 0,
+                "z": -3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 0,
+                "z": 0
+            },
+            "scale": {
+                "x": 2.4,
+                "y": 2.4,
+                "z": 2.4
+            }
+        }]
+    }, {
+        "id": "chest_8_small",
+        "type": "chest_8",
+        "salientMaterials": ["wood"],
+        "materials": ["AI2-THOR/Materials/Wood/WoodGrain_Tan"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -0.5,
+                "y": 0,
+                "z": -3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 0,
+                "z": 0
+            },
+            "scale": {
+                "x": 1,
+                "y": 1,
+                "z": 1
+            }
+        }]
+    }, {
+        "id": "chest_8_med",
+        "type": "chest_8",
+        "salientMaterials": ["metal"],
+        "materials": ["AI2-THOR/Materials/Metals/BrushedIron_AlbedoTransparency"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -1.25,
+                "y": 0,
+                "z": -3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 0,
+                "z": 0
+            },
+            "scale": {
+                "x": 1.8,
+                "y": 1.8,
+                "z": 1.8
+            }
+        }]
+    }, {
+        "id": "chest_8_large",
+        "type": "chest_8",
+        "salientMaterials": ["plastic"],
+        "materials": ["AI2-THOR/Materials/Plastics/OrangePlastic"],
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -2.5,
+                "y": 0,
+                "z": -3.5
+            },
+            "rotation": {
+                "x": 0,
+                "y": 0,
+                "z": 0
+            },
+            "scale": {
+                "x": 3,
+                "y": 3,
+                "z": 3
+            }
+        }]
+    }, {
+        "id": "soccer_ball_1",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 3.5,
+                "y": 0.15,
+                "z": 0.75
+            }
+        }]
+    }, {
+        "id": "soccer_ball_2",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 3.5,
+                "y": 0.15,
+                "z": -1.25
+            }
+        }]
+    }, {
+        "id": "soccer_ball_3",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 1.75,
+                "y": 0.15,
+                "z": -3.5
+            }
+        }]
+    }, {
+        "id": "soccer_ball_4",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 0.75,
+                "y": 0.15,
+                "z": -3.5
+            }
+        }]
+    }, {
+        "id": "soccer_ball_5",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -1.25,
+                "y": 0.15,
+                "z": -3.5
+            }
+        }]
+    }, {
+        "id": "soccer_ball_6",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -2.5,
+                "y": 0.15,
+                "z": -3.5
+            }
+        }]
+    }, {
+        "id": "soccer_ball_7",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -3.5,
+                "y": 0.15,
+                "z": 1.25
+            }
+        }]
+    }, {
+        "id": "soccer_ball_8",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -3.5,
+                "y": 0.15,
+                "z": 2.25
+            }
+        }]
+    }, {
+        "id": "soccer_ball_9",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -1.75,
+                "y": 0.15,
+                "z": 3.5
+            }
+        }]
+    }, {
+        "id": "soccer_ball_10",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": -0.75,
+                "y": 0.15,
+                "z": 3.5
+            }
+        }]
+    }, {
+        "id": "soccer_ball_11",
+        "type": "soccer_ball",
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 2.25,
+                "y": 0.15,
+                "z": 3.5
+            }
+        }]
+    }]
+}
diff --git a/machine_common_sense/scenes/hinged_container_example.json b/machine_common_sense/scenes/hinged_container_example_with_trophy.json
similarity index 97%
rename from machine_common_sense/scenes/hinged_container_example.json
rename to machine_common_sense/scenes/hinged_container_example_with_trophy.json
index cb0534bd1..95534a947 100644
--- a/machine_common_sense/scenes/hinged_container_example.json
+++ b/machine_common_sense/scenes/hinged_container_example_with_trophy.json
@@ -1,5 +1,5 @@
 {
-    "name": "hinged_container_example",
+    "name": "hinged_container_example_with_trophy",
     "version": 2,
     "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
     "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
@@ -28,7 +28,7 @@
             },
             "rotation": {
                 "x": 0,
-                "y": 180,
+                "y": 90,
                 "z": 0
             },
             "scale": {
@@ -51,7 +51,7 @@
             },
             "rotation": {
                 "x": 0,
-                "y": 180,
+                "y": 90,
                 "z": 0
             },
             "scale": {
@@ -74,7 +74,7 @@
             },
             "rotation": {
                 "x": 0,
-                "y": 180,
+                "y": 90,
                 "z": 0
             },
             "scale": {
@@ -97,7 +97,7 @@
             },
             "rotation": {
                 "x": 0,
-                "y": 0,
+                "y": 270,
                 "z": 0
             },
             "scale": {
@@ -120,7 +120,7 @@
             },
             "rotation": {
                 "x": 0,
-                "y": 0,
+                "y": 270,
                 "z": 0
             },
             "scale": {
@@ -143,7 +143,7 @@
             },
             "rotation": {
                 "x": 0,
-                "y": 0,
+                "y": 270,
                 "z": 0
             },
             "scale": {
diff --git a/machine_common_sense/scenes/soccer_ball_retrieval_example.json b/machine_common_sense/scenes/retrieval_goal_example_with_soccer_ball.json
similarity index 94%
rename from machine_common_sense/scenes/soccer_ball_retrieval_example.json
rename to machine_common_sense/scenes/retrieval_goal_example_with_soccer_ball.json
index 59b5cd153..6fc456638 100644
--- a/machine_common_sense/scenes/soccer_ball_retrieval_example.json
+++ b/machine_common_sense/scenes/retrieval_goal_example_with_soccer_ball.json
@@ -1,5 +1,5 @@
 {
-    "name": "soccer_ball_retrieval_example",
+    "name": "retrieval_goal_example_with_soccer_ball",
     "version": 2,
     "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
     "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
diff --git a/machine_common_sense/scenes/trophy_retrieval_example.json b/machine_common_sense/scenes/retrieval_goal_example_with_trophy.json
similarity index 94%
rename from machine_common_sense/scenes/trophy_retrieval_example.json
rename to machine_common_sense/scenes/retrieval_goal_example_with_trophy.json
index bc77c7f93..852cb00fc 100644
--- a/machine_common_sense/scenes/trophy_retrieval_example.json
+++ b/machine_common_sense/scenes/retrieval_goal_example_with_trophy.json
@@ -1,5 +1,5 @@
 {
-    "name": "trophy_retrieval_example",
+    "name": "retrieval_goal_example_with_trophy",
     "version": 2,
     "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
     "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
diff --git a/machine_common_sense/scenes/template_12_by_8.json b/machine_common_sense/scenes/template_12_by_8.json
new file mode 100644
index 000000000..01972493f
--- /dev/null
+++ b/machine_common_sense/scenes/template_12_by_8.json
@@ -0,0 +1,23 @@
+﻿{
+    "name": "template_12_by_8",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "roomDimensions": {
+        "x": 12,
+        "y": 4,
+        "z": 8
+    },
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": []
+}
diff --git a/machine_common_sense/scenes/template_2_by_4.json b/machine_common_sense/scenes/template_2_by_4.json
new file mode 100644
index 000000000..4838eff33
--- /dev/null
+++ b/machine_common_sense/scenes/template_2_by_4.json
@@ -0,0 +1,23 @@
+﻿{
+    "name": "template_2_by_4",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "roomDimensions": {
+        "x": 2,
+        "y": 2,
+        "z": 4
+    },
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": []
+}
diff --git a/machine_common_sense/scenes/template_frozen_after_10_steps.json b/machine_common_sense/scenes/template_frozen_after_10_steps.json
new file mode 100644
index 000000000..b8a6a88e9
--- /dev/null
+++ b/machine_common_sense/scenes/template_frozen_after_10_steps.json
@@ -0,0 +1,24 @@
+{
+    "name": "template_frozen_after_10_steps",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": [],
+    "goal": {
+        "action_list": [
+            [],[],[],[],[],[],[],[],[],[],
+            ["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"]
+        ]
+    }
+}
diff --git a/machine_common_sense/scenes/template_frozen_first_10_steps.json b/machine_common_sense/scenes/template_frozen_first_10_steps.json
new file mode 100644
index 000000000..c21e08dc4
--- /dev/null
+++ b/machine_common_sense/scenes/template_frozen_first_10_steps.json
@@ -0,0 +1,21 @@
+{
+    "name": "template_frozen_first_10_steps",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": [],
+    "goal": {
+        "action_list": [["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"]]
+    }
+}
diff --git a/machine_common_sense/scenes/template_individually_colored_walls.json b/machine_common_sense/scenes/template_individually_colored_walls.json
new file mode 100644
index 000000000..b1da197e2
--- /dev/null
+++ b/machine_common_sense/scenes/template_individually_colored_walls.json
@@ -0,0 +1,23 @@
+{
+    "name": "template_individually_colored_walls",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "roomMaterials": {
+        "left": "AI2-THOR/Materials/Walls/DrywallGreen",
+        "front": "AI2-THOR/Materials/Walls/RedDrywall",
+        "right": "AI2-THOR/Materials/Walls/EggshellDrywall",
+        "back": "AI2-THOR/Materials/Walls/DrywallOrange"
+    },
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": []
+}
diff --git a/machine_common_sense/scenes/template_interactive_object_permanence_scene.json b/machine_common_sense/scenes/template_interactive_object_permanence_scene.json
new file mode 100644
index 000000000..24f9dd546
--- /dev/null
+++ b/machine_common_sense/scenes/template_interactive_object_permanence_scene.json
@@ -0,0 +1,146 @@
+{
+    "name": "template_interactive_object_permanence_scene",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "roomDimensions": {
+        "x": 10,
+        "y": 5,
+        "z": 10
+    },
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "y": 2,
+            "z": -4.5 
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0,
+            "z": 0
+        }
+    },
+    "objects": [
+        {
+            "id": "throwing_mechanism_left",
+            "type": "tube_wide",
+            "materials": ["AI2-THOR/Materials/Metals/Metal"],
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": -4.85,
+                    "y": 4.75,
+                    "z": 4.5
+                },
+                "rotation": {
+                    "x": 0,
+                    "y": 0,
+                    "z": 90
+                },
+                "scale": {
+                    "x": 0.275,
+                    "y": 0.3,
+                    "z": 0.275
+                }
+            }]
+        },
+        {
+            "id": "throwing_mechanism_right",
+            "type": "tube_wide",
+            "materials": ["AI2-THOR/Materials/Metals/Metal"],
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 4.85,
+                    "y": 4.75,
+                    "z": 4.5
+                },
+                "rotation": {
+                    "x": 0,
+                    "y": 0,
+                    "z": 90
+                },
+                "scale": {
+                    "x": 0.275,
+                    "y": 0.3,
+                    "z": 0.275
+                }
+            }],
+            "states": [
+                ["held"],["held"],["held"],["held"],["held"],["held"],["held"],["held"],["held"],["held"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"]
+            ]
+        },
+        {
+            "id": "soccer_ball",
+            "type": "soccer_ball",
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 4.85,
+                    "y": 4.85,
+                    "z": 4.5
+                }
+            }],
+            "forces": [{
+                "stepBegin": 5,
+                "stepEnd": 5,
+                "vector": {
+                    "x": -700,
+                    "y": 0,
+                    "z": 0
+                }
+            }]
+        },
+        {
+            "id": "platform_bisecting",
+            "type": "cube",
+            "materials": ["AI2-THOR/Materials/Plastics/WhitePlastic"],
+            "physics": true,
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 0,
+                    "y": 0.4,
+                    "z": 0
+                },
+                "scale": {
+                    "x": 1,
+                    "y": 0.8,
+                    "z": 10
+                }
+            }]
+        }
+    ],
+    "goal": {
+        "action_list": [
+            ["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],
+            ["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],
+            ["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],
+            ["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],["Pass"]
+        ],
+        "category": "retrieval",
+        "description": "Find and pick up the soccer ball.",
+        "metadata": {
+            "target": {
+                "id": "soccer_ball",
+                "image": null
+            }
+        }
+    }
+}
diff --git a/machine_common_sense/scenes/template_kidnapping.json b/machine_common_sense/scenes/template_kidnapping.json
new file mode 100644
index 000000000..b431c076d
--- /dev/null
+++ b/machine_common_sense/scenes/template_kidnapping.json
@@ -0,0 +1,25 @@
+{
+    "name": "template_kidnapping",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": [],
+    "goal": {
+        "action_list": [
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            ["EndHabituation,xPosition=0,zPosition=0,yRotation=45"]
+        ]
+    }
+}
diff --git a/machine_common_sense/scenes/template_kidnapping_then_frozen.json b/machine_common_sense/scenes/template_kidnapping_then_frozen.json
new file mode 100644
index 000000000..6eedddccb
--- /dev/null
+++ b/machine_common_sense/scenes/template_kidnapping_then_frozen.json
@@ -0,0 +1,56 @@
+{
+    "name": "template_kidnapping_then_frozen",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": [],
+    "goal": {
+        "action_list": [
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
+            [],[],[],[],[],[],[],[],[],[],
+            ["EndHabituation,xPosition=0,zPosition=0,yRotation=45"],
+            ["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],
+            ["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],
+            ["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],
+            ["Pass"],["Pass"],["Pass"],["Pass"],["Pass"],
+            ["EndHabituation,xPosition=0,zPosition=0,yRotation=90"]
+        ]
+    }
+}
diff --git a/machine_common_sense/scenes/template_mechanism_dropping_soccer_ball.json b/machine_common_sense/scenes/template_mechanism_dropping_soccer_ball.json
new file mode 100644
index 000000000..02ac21072
--- /dev/null
+++ b/machine_common_sense/scenes/template_mechanism_dropping_soccer_ball.json
@@ -0,0 +1,97 @@
+{
+    "name": "template_mechanism_dropping_soccer_ball",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "y": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": -10,
+            "y": 45,
+            "z": 0
+        }
+    },
+    "objects": [
+        {
+            "id": "dropping_mechanism",
+            "type": "tube_wide",
+            "materials": ["AI2-THOR/Materials/Metals/Metal"],
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 4,
+                    "y": 2.85,
+                    "z": 4
+                },
+                "rotation": {
+                    "x": 0,
+                    "y": 0,
+                    "z": 0
+                },
+                "scale": {
+                    "x": 0.275,
+                    "y": 0.3,
+                    "z": 0.275
+                }
+            }],
+            "states": [
+                ["held"],["held"],["held"],["held"],["held"],["held"],["held"],["held"],["held"],["held"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"]
+            ]
+        },
+        {
+            "id": "soccer_ball",
+            "type": "soccer_ball",
+            "kinematic": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 4,
+                    "y": 2.85,
+                    "z": 4
+                }
+            }],
+            "togglePhysics": [{
+                "stepBegin": 10
+            }]
+        },
+        {
+            "id": "chest",
+            "type": "chest_2",
+            "opened": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 4,
+                    "y": 0,
+                    "z": 4
+                },
+                "rotation": {
+                    "x": 0,
+                    "y": 225,
+                    "z": 0
+                },
+                "scale": {
+                    "x": 1.5,
+                    "y": 1.5,
+                    "z": 1.5
+                }
+            }]
+        }
+    ]
+}
diff --git a/machine_common_sense/scenes/template_mechanism_throwing_soccer_ball.json b/machine_common_sense/scenes/template_mechanism_throwing_soccer_ball.json
new file mode 100644
index 000000000..b3d335c86
--- /dev/null
+++ b/machine_common_sense/scenes/template_mechanism_throwing_soccer_ball.json
@@ -0,0 +1,104 @@
+{
+    "name": "template_mechanism_throwing_soccer_ball",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "y": 0,
+            "z": -4.5 
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0,
+            "z": 0
+        }
+    },
+    "objects": [
+        {
+            "id": "throwing_mechanism_left",
+            "type": "tube_wide",
+            "materials": ["AI2-THOR/Materials/Metals/Metal"],
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": -4.85,
+                    "y": 2.75,
+                    "z": 4.5
+                },
+                "rotation": {
+                    "x": 0,
+                    "y": 0,
+                    "z": 90
+                },
+                "scale": {
+                    "x": 0.275,
+                    "y": 0.3,
+                    "z": 0.275
+                }
+            }]
+        },
+        {
+            "id": "throwing_mechanism_right",
+            "type": "tube_wide",
+            "materials": ["AI2-THOR/Materials/Metals/Metal"],
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 4.85,
+                    "y": 2.75,
+                    "z": 4.5
+                },
+                "rotation": {
+                    "x": 0,
+                    "y": 0,
+                    "z": 90
+                },
+                "scale": {
+                    "x": 0.275,
+                    "y": 0.3,
+                    "z": 0.275
+                }
+            }],
+            "states": [
+                ["held"],["held"],["held"],["held"],["held"],["held"],["held"],["held"],["held"],["held"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],
+                ["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"],["released"]
+            ]
+        },
+        {
+            "id": "soccer_ball",
+            "type": "soccer_ball",
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 4.85,
+                    "y": 2.85,
+                    "z": 4.5
+                }
+            }],
+            "forces": [{
+                "stepBegin": 10,
+                "stepEnd": 10,
+                "vector": {
+                    "x": -700,
+                    "y": 0,
+                    "z": 0
+                }
+            }]
+        }
+    ]
+}
diff --git a/machine_common_sense/scenes/template_platform_bisecting.json b/machine_common_sense/scenes/template_platform_bisecting.json
new file mode 100644
index 000000000..5de9a3999
--- /dev/null
+++ b/machine_common_sense/scenes/template_platform_bisecting.json
@@ -0,0 +1,42 @@
+{
+    "name": "template_platform_bisecting",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "y": 2,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0,
+            "z": 0
+        }
+    },
+    "objects": [
+        {
+            "id": "platform_bisecting",
+            "type": "cube",
+            "materials": ["AI2-THOR/Materials/Wood/WornWood"],
+            "physics": true,
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 0,
+                    "y": 0.4,
+                    "z": 0
+                },
+                "scale": {
+                    "x": 1,
+                    "y": 0.8,
+                    "z": 10
+                }
+            }]
+        }
+    ]
+}
diff --git a/machine_common_sense/scenes/template_platform_independent.json b/machine_common_sense/scenes/template_platform_independent.json
new file mode 100644
index 000000000..0645437f3
--- /dev/null
+++ b/machine_common_sense/scenes/template_platform_independent.json
@@ -0,0 +1,42 @@
+{
+    "name": "template_platform_independent",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/Carpet4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/DrywallBeige",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "y": 2,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0,
+            "z": 0
+        }
+    },
+    "objects": [
+        {
+            "id": "platform_independent",
+            "type": "cube",
+            "materials": ["AI2-THOR/Materials/Ceramics/GREYGRANITE"],
+            "physics": true,
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 0,
+                    "y": 0.5,
+                    "z": 0
+                },
+                "scale": {
+                    "x": 2,
+                    "y": 1,
+                    "z": 2
+                }
+            }]
+        }
+    ]
+}
diff --git a/machine_common_sense/scenes/videos/hinged_container_example.gif b/machine_common_sense/scenes/videos/hinged_container_example.gif
deleted file mode 100644
index 14ab1f466..000000000
Binary files a/machine_common_sense/scenes/videos/hinged_container_example.gif and /dev/null differ
diff --git a/machine_common_sense/scenes/videos/hinged_container_example.mp4 b/machine_common_sense/scenes/videos/hinged_container_example.mp4
deleted file mode 100644
index bf4ce9783..000000000
Binary files a/machine_common_sense/scenes/videos/hinged_container_example.mp4 and /dev/null differ
diff --git a/machine_common_sense/scenes/videos/hinged_container_example_with_soccer_ball.gif b/machine_common_sense/scenes/videos/hinged_container_example_with_soccer_ball.gif
new file mode 100644
index 000000000..26c775625
Binary files /dev/null and b/machine_common_sense/scenes/videos/hinged_container_example_with_soccer_ball.gif differ
diff --git a/machine_common_sense/scenes/videos/hinged_container_example_with_soccer_ball.mp4 b/machine_common_sense/scenes/videos/hinged_container_example_with_soccer_ball.mp4
new file mode 100644
index 000000000..dd88852d7
Binary files /dev/null and b/machine_common_sense/scenes/videos/hinged_container_example_with_soccer_ball.mp4 differ
diff --git a/machine_common_sense/scenes/videos/hinged_container_example_with_trophy.gif b/machine_common_sense/scenes/videos/hinged_container_example_with_trophy.gif
new file mode 100644
index 000000000..9ea637efe
Binary files /dev/null and b/machine_common_sense/scenes/videos/hinged_container_example_with_trophy.gif differ
diff --git a/machine_common_sense/scenes/videos/hinged_container_example_with_trophy.mp4 b/machine_common_sense/scenes/videos/hinged_container_example_with_trophy.mp4
new file mode 100644
index 000000000..c5139e2e8
Binary files /dev/null and b/machine_common_sense/scenes/videos/hinged_container_example_with_trophy.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_12_by_8.gif b/machine_common_sense/scenes/videos/template_12_by_8.gif
new file mode 100644
index 000000000..0f4f3e0b4
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_12_by_8.gif differ
diff --git a/machine_common_sense/scenes/videos/template_12_by_8.mp4 b/machine_common_sense/scenes/videos/template_12_by_8.mp4
new file mode 100644
index 000000000..b0e38f929
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_12_by_8.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_2_by_4.gif b/machine_common_sense/scenes/videos/template_2_by_4.gif
new file mode 100644
index 000000000..0089781f1
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_2_by_4.gif differ
diff --git a/machine_common_sense/scenes/videos/template_2_by_4.mp4 b/machine_common_sense/scenes/videos/template_2_by_4.mp4
new file mode 100644
index 000000000..5e77b285d
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_2_by_4.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_frozen_after_10_steps.gif b/machine_common_sense/scenes/videos/template_frozen_after_10_steps.gif
new file mode 100644
index 000000000..22d28eadd
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_frozen_after_10_steps.gif differ
diff --git a/machine_common_sense/scenes/videos/template_frozen_after_10_steps.mp4 b/machine_common_sense/scenes/videos/template_frozen_after_10_steps.mp4
new file mode 100644
index 000000000..eaee5e9a9
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_frozen_after_10_steps.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_frozen_first_10_steps.gif b/machine_common_sense/scenes/videos/template_frozen_first_10_steps.gif
new file mode 100644
index 000000000..98557a1c9
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_frozen_first_10_steps.gif differ
diff --git a/machine_common_sense/scenes/videos/template_frozen_first_10_steps.mp4 b/machine_common_sense/scenes/videos/template_frozen_first_10_steps.mp4
new file mode 100644
index 000000000..ba6d48a12
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_frozen_first_10_steps.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_individually_colored_walls.gif b/machine_common_sense/scenes/videos/template_individually_colored_walls.gif
new file mode 100644
index 000000000..eb0ee6e46
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_individually_colored_walls.gif differ
diff --git a/machine_common_sense/scenes/videos/template_individually_colored_walls.mp4 b/machine_common_sense/scenes/videos/template_individually_colored_walls.mp4
new file mode 100644
index 000000000..91147352a
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_individually_colored_walls.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_interactive_object_permanence_scene.gif b/machine_common_sense/scenes/videos/template_interactive_object_permanence_scene.gif
new file mode 100644
index 000000000..b4296b078
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_interactive_object_permanence_scene.gif differ
diff --git a/machine_common_sense/scenes/videos/template_interactive_object_permanence_scene.mp4 b/machine_common_sense/scenes/videos/template_interactive_object_permanence_scene.mp4
new file mode 100644
index 000000000..24e42e7bf
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_interactive_object_permanence_scene.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_kidnapping.gif b/machine_common_sense/scenes/videos/template_kidnapping.gif
new file mode 100644
index 000000000..e40275341
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_kidnapping.gif differ
diff --git a/machine_common_sense/scenes/videos/template_kidnapping.mp4 b/machine_common_sense/scenes/videos/template_kidnapping.mp4
new file mode 100644
index 000000000..c94a9d81d
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_kidnapping.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_kidnapping_then_frozen.gif b/machine_common_sense/scenes/videos/template_kidnapping_then_frozen.gif
new file mode 100644
index 000000000..8022b538e
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_kidnapping_then_frozen.gif differ
diff --git a/machine_common_sense/scenes/videos/template_kidnapping_then_frozen.mp4 b/machine_common_sense/scenes/videos/template_kidnapping_then_frozen.mp4
new file mode 100644
index 000000000..4a6096fc3
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_kidnapping_then_frozen.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_mechanism_dropping_soccer_ball.gif b/machine_common_sense/scenes/videos/template_mechanism_dropping_soccer_ball.gif
new file mode 100644
index 000000000..c48f600ad
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_mechanism_dropping_soccer_ball.gif differ
diff --git a/machine_common_sense/scenes/videos/template_mechanism_dropping_soccer_ball.mp4 b/machine_common_sense/scenes/videos/template_mechanism_dropping_soccer_ball.mp4
new file mode 100644
index 000000000..5af33351a
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_mechanism_dropping_soccer_ball.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_mechanism_throwing_soccer_ball.gif b/machine_common_sense/scenes/videos/template_mechanism_throwing_soccer_ball.gif
new file mode 100644
index 000000000..464233194
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_mechanism_throwing_soccer_ball.gif differ
diff --git a/machine_common_sense/scenes/videos/template_mechanism_throwing_soccer_ball.mp4 b/machine_common_sense/scenes/videos/template_mechanism_throwing_soccer_ball.mp4
new file mode 100644
index 000000000..719963fbb
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_mechanism_throwing_soccer_ball.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_platform_bisecting.gif b/machine_common_sense/scenes/videos/template_platform_bisecting.gif
new file mode 100644
index 000000000..87e8e3010
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_platform_bisecting.gif differ
diff --git a/machine_common_sense/scenes/videos/template_platform_bisecting.mp4 b/machine_common_sense/scenes/videos/template_platform_bisecting.mp4
new file mode 100644
index 000000000..dcdbdc9cf
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_platform_bisecting.mp4 differ
diff --git a/machine_common_sense/scenes/videos/template_platform_independent.gif b/machine_common_sense/scenes/videos/template_platform_independent.gif
new file mode 100644
index 000000000..678c6f56f
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_platform_independent.gif differ
diff --git a/machine_common_sense/scenes/videos/template_platform_independent.mp4 b/machine_common_sense/scenes/videos/template_platform_independent.mp4
new file mode 100644
index 000000000..86c331367
Binary files /dev/null and b/machine_common_sense/scenes/videos/template_platform_independent.mp4 differ
diff --git a/machine_common_sense/util.py b/machine_common_sense/util.py
index 0abc4f6da..6722e5251 100644
--- a/machine_common_sense/util.py
+++ b/machine_common_sense/util.py
@@ -70,11 +70,12 @@ def generate_pretty_object_output(object_list):
             "SHAPE",
             "COLORS",
             "HELD",
+            "VISIBLE",
+            "STATE",
             "POSITION (WORLD)",
-            "DIMENSIONS (WORLD)",
             "DISTANCE (WORLD)",
             "DIRECTION (WORLD)",
-            "STATE"
+            "DIMENSIONS (WORLD)"
         ]
         rows = [titles] + [
             [
@@ -84,12 +85,16 @@ def generate_pretty_object_output(object_list):
                 if(metadata.texture_color_list is not None)
                 else metadata.texture_color_list,
                 metadata.held,
+                metadata.visible,
+                ", ".join(metadata.state_list)
+                if(metadata.state_list is not None) else metadata.state_list,
                 Util.vector_to_string(metadata.position),
-                Util.vector_to_string(metadata.dimensions),
                 metadata.distance_in_world,
                 Util.vector_to_string(metadata.direction),
-                ", ".join(metadata.state_list)
-                if(metadata.state_list is not None) else metadata.state_list
+                ("[" + ", ".join([
+                    Util.vector_to_string(corner) for corner
+                    in metadata.dimensions
+                ]) + "]") if metadata.dimensions else None
             ]
             for metadata in object_list
         ]
diff --git a/requirements.txt b/requirements.txt
index 1a5294997..9527e72f3 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-git+https://github.com/NextCenturyCorporation/ai2thor@0.4.0#egg=ai2thor
+ai2thor==2.5.0
 alabaster==0.7.12
 autopep8==1.5.4
 Babel==2.8.0
@@ -21,7 +21,7 @@ opencv-python==4.4.0.44
 packaging==20.4
 pre-commit==2.7.1
 purepng==0.2.0
-Pygments==2.6.1
+Pygments==2.7.4
 pyparsing==2.4.7
 pytz==2020.1
 recommonmark==0.6.0
diff --git a/scripts/run_action_file.py b/scripts/run_action_file.py
new file mode 100644
index 000000000..1d0088b86
--- /dev/null
+++ b/scripts/run_action_file.py
@@ -0,0 +1,42 @@
+import machine_common_sense as mcs
+
+from runner_script import SingleFileRunnerScript
+
+
+action_list = []
+
+
+class ActionFileRunnerScript(SingleFileRunnerScript):
+    def read_subclass_args(self, parser):
+        parser.add_argument(
+            'mcs_scene_filename',
+            help='Filename of MCS scene to run'
+        )
+        parser.add_argument(
+            'action_filename',
+            help='Filename of MCS actions to run'
+        )
+        args = parser.parse_args()
+        return args, [args.mcs_scene_filename]
+
+
+def action_callback(scene_data, step_metadata, runner_script):
+    if not action_list:
+        with open(runner_script.args.action_filename, 'r') as action_file:
+            for line in action_file:
+                action_list.append(line.strip())
+
+    if len(action_list) <= step_metadata.step_number:
+        return None, None
+
+    return mcs.Util.input_to_action_and_params(
+        action_list[step_metadata.step_number]
+    )
+
+
+def main():
+    ActionFileRunnerScript('Action File', action_callback)
+
+
+if __name__ == "__main__":
+    main()
diff --git a/scripts/run_interactive_scenes.py b/scripts/run_interactive_scenes.py
index 845cc9266..38d6396ea 100644
--- a/scripts/run_interactive_scenes.py
+++ b/scripts/run_interactive_scenes.py
@@ -1,7 +1,7 @@
 from runner_script import MultipleFileRunnerScript
 
 
-def action_callback(scene_data, step_metadata):
+def action_callback(scene_data, step_metadata, runner_script):
     if step_metadata.step_number <= 36:
         return 'RotateRight', {}
     return None, None
diff --git a/scripts/run_just_pass.py b/scripts/run_just_pass.py
index a0eae146c..e478179d8 100644
--- a/scripts/run_just_pass.py
+++ b/scripts/run_just_pass.py
@@ -1,7 +1,7 @@
 from runner_script import SingleFileRunnerScript
 
 
-def action_callback(scene_data, step_metadata):
+def action_callback(scene_data, step_metadata, runner_script):
     last_step = 60
     if 'goal' in scene_data.keys():
         if 'last_step' in scene_data['goal'].keys():
diff --git a/scripts/run_just_rotate.py b/scripts/run_just_rotate.py
index b3f55597d..35208386e 100644
--- a/scripts/run_just_rotate.py
+++ b/scripts/run_just_rotate.py
@@ -1,7 +1,7 @@
 from runner_script import SingleFileRunnerScript
 
 
-def action_callback(scene_data, step_metadata):
+def action_callback(scene_data, step_metadata, runner_script):
     if step_metadata.step_number <= 36:
         return 'RotateRight', {}
     return None, None
diff --git a/scripts/run_last_action.py b/scripts/run_last_action.py
index 01e57263e..843478f22 100644
--- a/scripts/run_last_action.py
+++ b/scripts/run_last_action.py
@@ -3,7 +3,7 @@
 import machine_common_sense as mcs
 
 
-def action_callback(scene_data, step_metadata):
+def action_callback(scene_data, step_metadata, runner_script):
     last_step = 60
     if 'goal' in scene_data.keys():
         if 'last_step' in scene_data['goal'].keys():
diff --git a/scripts/run_passive_scenes.py b/scripts/run_passive_scenes.py
index 3f3fd8baf..d3c1aceb1 100644
--- a/scripts/run_passive_scenes.py
+++ b/scripts/run_passive_scenes.py
@@ -3,7 +3,7 @@
 import machine_common_sense as mcs
 
 
-def action_callback(scene_data, step_metadata):
+def action_callback(scene_data, step_metadata, runner_script):
     last_step = 60
     if 'goal' in scene_data.keys():
         if 'last_step' in scene_data['goal'].keys():
diff --git a/scripts/runner_script.py b/scripts/runner_script.py
index d4bd8596c..772a2ad98 100644
--- a/scripts/runner_script.py
+++ b/scripts/runner_script.py
@@ -148,13 +148,13 @@ def run_scene(self, controller, filename, action_callback, rename):
             )
 
         step_metadata = controller.start_scene(scene_data)
-        action, params = action_callback(scene_data, step_metadata)
+        action, params = action_callback(scene_data, step_metadata, self)
 
         while action is not None:
             step_metadata = controller.step(action, **params)
             if step_metadata is None:
                 break
-            action, params = action_callback(scene_data, step_metadata)
+            action, params = action_callback(scene_data, step_metadata, self)
 
         controller.end_scene("", 1)
 
diff --git a/setup.py b/setup.py
index d57914a4d..576245ce1 100644
--- a/setup.py
+++ b/setup.py
@@ -38,9 +38,7 @@ def get_version():
         'opencv-python>=4.0',
         'matplotlib>=3.3',
         'msgpack>=1.0.0',
-        ('ai2thor @ '
-         'git+https://github.com/NextCenturyCorporation/ai2thor'
-         '@0.4.0#egg=ai2thor')
+        'ai2thor==2.5.0'
     ],
     entry_points={
         'console_scripts': [


Test patch:
diff --git a/integration_tests/data/011.move_into_light_object.actions.txt b/integration_tests/data/011.move_into_light_object.actions.txt
index 8640593f6..a037f3f9e 100644
--- a/integration_tests/data/011.move_into_light_object.actions.txt
+++ b/integration_tests/data/011.move_into_light_object.actions.txt
@@ -14,7 +14,3 @@ Pass
 Pass
 Pass
 Pass
-Pass
-Pass
-Pass
-Pass
diff --git a/integration_tests/data/011.move_into_light_object.level1.outputs.json b/integration_tests/data/011.move_into_light_object.level1.outputs.json
index 7cf808f56..7ada254ba 100644
--- a/integration_tests/data/011.move_into_light_object.level1.outputs.json
+++ b/integration_tests/data/011.move_into_light_object.level1.outputs.json
@@ -151,40 +151,4 @@
     "rotation_y": null,
     "objects_count": 0,
     "structural_objects_count": 0
-}, {
-    "step_number": 17,
-    "head_tilt": 0,
-    "position_x": null,
-    "position_z": null,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": null,
-    "objects_count": 0,
-    "structural_objects_count": 0
-}, {
-    "step_number": 18,
-    "head_tilt": 0,
-    "position_x": null,
-    "position_z": null,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": null,
-    "objects_count": 0,
-    "structural_objects_count": 0
-}, {
-    "step_number": 19,
-    "head_tilt": 0,
-    "position_x": null,
-    "position_z": null,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": null,
-    "objects_count": 0,
-    "structural_objects_count": 0
-}, {
-    "step_number": 20,
-    "head_tilt": 0,
-    "position_x": null,
-    "position_z": null,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": null,
-    "objects_count": 0,
-    "structural_objects_count": 0
 }]
diff --git a/integration_tests/data/011.move_into_light_object.level2.outputs.json b/integration_tests/data/011.move_into_light_object.level2.outputs.json
index 7cf808f56..7ada254ba 100644
--- a/integration_tests/data/011.move_into_light_object.level2.outputs.json
+++ b/integration_tests/data/011.move_into_light_object.level2.outputs.json
@@ -151,40 +151,4 @@
     "rotation_y": null,
     "objects_count": 0,
     "structural_objects_count": 0
-}, {
-    "step_number": 17,
-    "head_tilt": 0,
-    "position_x": null,
-    "position_z": null,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": null,
-    "objects_count": 0,
-    "structural_objects_count": 0
-}, {
-    "step_number": 18,
-    "head_tilt": 0,
-    "position_x": null,
-    "position_z": null,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": null,
-    "objects_count": 0,
-    "structural_objects_count": 0
-}, {
-    "step_number": 19,
-    "head_tilt": 0,
-    "position_x": null,
-    "position_z": null,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": null,
-    "objects_count": 0,
-    "structural_objects_count": 0
-}, {
-    "step_number": 20,
-    "head_tilt": 0,
-    "position_x": null,
-    "position_z": null,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": null,
-    "objects_count": 0,
-    "structural_objects_count": 0
 }]
diff --git a/integration_tests/data/011.move_into_light_object.oracle.outputs.json b/integration_tests/data/011.move_into_light_object.oracle.outputs.json
index 2bcadabb9..dfdf673b0 100644
--- a/integration_tests/data/011.move_into_light_object.oracle.outputs.json
+++ b/integration_tests/data/011.move_into_light_object.oracle.outputs.json
@@ -105,9 +105,9 @@
         "objects": [
             {
                 "direction_x": 0.0,
-                "direction_y": -0.74,
-                "direction_z": 0.673,
-                "distance": 0.692,
+                "direction_y": -0.751,
+                "direction_z": 0.66,
+                "distance": 0.682,
                 "held": false,
                 "id": "testBall",
                 "mass": 1.9,
@@ -115,7 +115,7 @@
                     "RUBBER"
                 ],
                 "position_x": 0.0,
-                "position_z": 1.26598835,
+                "position_z": 1.25,
                 "shape": "ball",
                 "texture_color_list": [
                     "blue"
@@ -136,9 +136,9 @@
         "objects": [
             {
                 "direction_x": 0.0,
-                "direction_y": -0.739,
-                "direction_z": 0.673,
-                "distance": 0.692,
+                "direction_y": -0.751,
+                "direction_z": 0.66,
+                "distance": 0.682,
                 "held": false,
                 "id": "testBall",
                 "mass": 1.9,
@@ -146,7 +146,7 @@
                     "RUBBER"
                 ],
                 "position_x": 0.0,
-                "position_z": 1.36610091,
+                "position_z": 1.35,
                 "shape": "ball",
                 "texture_color_list": [
                     "blue"
@@ -167,9 +167,9 @@
         "objects": [
             {
                 "direction_x": 0.0,
-                "direction_y": -0.739,
-                "direction_z": 0.673,
-                "distance": 0.692,
+                "direction_y": -0.751,
+                "direction_z": 0.66,
+                "distance": 0.682,
                 "held": false,
                 "id": "testBall",
                 "mass": 1.9,
@@ -177,7 +177,7 @@
                     "RUBBER"
                 ],
                 "position_x": 0.0,
-                "position_z": 1.46623015,
+                "position_z": 1.45,
                 "shape": "ball",
                 "texture_color_list": [
                     "blue"
@@ -198,9 +198,9 @@
         "objects": [
             {
                 "direction_x": 0.0,
-                "direction_y": -0.737,
-                "direction_z": 0.676,
-                "distance": 0.695,
+                "direction_y": -0.748,
+                "direction_z": 0.663,
+                "distance": 0.684,
                 "held": false,
                 "id": "testBall",
                 "mass": 1.9,
@@ -208,7 +208,7 @@
                     "RUBBER"
                 ],
                 "position_x": 0.0,
-                "position_z": 1.47010207,
+                "position_z": 1.454,
                 "shape": "ball",
                 "texture_color_list": [
                     "blue"
@@ -229,9 +229,9 @@
         "objects": [
             {
                 "direction_x": 0.0,
-                "direction_y": -0.733,
-                "direction_z": 0.68,
-                "distance": 0.698,
+                "direction_y": -0.745,
+                "direction_z": 0.667,
+                "distance": 0.688,
                 "held": false,
                 "id": "testBall",
                 "mass": 1.9,
@@ -239,7 +239,7 @@
                     "RUBBER"
                 ],
                 "position_x": 0.0,
-                "position_z": 1.474984,
+                "position_z": 1.459,
                 "shape": "ball",
                 "texture_color_list": [
                     "blue"
@@ -260,9 +260,9 @@
         "objects": [
             {
                 "direction_x": 0.0,
-                "direction_y": -0.73,
-                "direction_z": 0.684,
-                "distance": 0.702,
+                "direction_y": -0.741,
+                "direction_z": 0.671,
+                "distance": 0.691,
                 "held": false,
                 "id": "testBall",
                 "mass": 1.9,
@@ -270,7 +270,7 @@
                     "RUBBER"
                 ],
                 "position_x": 0.0,
-                "position_z": 1.47983062,
+                "position_z": 1.464,
                 "shape": "ball",
                 "texture_color_list": [
                     "blue"
@@ -291,9 +291,9 @@
         "objects": [
             {
                 "direction_x": 0.0,
-                "direction_y": -0.726,
-                "direction_z": 0.687,
-                "distance": 0.705,
+                "direction_y": -0.738,
+                "direction_z": 0.675,
+                "distance": 0.694,
                 "held": false,
                 "id": "testBall",
                 "mass": 1.9,
@@ -301,7 +301,7 @@
                     "RUBBER"
                 ],
                 "position_x": 0.0,
-                "position_z": 1.48464346,
+                "position_z": 1.468,
                 "shape": "ball",
                 "texture_color_list": [
                     "blue"
@@ -322,9 +322,9 @@
         "objects": [
             {
                 "direction_x": 0.0,
-                "direction_y": -0.723,
-                "direction_z": 0.691,
-                "distance": 0.708,
+                "direction_y": -0.734,
+                "direction_z": 0.679,
+                "distance": 0.697,
                 "held": false,
                 "id": "testBall",
                 "mass": 1.9,
@@ -332,7 +332,7 @@
                     "RUBBER"
                 ],
                 "position_x": 0.0,
-                "position_z": 1.48942125,
+                "position_z": 1.473,
                 "shape": "ball",
                 "texture_color_list": [
                     "blue"
@@ -353,9 +353,9 @@
         "objects": [
             {
                 "direction_x": 0.0,
-                "direction_y": -0.72,
-                "direction_z": 0.694,
-                "distance": 0.712,
+                "direction_y": -0.731,
+                "direction_z": 0.682,
+                "distance": 0.7,
                 "held": false,
                 "id": "testBall",
                 "mass": 1.9,
@@ -363,7 +363,7 @@
                     "RUBBER"
                 ],
                 "position_x": 0.0,
-                "position_z": 1.49416554,
+                "position_z": 1.478,
                 "shape": "ball",
                 "texture_color_list": [
                     "blue"
@@ -378,129 +378,5 @@
         "rotation_y": 0.0,
         "step_number": 16,
         "structural_objects_count": 6
-    },
-    {
-        "head_tilt": 0,
-        "objects": [
-            {
-                "direction_x": 0.0,
-                "direction_y": -0.716,
-                "direction_z": 0.698,
-                "distance": 0.715,
-                "held": false,
-                "id": "testBall",
-                "mass": 1.9,
-                "material_list": [
-                    "RUBBER"
-                ],
-                "position_x": 0.0,
-                "position_z": 1.498876,
-                "shape": "ball",
-                "texture_color_list": [
-                    "blue"
-                ],
-                "visible": false
-            }
-        ],
-        "objects_count": 1,
-        "position_x": 0.0,
-        "position_z": 1.0,
-        "return_status": "SUCCESSFUL",
-        "rotation_y": 0.0,
-        "step_number": 17,
-        "structural_objects_count": 6
-    },
-    {
-        "head_tilt": 0,
-        "objects": [
-            {
-                "direction_x": 0.0,
-                "direction_y": -0.713,
-                "direction_z": 0.701,
-                "distance": 0.718,
-                "held": false,
-                "id": "testBall",
-                "mass": 1.9,
-                "material_list": [
-                    "RUBBER"
-                ],
-                "position_x": 0.0,
-                "position_z": 1.50355256,
-                "shape": "ball",
-                "texture_color_list": [
-                    "blue"
-                ],
-                "visible": false
-            }
-        ],
-        "objects_count": 1,
-        "position_x": 0.0,
-        "position_z": 1.0,
-        "return_status": "SUCCESSFUL",
-        "rotation_y": 0.0,
-        "step_number": 18,
-        "structural_objects_count": 6
-    },
-    {
-        "head_tilt": 0,
-        "objects": [
-            {
-                "direction_x": 0.0,
-                "direction_y": -0.71,
-                "direction_z": 0.704,
-                "distance": 0.721,
-                "held": false,
-                "id": "testBall",
-                "mass": 1.9,
-                "material_list": [
-                    "RUBBER"
-                ],
-                "position_x": 0.0,
-                "position_z": 1.50819612,
-                "shape": "ball",
-                "texture_color_list": [
-                    "blue"
-                ],
-                "visible": false
-            }
-        ],
-        "objects_count": 1,
-        "position_x": 0.0,
-        "position_z": 1.0,
-        "return_status": "SUCCESSFUL",
-        "rotation_y": 0.0,
-        "step_number": 19,
-        "structural_objects_count": 6
-    },
-    {
-        "head_tilt": 0,
-        "objects": [
-            {
-                "direction_x": 0.0,
-                "direction_y": -0.707,
-                "direction_z": 0.708,
-                "distance": 0.725,
-                "held": false,
-                "id": "testBall",
-                "mass": 1.9,
-                "material_list": [
-                    "RUBBER"
-                ],
-                "position_x": 0.0,
-                "position_z": 1.51280594,
-                "shape": "ball",
-                "texture_color_list": [
-                    "blue"
-                ],
-                "visible": false
-            }
-        ],
-        "objects_count": 1,
-        "position_x": 0.0,
-        "position_z": 1.0,
-        "return_status": "SUCCESSFUL",
-        "rotation_y": 0.0,
-        "step_number": 20,
-        "structural_objects_count": 6
     }
 ]
\ No newline at end of file
diff --git a/integration_tests/data/012.move_into_heavy_object.oracle.outputs.json b/integration_tests/data/012.move_into_heavy_object.oracle.outputs.json
index 3c4712b40..974dae772 100644
--- a/integration_tests/data/012.move_into_heavy_object.oracle.outputs.json
+++ b/integration_tests/data/012.move_into_heavy_object.oracle.outputs.json
@@ -106,7 +106,7 @@
             {
                 "direction_x": 0.0,
                 "direction_y": -0.688,
-                "direction_z": 0.726,
+                "direction_z": 0.7257,
                 "distance": 0.744,
                 "held": false,
                 "id": "testBall",
@@ -137,7 +137,7 @@
             {
                 "direction_x": 0.0,
                 "direction_y": -0.688,
-                "direction_z": 0.726,
+                "direction_z": 0.7257,
                 "distance": 0.744,
                 "held": false,
                 "id": "testBall",
@@ -168,7 +168,7 @@
             {
                 "direction_x": 0.0,
                 "direction_y": -0.688,
-                "direction_z": 0.726,
+                "direction_z": 0.7257,
                 "distance": 0.744,
                 "held": false,
                 "id": "testBall",
diff --git a/integration_tests/data/056.scripted_invisibility.oracle.outputs.json b/integration_tests/data/056.scripted_invisibility.oracle.outputs.json
index 087575539..0b1a61a8b 100644
--- a/integration_tests/data/056.scripted_invisibility.oracle.outputs.json
+++ b/integration_tests/data/056.scripted_invisibility.oracle.outputs.json
@@ -1,181 +1,245 @@
-[{
-    "step_number": 0,
-    "head_tilt": 0,
-    "position_x": 0.0,
-    "position_z": 0.0,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": 0.0,
-    "objects_count": 1,
-    "structural_objects_count": 6,
-    "objects": [{
-        "id": "testBall",
-        "held": false,
-        "mass": 1,
-        "material_list": ["RUBBER"],
-        "position_x": -0.5,
-        "position_z": 2.0,
-        "shape": "ball",
-        "texture_color_list": ["blue"],
-        "visible": true
-    }]
-}, {
-    "step_number": 1,
-    "head_tilt": 0,
-    "position_x": 0.0,
-    "position_z": 0.0,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": 0.0,
-    "objects_count": 1,
-    "structural_objects_count": 6,
-    "objects": [{
-        "id": "testBall",
-        "held": false,
-        "mass": 1,
-        "material_list": ["RUBBER"],
-        "position_x": -0.5,
-        "position_z": 2.0,
-        "shape": "ball",
-        "texture_color_list": ["blue"],
-        "visible": true
-    }]
-}, {
-    "step_number": 2,
-    "head_tilt": 0,
-    "position_x": 0.0,
-    "position_z": 0.0,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": 0.0,
-    "objects_count": 1,
-    "structural_objects_count": 6,
-    "objects": [{
-        "id": "testBall",
-        "held": false,
-        "mass": 1,
-        "material_list": ["RUBBER"],
-        "position_x": -0.5,
-        "position_z": 2.0,
-        "shape": "ball",
-        "texture_color_list": ["blue"],
-        "visible": false
-    }]
-}, {
-    "step_number": 3,
-    "head_tilt": 0,
-    "position_x": 0.0,
-    "position_z": 0.0,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": 0.0,
-    "objects_count": 1,
-    "structural_objects_count": 6,
-    "objects": [{
-        "id": "testBall",
-        "held": false,
-        "mass": 1,
-        "material_list": ["RUBBER"],
-        "position_x": -0.5,
-        "position_z": 2.0,
-        "shape": "ball",
-        "texture_color_list": ["blue"],
-        "visible": true
-    }]
-}, {
-    "step_number": 4,
-    "head_tilt": 0,
-    "position_x": 0.0,
-    "position_z": 0.0,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": 0.0,
-    "objects_count": 1,
-    "structural_objects_count": 6,
-    "objects": [{
-        "id": "testBall",
-        "held": false,
-        "mass": 1,
-        "material_list": ["RUBBER"],
-        "position_x": -0.206253916,
-        "position_z": 2.0,
-        "shape": "ball",
-        "texture_color_list": ["blue"],
-        "visible": false
-    }]
-}, {
-    "step_number": 5,
-    "head_tilt": 0,
-    "position_x": 0.0,
-    "position_z": 0.0,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": 0.0,
-    "objects_count": 1,
-    "structural_objects_count": 6,
-    "objects": [{
-        "id": "testBall",
-        "held": false,
-        "mass": 1,
-        "material_list": ["RUBBER"],
-        "position_x": 0.0770689845,
-        "position_z": 2.0,
-        "shape": "ball",
-        "texture_color_list": ["blue"],
-        "visible": false
-    }]
-}, {
-    "step_number": 6,
-    "head_tilt": 0,
-    "position_x": 0.0,
-    "position_z": 0.0,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": 0.0,
-    "objects_count": 1,
-    "structural_objects_count": 6,
-    "objects": [{
-        "id": "testBall",
-        "held": false,
-        "mass": 1,
-        "material_list": ["RUBBER"],
-        "position_x": 0.349968672,
-        "position_z": 2.0,
-        "shape": "ball",
-        "texture_color_list": ["blue"],
-        "visible": false
-    }]
-}, {
-    "step_number": 7,
-    "head_tilt": 0,
-    "position_x": 0.0,
-    "position_z": 0.0,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": 0.0,
-    "objects_count": 1,
-    "structural_objects_count": 6,
-    "objects": [{
-        "id": "testBall",
-        "held": false,
-        "mass": 1,
-        "material_list": ["RUBBER"],
-        "position_x": 0.6124452,
-        "position_z": 2.0,
-        "shape": "ball",
-        "texture_color_list": ["blue"],
-        "visible": true
-    }]
-}, {
-    "step_number": 8,
-    "head_tilt": 0,
-    "position_x": 0.0,
-    "position_z": 0.0,
-    "return_status": "SUCCESSFUL",
-    "rotation_y": 0.0,
-    "objects_count": 1,
-    "structural_objects_count": 6,
-    "objects": [{
-        "id": "testBall",
-        "held": false,
-        "mass": 1,
-        "material_list": ["RUBBER"],
-        "position_x": 0.864498556,
-        "position_z": 2.0,
-        "shape": "ball",
-        "texture_color_list": ["blue"],
-        "visible": true
-    }]
-}]
+﻿[
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "held": false,
+                "id": "testBall",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": -0.5,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 0,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "held": false,
+                "id": "testBall",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": -0.5,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 1,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "held": false,
+                "id": "testBall",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": -0.5,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": false
+            }
+        ],
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 2,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "held": false,
+                "id": "testBall",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": -0.5,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 3,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "held": false,
+                "id": "testBall",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": -0.206253916,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": false
+            }
+        ],
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 4,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "held": false,
+                "id": "testBall",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0770689845,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": false
+            }
+        ],
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 5,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "held": false,
+                "id": "testBall",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.349968672,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": false
+            }
+        ],
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 6,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "held": false,
+                "id": "testBall",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.612,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 7,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "held": false,
+                "id": "testBall",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.864,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 8,
+        "structural_objects_count": 6
+    }
+]
\ No newline at end of file
diff --git a/integration_tests/data/061.move_into_wall_large_room.actions.txt b/integration_tests/data/061.move_into_wall_large_room.actions.txt
new file mode 100644
index 000000000..b676d4d22
--- /dev/null
+++ b/integration_tests/data/061.move_into_wall_large_room.actions.txt
@@ -0,0 +1,10 @@
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
diff --git a/integration_tests/data/061.move_into_wall_large_room.level1.outputs.json b/integration_tests/data/061.move_into_wall_large_room.level1.outputs.json
new file mode 100644
index 000000000..13ac55bc6
--- /dev/null
+++ b/integration_tests/data/061.move_into_wall_large_room.level1.outputs.json
@@ -0,0 +1,100 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 4,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 5,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 6,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 7,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 8,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 9,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 10,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/061.move_into_wall_large_room.level2.outputs.json b/integration_tests/data/061.move_into_wall_large_room.level2.outputs.json
new file mode 100644
index 000000000..13ac55bc6
--- /dev/null
+++ b/integration_tests/data/061.move_into_wall_large_room.level2.outputs.json
@@ -0,0 +1,100 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 4,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 5,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 6,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 7,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 8,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 9,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 10,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/061.move_into_wall_large_room.oracle.outputs.json b/integration_tests/data/061.move_into_wall_large_room.oracle.outputs.json
new file mode 100644
index 000000000..7efd63bd7
--- /dev/null
+++ b/integration_tests/data/061.move_into_wall_large_room.oracle.outputs.json
@@ -0,0 +1,100 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": 14.0,
+    "position_z": 8.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": 14.1,
+    "position_z": 8.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": 14.2,
+    "position_z": 8.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": 14.3,
+    "position_z": 8.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 4,
+    "head_tilt": 0,
+    "position_x": 14.4,
+    "position_z": 8.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 5,
+    "head_tilt": 0,
+    "position_x": 14.5,
+    "position_z": 8.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 6,
+    "head_tilt": 0,
+    "position_x": 14.6,
+    "position_z": 8.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 7,
+    "head_tilt": 0,
+    "position_x": 14.7,
+    "position_z": 8.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 8,
+    "head_tilt": 0,
+    "position_x": 14.7,
+    "position_z": 8.0,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 9,
+    "head_tilt": 0,
+    "position_x": 14.7,
+    "position_z": 8.0,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 10,
+    "head_tilt": 0,
+    "position_x": 14.7,
+    "position_z": 8.0,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": 90,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}]
diff --git a/integration_tests/data/061.move_into_wall_large_room.scene.json b/integration_tests/data/061.move_into_wall_large_room.scene.json
new file mode 100644
index 000000000..41cabce6a
--- /dev/null
+++ b/integration_tests/data/061.move_into_wall_large_room.scene.json
@@ -0,0 +1,23 @@
+﻿{
+    "name": "fail to move into large room wall",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
+    "wallMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "roomDimensions": {
+        "x": 30,
+        "y": 5,
+        "z": 20
+    },
+    "performerStart": {
+        "position": {
+            "x": 14,
+            "z": 8
+        },
+        "rotation": {
+            "x": 0,
+            "y": 90
+        }
+    },
+    "objects": []
+}
diff --git a/integration_tests/data/062.move_into_wall_small_room.actions.txt b/integration_tests/data/062.move_into_wall_small_room.actions.txt
new file mode 100644
index 000000000..2ac4800df
--- /dev/null
+++ b/integration_tests/data/062.move_into_wall_small_room.actions.txt
@@ -0,0 +1,5 @@
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
\ No newline at end of file
diff --git a/integration_tests/data/062.move_into_wall_small_room.level1.outputs.json b/integration_tests/data/062.move_into_wall_small_room.level1.outputs.json
new file mode 100644
index 000000000..e719298c8
--- /dev/null
+++ b/integration_tests/data/062.move_into_wall_small_room.level1.outputs.json
@@ -0,0 +1,55 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 4,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 5,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/062.move_into_wall_small_room.level2.outputs.json b/integration_tests/data/062.move_into_wall_small_room.level2.outputs.json
new file mode 100644
index 000000000..e719298c8
--- /dev/null
+++ b/integration_tests/data/062.move_into_wall_small_room.level2.outputs.json
@@ -0,0 +1,55 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 4,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 5,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/062.move_into_wall_small_room.oracle.outputs.json b/integration_tests/data/062.move_into_wall_small_room.oracle.outputs.json
new file mode 100644
index 000000000..4cf95c669
--- /dev/null
+++ b/integration_tests/data/062.move_into_wall_small_room.oracle.outputs.json
@@ -0,0 +1,55 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 1.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 1.1,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 1.2,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 1.2,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": 0,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 4,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 1.2,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": 0,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}, {
+    "step_number": 5,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 1.2,
+    "return_status": "OBSTRUCTED",
+    "rotation_y": 0,
+    "objects_count": 0,
+    "structural_objects_count": 6
+}]
diff --git a/integration_tests/data/062.move_into_wall_small_room.scene.json b/integration_tests/data/062.move_into_wall_small_room.scene.json
new file mode 100644
index 000000000..7554c3228
--- /dev/null
+++ b/integration_tests/data/062.move_into_wall_small_room.scene.json
@@ -0,0 +1,23 @@
+﻿{
+    "name": "fail to move into small room wall",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
+    "wallMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 1
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "roomDimensions": {
+        "x": 10,
+        "y": 2,
+        "z": 3
+    },
+    "objects": []
+}
diff --git a/integration_tests/data/063.wall_material.actions.txt b/integration_tests/data/063.wall_material.actions.txt
new file mode 100644
index 000000000..1f67b5645
--- /dev/null
+++ b/integration_tests/data/063.wall_material.actions.txt
@@ -0,0 +1,3 @@
+Pass
+Pass
+Pass
\ No newline at end of file
diff --git a/integration_tests/data/063.wall_material.level1.outputs.json b/integration_tests/data/063.wall_material.level1.outputs.json
new file mode 100644
index 000000000..1d7234581
--- /dev/null
+++ b/integration_tests/data/063.wall_material.level1.outputs.json
@@ -0,0 +1,37 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/063.wall_material.level2.outputs.json b/integration_tests/data/063.wall_material.level2.outputs.json
new file mode 100644
index 000000000..1d7234581
--- /dev/null
+++ b/integration_tests/data/063.wall_material.level2.outputs.json
@@ -0,0 +1,37 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/063.wall_material.oracle.outputs.json b/integration_tests/data/063.wall_material.oracle.outputs.json
new file mode 100644
index 000000000..ecfb9b9f3
--- /dev/null
+++ b/integration_tests/data/063.wall_material.oracle.outputs.json
@@ -0,0 +1,329 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 0.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0.0,
+    "objects_count": 0,
+    "structural_objects_count": 6,
+    "structural_objects": [{
+        "id": "ceiling",
+        "direction_x": 0.0,
+        "direction_y": 1.0,
+        "direction_z": 0.0,
+        "distance": 2.488,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "floor",
+        "direction_x": 0.0,
+        "direction_y": -1.0,
+        "direction_z": 0.0,
+        "distance": 1.01200008,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_back",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": -0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": -5.25,
+        "shape": "structural",
+        "texture_color_list": ["orange"],
+        "visible": true
+    }, {
+        "id": "wall_front",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": 0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 5.25,
+        "shape": "structural",
+        "texture_color_list": ["red"],
+        "visible": true
+    }, {
+        "id": "wall_left",
+        "direction_x": -0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": -5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["green"],
+        "visible": true
+    }, {
+        "id": "wall_right",
+        "direction_x": 0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["yellow"],
+        "visible": true
+    }]
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 0.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0.0,
+    "objects_count": 0,
+    "structural_objects_count": 6,
+    "structural_objects": [{
+        "id": "ceiling",
+        "direction_x": 0.0,
+        "direction_y": 1.0,
+        "direction_z": 0.0,
+        "distance": 2.488,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "floor",
+        "direction_x": 0.0,
+        "direction_y": -1.0,
+        "direction_z": 0.0,
+        "distance": 1.01200008,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_back",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": -0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": -5.25,
+        "shape": "structural",
+        "texture_color_list": ["orange"],
+        "visible": true
+    }, {
+        "id": "wall_front",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": 0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 5.25,
+        "shape": "structural",
+        "texture_color_list": ["red"],
+        "visible": true
+    }, {
+        "id": "wall_left",
+        "direction_x": -0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": -5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["green"],
+        "visible": true
+    }, {
+        "id": "wall_right",
+        "direction_x": 0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["yellow"],
+        "visible": true
+    }]
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 0.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0.0,
+    "objects_count": 0,
+    "structural_objects_count": 6,
+    "structural_objects": [{
+        "id": "ceiling",
+        "direction_x": 0.0,
+        "direction_y": 1.0,
+        "direction_z": 0.0,
+        "distance": 2.488,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "floor",
+        "direction_x": 0.0,
+        "direction_y": -1.0,
+        "direction_z": 0.0,
+        "distance": 1.01200008,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_back",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": -0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": -5.25,
+        "shape": "structural",
+        "texture_color_list": ["orange"],
+        "visible": true
+    }, {
+        "id": "wall_front",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": 0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 5.25,
+        "shape": "structural",
+        "texture_color_list": ["red"],
+        "visible": true
+    }, {
+        "id": "wall_left",
+        "direction_x": -0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": -5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["green"],
+        "visible": true
+    }, {
+        "id": "wall_right",
+        "direction_x": 0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["yellow"],
+        "visible": true
+    }]
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 0.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0.0,
+    "objects_count": 0,
+    "structural_objects_count": 6,
+    "structural_objects": [{
+        "id": "ceiling",
+        "direction_x": 0.0,
+        "direction_y": 1.0,
+        "direction_z": 0.0,
+        "distance": 2.488,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "floor",
+        "direction_x": 0.0,
+        "direction_y": -1.0,
+        "direction_z": 0.0,
+        "distance": 1.01200008,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_back",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": -0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": -5.25,
+        "shape": "structural",
+        "texture_color_list": ["orange"],
+        "visible": true
+    }, {
+        "id": "wall_front",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": 0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 5.25,
+        "shape": "structural",
+        "texture_color_list": ["red"],
+        "visible": true
+    }, {
+        "id": "wall_left",
+        "direction_x": -0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": -5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["green"],
+        "visible": true
+    }, {
+        "id": "wall_right",
+        "direction_x": 0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["yellow"],
+        "visible": true
+    }]
+}]
diff --git a/integration_tests/data/063.wall_material.scene.json b/integration_tests/data/063.wall_material.scene.json
new file mode 100644
index 000000000..8777c3530
--- /dev/null
+++ b/integration_tests/data/063.wall_material.scene.json
@@ -0,0 +1,24 @@
+﻿{
+    "name": "Individual wall materials for all walls",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
+    "wallMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "roomMaterials": {
+        "left":"AI2-THOR/Materials/Walls/DrywallGreen",
+        "front":"AI2-THOR/Materials/Walls/RedDrywall",
+        "right": "AI2-THOR/Materials/Walls/YellowDrywall",
+        "back": "AI2-THOR/Materials/Walls/DrywallOrange"
+    },
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": []
+}
diff --git a/integration_tests/data/064.wall_material_2.actions.txt b/integration_tests/data/064.wall_material_2.actions.txt
new file mode 100644
index 000000000..1f67b5645
--- /dev/null
+++ b/integration_tests/data/064.wall_material_2.actions.txt
@@ -0,0 +1,3 @@
+Pass
+Pass
+Pass
\ No newline at end of file
diff --git a/integration_tests/data/064.wall_material_2.level1.outputs.json b/integration_tests/data/064.wall_material_2.level1.outputs.json
new file mode 100644
index 000000000..1d7234581
--- /dev/null
+++ b/integration_tests/data/064.wall_material_2.level1.outputs.json
@@ -0,0 +1,37 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/064.wall_material_2.level2.outputs.json b/integration_tests/data/064.wall_material_2.level2.outputs.json
new file mode 100644
index 000000000..1d7234581
--- /dev/null
+++ b/integration_tests/data/064.wall_material_2.level2.outputs.json
@@ -0,0 +1,37 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/064.wall_material_2.oracle.outputs.json b/integration_tests/data/064.wall_material_2.oracle.outputs.json
new file mode 100644
index 000000000..dee2903cb
--- /dev/null
+++ b/integration_tests/data/064.wall_material_2.oracle.outputs.json
@@ -0,0 +1,329 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 0.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0.0,
+    "objects_count": 0,
+    "structural_objects_count": 6,
+    "structural_objects": [{
+        "id": "ceiling",
+        "direction_x": 0.0,
+        "direction_y": 1.0,
+        "direction_z": 0.0,
+        "distance": 2.488,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "floor",
+        "direction_x": 0.0,
+        "direction_y": -1.0,
+        "direction_z": 0.0,
+        "distance": 1.01200008,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_back",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": -0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": -5.25,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_front",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": 0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 5.25,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_left",
+        "direction_x": -0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": -5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["green"],
+        "visible": true
+    }, {
+        "id": "wall_right",
+        "direction_x": 0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }]
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 0.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0.0,
+    "objects_count": 0,
+    "structural_objects_count": 6,
+    "structural_objects": [{
+        "id": "ceiling",
+        "direction_x": 0.0,
+        "direction_y": 1.0,
+        "direction_z": 0.0,
+        "distance": 2.488,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "floor",
+        "direction_x": 0.0,
+        "direction_y": -1.0,
+        "direction_z": 0.0,
+        "distance": 1.01200008,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_back",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": -0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": -5.25,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_front",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": 0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 5.25,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_left",
+        "direction_x": -0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": -5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["green"],
+        "visible": true
+    }, {
+        "id": "wall_right",
+        "direction_x": 0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }]
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 0.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0.0,
+    "objects_count": 0,
+    "structural_objects_count": 6,
+    "structural_objects": [{
+        "id": "ceiling",
+        "direction_x": 0.0,
+        "direction_y": 1.0,
+        "direction_z": 0.0,
+        "distance": 2.488,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "floor",
+        "direction_x": 0.0,
+        "direction_y": -1.0,
+        "direction_z": 0.0,
+        "distance": 1.01200008,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_back",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": -0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": -5.25,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_front",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": 0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 5.25,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_left",
+        "direction_x": -0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": -5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["green"],
+        "visible": true
+    }, {
+        "id": "wall_right",
+        "direction_x": 0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }]
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": 0.0,
+    "position_z": 0.0,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": 0.0,
+    "objects_count": 0,
+    "structural_objects_count": 6,
+    "structural_objects": [{
+        "id": "ceiling",
+        "direction_x": 0.0,
+        "direction_y": 1.0,
+        "direction_z": 0.0,
+        "distance": 2.488,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "floor",
+        "direction_x": 0.0,
+        "direction_y": -1.0,
+        "direction_z": 0.0,
+        "distance": 1.01200008,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_back",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": -0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": -5.25,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_front",
+        "direction_x": 0.0,
+        "direction_y": 0.1392028,
+        "direction_z": 0.9902639,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 0.0,
+        "position_z": 5.25,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }, {
+        "id": "wall_left",
+        "direction_x": -0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": -5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["green"],
+        "visible": true
+    }, {
+        "id": "wall_right",
+        "direction_x": 0.9902639,
+        "direction_y": 0.1392028,
+        "direction_z": 0.0,
+        "distance": 5.301617,
+        "held": false,
+        "position_x": 5.25,
+        "position_z": 0.0,
+        "shape": "structural",
+        "texture_color_list": ["white"],
+        "visible": true
+    }]
+}]
diff --git a/integration_tests/data/064.wall_material_2.scene.json b/integration_tests/data/064.wall_material_2.scene.json
new file mode 100644
index 000000000..9c1fd1184
--- /dev/null
+++ b/integration_tests/data/064.wall_material_2.scene.json
@@ -0,0 +1,22 @@
+﻿{
+    "name": "Individual wall materials with fall through to default",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
+    "wallMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "roomMaterials": {
+        "left":"AI2-THOR/Materials/Walls/DrywallGreen",
+        "back": ""
+    },
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": []
+}
diff --git a/integration_tests/data/065.platform.actions.txt b/integration_tests/data/065.platform.actions.txt
new file mode 100644
index 000000000..82e9fb751
--- /dev/null
+++ b/integration_tests/data/065.platform.actions.txt
@@ -0,0 +1,18 @@
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveBack
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveAhead
+MoveBack
+MoveAhead
+MoveAhead
\ No newline at end of file
diff --git a/integration_tests/data/065.platform.level1.outputs.json b/integration_tests/data/065.platform.level1.outputs.json
new file mode 100644
index 000000000..1c47e7994
--- /dev/null
+++ b/integration_tests/data/065.platform.level1.outputs.json
@@ -0,0 +1,192 @@
+﻿[
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 0,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 1,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 2,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 3,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 4,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 5,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 6,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "OBSTRUCTED",
+        "rotation_y": null,
+        "step_number": 7,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 8,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 9,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 10,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 11,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 12,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 13,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 14,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 15,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "OBSTRUCTED",
+        "rotation_y": null,
+        "step_number": 16,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 17,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 18,
+        "structural_objects_count": 0
+    }
+]
\ No newline at end of file
diff --git a/integration_tests/data/065.platform.level2.outputs.json b/integration_tests/data/065.platform.level2.outputs.json
new file mode 100644
index 000000000..1c47e7994
--- /dev/null
+++ b/integration_tests/data/065.platform.level2.outputs.json
@@ -0,0 +1,192 @@
+﻿[
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 0,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 1,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 2,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 3,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 4,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 5,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 6,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "OBSTRUCTED",
+        "rotation_y": null,
+        "step_number": 7,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 8,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 9,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 10,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 11,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 12,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 13,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 14,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 15,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "OBSTRUCTED",
+        "rotation_y": null,
+        "step_number": 16,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 17,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 18,
+        "structural_objects_count": 0
+    }
+]
\ No newline at end of file
diff --git a/integration_tests/data/065.platform.oracle.outputs.json b/integration_tests/data/065.platform.oracle.outputs.json
new file mode 100644
index 000000000..43a51c1ea
--- /dev/null
+++ b/integration_tests/data/065.platform.oracle.outputs.json
@@ -0,0 +1,1959 @@
+﻿[
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 1.5,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 0,
+        "structural_objects": [
+            {
+                "direction_x": -0.292,
+                "direction_y": 0.874,
+                "direction_z": -0.389,
+                "distance": 5.137,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.383,
+                "direction_y": -0.769,
+                "direction_z": -0.511,
+                "distance": 3.914,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.202,
+                "direction_y": 0.099,
+                "direction_z": -0.974,
+                "distance": 7.44,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.41,
+                "direction_y": 0.202,
+                "direction_z": 0.889,
+                "distance": 3.655,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.964,
+                "direction_y": 0.092,
+                "direction_z": -0.249,
+                "distance": 8.038,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.912,
+                "direction_y": 0.142,
+                "direction_z": -0.384,
+                "distance": 5.206,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 1.4,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 1,
+        "structural_objects": [
+            {
+                "direction_x": -0.274,
+                "direction_y": 0.878,
+                "direction_z": -0.391,
+                "distance": 5.109,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.361,
+                "direction_y": -0.777,
+                "direction_z": -0.516,
+                "distance": 3.877,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.189,
+                "direction_y": 0.099,
+                "direction_z": -0.977,
+                "distance": 7.421,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.387,
+                "direction_y": 0.204,
+                "direction_z": 0.899,
+                "distance": 3.615,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.963,
+                "direction_y": 0.093,
+                "direction_z": -0.252,
+                "distance": 7.941,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.915,
+                "direction_y": 0.1392028,
+                "direction_z": -0.378,
+                "distance": 5.301617,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 1.3,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 2,
+        "structural_objects": [
+            {
+                "direction_x": -0.256,
+                "direction_y": 0.883,
+                "direction_z": -0.394,
+                "distance": 5.083,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.338,
+                "direction_y": -0.784,
+                "direction_z": -0.521,
+                "distance": 3.842,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.176,
+                "direction_y": 0.1,
+                "direction_z": -0.979,
+                "distance": 7.403,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.363,
+                "direction_y": 0.206,
+                "direction_z": 0.909,
+                "distance": 3.577,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.962,
+                "direction_y": 0.094,
+                "direction_z": -0.255,
+                "distance": 7.845,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.918,
+                "direction_y": 0.137,
+                "direction_z": -0.371,
+                "distance": 5.39,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 1.2,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 3,
+        "structural_objects": [
+            {
+                "direction_x": -0.237,
+                "direction_y": 0.887,
+                "direction_z": -0.395,
+                "distance": 5.058,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.315,
+                "direction_y": -0.791,
+                "direction_z": -0.525,
+                "distance": 3.809,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.162,
+                "direction_y": 0.1,
+                "direction_z": -0.982,
+                "distance": 7.386,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.339,
+                "direction_y": 0.208,
+                "direction_z": 0.918,
+                "distance": 3.542,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.961,
+                "direction_y": 0.095,
+                "direction_z": -0.258,
+                "distance": 7.749,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.921,
+                "direction_y": 0.135,
+                "direction_z": -0.365,
+                "distance": 5.482,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 1.1,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 4,
+        "structural_objects": [
+            {
+                "direction_x": -0.218,
+                "direction_y": 0.891,
+                "direction_z": -0.397,
+                "distance": 5.035,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.291,
+                "direction_y": -0.797,
+                "direction_z": -0.529,
+                "distance": 3.779,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.149,
+                "direction_y": 0.1,
+                "direction_z": -0.984,
+                "distance": 7.37,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.313,
+                "direction_y": 0.21,
+                "direction_z": 0.926,
+                "distance": 3.51,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.96,
+                "direction_y": 0.096,
+                "direction_z": -0.261,
+                "distance": 7.653,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.924,
+                "direction_y": 0.132,
+                "direction_z": -0.359,
+                "distance": 5.574,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 1.0,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 5,
+        "structural_objects": [
+            {
+                "direction_x": -0.199,
+                "direction_y": 0.895,
+                "direction_z": -0.399,
+                "distance": 5.014,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.267,
+                "direction_y": -0.803,
+                "direction_z": -0.533,
+                "distance": 3.751,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.136,
+                "direction_y": 0.1,
+                "direction_z": -0.986,
+                "distance": 7.356,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.287,
+                "direction_y": 0.212,
+                "direction_z": 0.934,
+                "distance": 3.48,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.959,
+                "direction_y": 0.098,
+                "direction_z": -0.265,
+                "distance": 7.557,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.927,
+                "direction_y": 0.13,
+                "direction_z": -0.353,
+                "distance": 5.666,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.78,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 6,
+        "structural_objects": [
+            {
+                "direction_x": -0.132,
+                "direction_y": 0.931,
+                "direction_z": -0.34,
+                "distance": 5.898,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.265,
+                "direction_y": -0.684,
+                "direction_z": -0.68,
+                "distance": 2.942,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.104,
+                "direction_y": 0.232,
+                "direction_z": -0.967,
+                "distance": 7.5,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.207,
+                "direction_y": 0.461,
+                "direction_z": 0.863,
+                "distance": 3.767,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.936,
+                "direction_y": 0.231,
+                "direction_z": -0.266,
+                "distance": 7.513,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.899,
+                "direction_y": 0.286,
+                "direction_z": -0.329,
+                "distance": 6.078,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.78,
+        "position_z": 2.0,
+        "return_status": "OBSTRUCTED",
+        "rotation_y": 270.0,
+        "step_number": 7,
+        "structural_objects": [
+            {
+                "direction_x": -0.132,
+                "direction_y": 0.931,
+                "direction_z": -0.34,
+                "distance": 5.898,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.265,
+                "direction_y": -0.684,
+                "direction_z": -0.68,
+                "distance": 2.942,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.104,
+                "direction_y": 0.232,
+                "direction_z": -0.967,
+                "distance": 7.5,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.207,
+                "direction_y": 0.461,
+                "direction_z": 0.863,
+                "distance": 3.767,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.936,
+                "direction_y": 0.231,
+                "direction_z": -0.266,
+                "distance": 7.513,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.899,
+                "direction_y": 0.286,
+                "direction_z": -0.329,
+                "distance": 6.078,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.68,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 8,
+        "structural_objects": [
+            {
+                "direction_x": -0.116,
+                "direction_y": 0.933,
+                "direction_z": -0.34,
+                "distance": 5.885,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.233,
+                "direction_y": -0.69,
+                "direction_z": -0.686,
+                "distance": 2.917,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.091,
+                "direction_y": 0.232,
+                "direction_z": -0.968,
+                "distance": 7.49,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.181,
+                "direction_y": 0.463,
+                "direction_z": 0.867,
+                "distance": 3.748,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.935,
+                "direction_y": 0.234,
+                "direction_z": -0.27,
+                "distance": 7.419,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.903,
+                "direction_y": 0.282,
+                "direction_z": -0.324,
+                "distance": 6.168,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.58,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 9,
+        "structural_objects": [
+            {
+                "direction_x": -0.099,
+                "direction_y": 0.934,
+                "direction_z": -0.341,
+                "distance": 5.874,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.2,
+                "direction_y": -0.695,
+                "direction_z": -0.691,
+                "distance": 2.896,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.078,
+                "direction_y": 0.233,
+                "direction_z": -0.97,
+                "distance": 7.481,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.155,
+                "direction_y": 0.465,
+                "direction_z": 0.871,
+                "distance": 3.731,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.933,
+                "direction_y": 0.237,
+                "direction_z": -0.273,
+                "distance": 7.326,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.905,
+                "direction_y": 0.278,
+                "direction_z": -0.32,
+                "distance": 6.259,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.48,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 10,
+        "structural_objects": [
+            {
+                "direction_x": -0.082,
+                "direction_y": 0.936,
+                "direction_z": -0.342,
+                "distance": 5.864,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.167,
+                "direction_y": -0.699,
+                "direction_z": -0.695,
+                "distance": 2.877,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.064,
+                "direction_y": 0.233,
+                "direction_z": -0.971,
+                "distance": 7.474,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.129,
+                "direction_y": 0.467,
+                "direction_z": 0.874,
+                "distance": 3.717,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.931,
+                "direction_y": 0.24,
+                "direction_z": -0.277,
+                "distance": 7.233,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.908,
+                "direction_y": 0.274,
+                "direction_z": -0.315,
+                "distance": 6.349,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.38,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 11,
+        "structural_objects": [
+            {
+                "direction_x": -0.065,
+                "direction_y": 0.938,
+                "direction_z": -0.342,
+                "distance": 5.856,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.133,
+                "direction_y": -0.702,
+                "direction_z": -0.699,
+                "distance": 2.862,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.051,
+                "direction_y": 0.233,
+                "direction_z": -0.971,
+                "distance": 7.461,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.103,
+                "direction_y": 0.469,
+                "direction_z": 0.877,
+                "distance": 3.705,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.929,
+                "direction_y": 0.243,
+                "direction_z": -0.28,
+                "distance": 7.14,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.911,
+                "direction_y": 0.27,
+                "direction_z": -0.311,
+                "distance": 6.44,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.28,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 12,
+        "structural_objects": [
+            {
+                "direction_x": -0.048,
+                "direction_y": 0.939,
+                "direction_z": -0.342,
+                "distance": 5.844,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.098,
+                "direction_y": -0.705,
+                "direction_z": -0.701,
+                "distance": 2.851,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.038,
+                "direction_y": 0.233,
+                "direction_z": -0.972,
+                "distance": 7.458,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.076,
+                "direction_y": 0.47,
+                "direction_z": 0.879,
+                "distance": 3.699,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.927,
+                "direction_y": 0.247,
+                "direction_z": -0.284,
+                "distance": 7.047,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.914,
+                "direction_y": 0.266,
+                "direction_z": -0.306,
+                "distance": 6.532,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.18,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 13,
+        "structural_objects": [
+            {
+                "direction_x": -0.031,
+                "direction_y": 0.939,
+                "direction_z": -0.342,
+                "distance": 5.842,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.063,
+                "direction_y": -0.707,
+                "direction_z": -0.703,
+                "distance": 2.845,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.024,
+                "direction_y": 0.233,
+                "direction_z": -0.972,
+                "distance": 7.456,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.049,
+                "direction_y": 0.471,
+                "direction_z": 0.88,
+                "distance": 3.692,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.925,
+                "direction_y": 0.249,
+                "direction_z": -0.288,
+                "distance": 6.955,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.916,
+                "direction_y": 0.262,
+                "direction_z": -0.302,
+                "distance": 6.623,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.08,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 14,
+        "structural_objects": [
+            {
+                "direction_x": -0.014,
+                "direction_y": 0.939,
+                "direction_z": -0.342,
+                "distance": 5.842,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.028,
+                "direction_y": -0.709,
+                "direction_z": -0.704,
+                "distance": 2.839,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.011,
+                "direction_y": 0.233,
+                "direction_z": -0.972,
+                "distance": 7.456,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.022,
+                "direction_y": 0.471,
+                "direction_z": 0.881,
+                "distance": 3.687,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.923,
+                "direction_y": 0.253,
+                "direction_z": -0.291,
+                "distance": 6.862,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.918,
+                "direction_y": 0.259,
+                "direction_z": -0.298,
+                "distance": 6.715,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": -0.22,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 15,
+        "structural_objects": [
+            {
+                "direction_x": 0.032,
+                "direction_y": 0.955,
+                "direction_z": -0.294,
+                "distance": 6.793,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.098,
+                "direction_y": -0.449,
+                "direction_z": -0.888,
+                "distance": 2.252,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.028,
+                "direction_y": 0.353,
+                "direction_z": -0.935,
+                "distance": 7.753,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.052,
+                "direction_y": 0.643,
+                "direction_z": 0.764,
+                "distance": 4.255,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.872,
+                "direction_y": 0.396,
+                "direction_z": -0.289,
+                "distance": 6.918,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.886,
+                "direction_y": 0.375,
+                "direction_z": -0.274,
+                "distance": 7.305,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": -0.22,
+        "position_z": 2.0,
+        "return_status": "OBSTRUCTED",
+        "rotation_y": 270.0,
+        "step_number": 16,
+        "structural_objects": [
+            {
+                "direction_x": 0.032,
+                "direction_y": 0.955,
+                "direction_z": -0.294,
+                "distance": 6.792,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.098,
+                "direction_y": -0.449,
+                "direction_z": -0.888,
+                "distance": 2.252,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.028,
+                "direction_y": 0.353,
+                "direction_z": -0.935,
+                "distance": 7.752,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.052,
+                "direction_y": 0.643,
+                "direction_z": 0.763,
+                "distance": 4.255,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.872,
+                "direction_y": 0.396,
+                "direction_z": -0.289,
+                "distance": 6.918,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.886,
+                "direction_y": 0.375,
+                "direction_z": -0.274,
+                "distance": 7.305,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": -0.32,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 17,
+        "structural_objects": [
+            {
+                "direction_x": 0.047,
+                "direction_y": 0.955,
+                "direction_z": -0.294,
+                "distance": 6.792,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.141,
+                "direction_y": -0.447,
+                "direction_z": -0.883,
+                "distance": 2.264,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.041,
+                "direction_y": 0.353,
+                "direction_z": -0.935,
+                "distance": 7.752,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.075,
+                "direction_y": 0.642,
+                "direction_z": 0.763,
+                "distance": 4.262,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.868,
+                "direction_y": 0.401,
+                "direction_z": -0.293,
+                "distance": 6.831,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.889,
+                "direction_y": 0.37,
+                "direction_z": -0.271,
+                "distance": 7.393,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": -0.42,
+        "position_z": 2.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 270.0,
+        "step_number": 18,
+        "structural_objects": [
+            {
+                "direction_x": 0.062,
+                "direction_y": 0.954,
+                "direction_z": -0.294,
+                "distance": 6.802,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.184,
+                "direction_y": -0.444,
+                "direction_z": -0.877,
+                "distance": 2.28,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "red",
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.054,
+                "direction_y": 0.353,
+                "direction_z": -0.935,
+                "distance": 7.755,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.098,
+                "direction_y": 0.641,
+                "direction_z": 0.761,
+                "distance": 4.27,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.864,
+                "direction_y": 0.406,
+                "direction_z": -0.297,
+                "distance": 6.744,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.891,
+                "direction_y": 0.366,
+                "direction_z": -0.267,
+                "distance": 7.482,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 6.25,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "yellow"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 8
+    }
+]
\ No newline at end of file
diff --git a/integration_tests/data/065.platform.scene.json b/integration_tests/data/065.platform.scene.json
new file mode 100644
index 000000000..578b7038f
--- /dev/null
+++ b/integration_tests/data/065.platform.scene.json
@@ -0,0 +1,66 @@
+﻿{
+    "name": "platform",
+    "version": 1,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/WallDrywallWhite",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/RUG4",
+    "wallMaterial": "AI2-THOR/Materials/Walls/YellowDrywall",
+    "roomDimensions": {
+        "x": 12,
+        "y": 7,
+        "z": 10
+    },
+    "performerStart": {
+        "position": {
+            "x": 1.5,
+            "y": 3,
+            "z": 2
+        },
+        "rotation": {
+            "x": 0,
+            "y": -90
+        }
+    },
+    "objects": [
+        {
+            "id": "upperPlatform",
+            "type": "cube",
+            "materialFile": "Plastics/GreenPlastic",
+            "physics": true,
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 2,
+                    "y": 1,
+                    "z": 2
+                },
+                "scale": {
+                    "x": 2,
+                    "y": 2,
+                    "z": 2
+                }
+            }]
+        },{
+            "id": "lowerPlatform",
+            "type": "cube",
+            "materialFile": "Plastics/GreenPlastic",
+            "physics": true,
+            "kinematic": true,
+            "structure": true,
+            "shows": [{
+                "stepBegin": 0,
+                "position": {
+                    "x": 0.5,
+                    "y": 0.5,
+                    "z": 2
+                },
+                "scale": {
+                    "x": 1,
+                    "y": 1,
+                    "z": 2
+                }
+            }]
+        }
+    ]
+}
diff --git a/integration_tests/data/066.end_habituation.actions.txt b/integration_tests/data/066.end_habituation.actions.txt
new file mode 100644
index 000000000..7ed68de45
--- /dev/null
+++ b/integration_tests/data/066.end_habituation.actions.txt
@@ -0,0 +1,25 @@
+MoveAhead
+MoveRight
+LookDown
+EndHabituation
+Pass
+MoveAhead
+MoveRight
+EndHabituation,yRotation=30
+Pass
+MoveAhead
+MoveRight
+RotateLeft
+LookDown
+EndHabituation,xPosition=3
+Pass
+RotateLeft
+EndHabituation,xPosition=0,zPosition=0
+Pass
+MoveAhead
+MoveRight
+MoveAhead
+RotateRight
+LookDown
+EndHabituation,xPosition=0,zPosition=0,yRotation=0
+Pass
\ No newline at end of file
diff --git a/integration_tests/data/066.end_habituation.level1.outputs.json b/integration_tests/data/066.end_habituation.level1.outputs.json
new file mode 100644
index 000000000..cf5d3c5b5
--- /dev/null
+++ b/integration_tests/data/066.end_habituation.level1.outputs.json
@@ -0,0 +1,262 @@
+﻿[
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 0,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 1,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 2,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 3,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 4,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 5,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 6,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 7,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 8,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 9,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 10,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 11,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 12,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 13,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 14,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 15,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 16,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 17,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 18,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 19,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 20,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 21,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 22,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 20,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 23,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 24,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 25,
+        "structural_objects_count": 0
+    }
+]
\ No newline at end of file
diff --git a/integration_tests/data/066.end_habituation.level2.outputs.json b/integration_tests/data/066.end_habituation.level2.outputs.json
new file mode 100644
index 000000000..cf5d3c5b5
--- /dev/null
+++ b/integration_tests/data/066.end_habituation.level2.outputs.json
@@ -0,0 +1,262 @@
+﻿[
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 0,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 1,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 2,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 3,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 4,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 5,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 6,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 7,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 8,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 9,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 10,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 11,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 12,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 13,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 14,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 15,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 16,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 17,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 18,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 19,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 20,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 21,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 22,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 20,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 23,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 24,
+        "structural_objects_count": 0
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": null,
+        "position_z": null,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": null,
+        "step_number": 25,
+        "structural_objects_count": 0
+    }
+]
\ No newline at end of file
diff --git a/integration_tests/data/066.end_habituation.oracle.outputs.json b/integration_tests/data/066.end_habituation.oracle.outputs.json
new file mode 100644
index 000000000..0dd0e7533
--- /dev/null
+++ b/integration_tests/data/066.end_habituation.oracle.outputs.json
@@ -0,0 +1,262 @@
+﻿[
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 0,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.10000000149011612,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 1,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.1,
+        "position_z": 0.10000000149011612,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 2,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.1,
+        "position_z": 0.10000000149011612,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 3,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.1,
+        "position_z": 0.10000000149011612,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 4,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.1,
+        "position_z": 0.1,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 5,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.1,
+        "position_z": 0.20000000298023224,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 6,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.2,
+        "position_z": 0.20000000298023224,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 7,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.2,
+        "position_z": 0.2,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 30.000001907348633,
+        "step_number": 8,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.2,
+        "position_z": 0.2,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 30.0,
+        "step_number": 9,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.25,
+        "position_z": 0.287,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 30.0,
+        "step_number": 10,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.337,
+        "position_z": 0.237,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 30.0,
+        "step_number": 11,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.337,
+        "position_z": 0.237,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 20.0,
+        "step_number": 12,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.337,
+        "position_z": 0.237,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 20.0,
+        "step_number": 13,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.337,
+        "position_z": 0.237,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 20.0,
+        "step_number": 14,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.337,
+        "position_z": 0.237,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 20.0,
+        "step_number": 15,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.337,
+        "position_z": 0.237,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 10.0,
+        "step_number": 16,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 10.0,
+        "step_number": 17,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 10.0,
+        "step_number": 18,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.017,
+        "position_z": 0.098,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 10.0,
+        "step_number": 19,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.116,
+        "position_z": 0.081,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 10.0,
+        "step_number": 20,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.133,
+        "position_z": 0.18,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 10.0,
+        "step_number": 21,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 10,
+        "objects_count": 1,
+        "position_x": 0.133,
+        "position_z": 0.18,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 20.0,
+        "step_number": 22,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 20,
+        "objects_count": 1,
+        "position_x": 0.133,
+        "position_z": 0.18,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 20.0,
+        "step_number": 23,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 24,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 1,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 25,
+        "structural_objects_count": 6
+    }
+]
\ No newline at end of file
diff --git a/integration_tests/data/066.end_habituation.scene.json b/integration_tests/data/066.end_habituation.scene.json
new file mode 100644
index 000000000..aa9f3a1df
--- /dev/null
+++ b/integration_tests/data/066.end_habituation.scene.json
@@ -0,0 +1,38 @@
+{
+    "name": "EndHabituation tests with and without teleport parameters",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
+    "wallMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": [{
+        "id": "testBall",
+        "type": "ball",
+        "mass": 1,
+        "materials": ["AI2-THOR/Materials/Plastics/BlueRubber"],
+        "salientMaterials": ["rubber"],
+        "pickupable": true,
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 0,
+                "y": 0.25,
+                "z": 1
+            },
+            "scale": {
+                "x": 0.5,
+                "y": 0.5,
+                "z": 0.5
+            }
+        }]
+    }]
+}
diff --git a/integration_tests/data/068.scripted_ghost.actions.txt b/integration_tests/data/068.scripted_ghost.actions.txt
new file mode 100644
index 000000000..f2c29c642
--- /dev/null
+++ b/integration_tests/data/068.scripted_ghost.actions.txt
@@ -0,0 +1,4 @@
+﻿Pass
+Pass
+Pass
+Pass
diff --git a/integration_tests/data/068.scripted_ghost.level1.outputs.json b/integration_tests/data/068.scripted_ghost.level1.outputs.json
new file mode 100644
index 000000000..b431ce89a
--- /dev/null
+++ b/integration_tests/data/068.scripted_ghost.level1.outputs.json
@@ -0,0 +1,46 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 4,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/068.scripted_ghost.level2.outputs.json b/integration_tests/data/068.scripted_ghost.level2.outputs.json
new file mode 100644
index 000000000..b431ce89a
--- /dev/null
+++ b/integration_tests/data/068.scripted_ghost.level2.outputs.json
@@ -0,0 +1,46 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 2,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 3,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 4,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/068.scripted_ghost.oracle.outputs.json b/integration_tests/data/068.scripted_ghost.oracle.outputs.json
new file mode 100644
index 000000000..dd8cb1dec
--- /dev/null
+++ b/integration_tests/data/068.scripted_ghost.oracle.outputs.json
@@ -0,0 +1,252 @@
+﻿[
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall1",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": false
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall2",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 2,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 0,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall1",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": false
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall2",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 2,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 1,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall1",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": false
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall2",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 2,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 2,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall1",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": false
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall2",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 2,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 3,
+        "structural_objects_count": 6
+    },
+    {
+        "head_tilt": 0,
+        "objects": [
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall1",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": false
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.248,
+                "direction_z": 0.969,
+                "distance": 2.064,
+                "held": false,
+                "id": "testBall2",
+                "mass": 1,
+                "material_list": [
+                    "RUBBER"
+                ],
+                "position_x": 0.0,
+                "position_z": 2.0,
+                "shape": "ball",
+                "texture_color_list": [
+                    "blue"
+                ],
+                "visible": true
+            }
+        ],
+        "objects_count": 2,
+        "position_x": 0.0,
+        "position_z": 0.0,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 4,
+        "structural_objects_count": 6
+    }
+]
diff --git a/integration_tests/data/068.scripted_ghost.scene.json b/integration_tests/data/068.scripted_ghost.scene.json
new file mode 100644
index 000000000..e4e508777
--- /dev/null
+++ b/integration_tests/data/068.scripted_ghost.scene.json
@@ -0,0 +1,62 @@
+﻿{
+    "name": "scripted temporary intangible also called ghost",
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
+    "wallMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": [{
+        "id": "testBall1",
+        "type": "ball",
+        "mass": 1,
+        "materials": ["AI2-THOR/Materials/Plastics/BlueRubber"],
+        "salientMaterials": ["rubber"],
+        "pickupable": true,
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 0,
+                "y": 0.25,
+                "z": 2
+            },
+            "scale": {
+                "x": 0.5,
+                "y": 0.5,
+                "z": 0.5
+            }
+        }],
+        "ghosts": [{
+            "stepBegin": 0,
+            "stepEnd": 5
+        }]
+    }, {
+        "id": "testBall2",
+        "type": "ball",
+        "mass": 1,
+        "materials": ["AI2-THOR/Materials/Plastics/BlueRubber"],
+        "salientMaterials": ["rubber"],
+        "pickupable": true,
+        "shows": [{
+            "stepBegin": 0,
+            "position": {
+                "x": 0,
+                "y": 0.25,
+                "z": 2
+            },
+            "scale": {
+                "x": 0.5,
+                "y": 0.5,
+                "z": 0.5
+            }
+        }]
+    }]
+}
diff --git a/integration_tests/data/069.intuitive_physics_scene_start.actions.txt b/integration_tests/data/069.intuitive_physics_scene_start.actions.txt
new file mode 100644
index 000000000..bb51421a9
--- /dev/null
+++ b/integration_tests/data/069.intuitive_physics_scene_start.actions.txt
@@ -0,0 +1,1 @@
+﻿Pass
diff --git a/integration_tests/data/069.intuitive_physics_scene_start.level1.outputs.json b/integration_tests/data/069.intuitive_physics_scene_start.level1.outputs.json
new file mode 100644
index 000000000..92164d3be
--- /dev/null
+++ b/integration_tests/data/069.intuitive_physics_scene_start.level1.outputs.json
@@ -0,0 +1,19 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/069.intuitive_physics_scene_start.level2.outputs.json b/integration_tests/data/069.intuitive_physics_scene_start.level2.outputs.json
new file mode 100644
index 000000000..92164d3be
--- /dev/null
+++ b/integration_tests/data/069.intuitive_physics_scene_start.level2.outputs.json
@@ -0,0 +1,19 @@
+[{
+    "step_number": 0,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}, {
+    "step_number": 1,
+    "head_tilt": 0,
+    "position_x": null,
+    "position_z": null,
+    "return_status": "SUCCESSFUL",
+    "rotation_y": null,
+    "objects_count": 0,
+    "structural_objects_count": 0
+}]
diff --git a/integration_tests/data/069.intuitive_physics_scene_start.oracle.outputs.json b/integration_tests/data/069.intuitive_physics_scene_start.oracle.outputs.json
new file mode 100644
index 000000000..a65a89c2c
--- /dev/null
+++ b/integration_tests/data/069.intuitive_physics_scene_start.oracle.outputs.json
@@ -0,0 +1,206 @@
+﻿[
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.0,
+        "position_z": -4.5,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 0,
+        "structural_objects": [
+            {
+                "direction_x": 0.0,
+                "direction_y": 1.0,
+                "direction_z": 0.0,
+                "distance": 2.488,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.219,
+                "direction_z": 0.976,
+                "distance": 4.612,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": 0.701,
+                "direction_z": -0.713,
+                "distance": 1.052,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": 0.224,
+                "direction_z": 0.975,
+                "distance": 10.004,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.975,
+                "direction_y": 0.036,
+                "direction_z": 0.22,
+                "distance": 20.5,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -20.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.975,
+                "direction_y": 0.036,
+                "direction_z": 0.22,
+                "distance": 20.5,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 20.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 5
+    },
+    {
+        "head_tilt": 0,
+        "objects_count": 0,
+        "position_x": 0.0,
+        "position_z": -4.5,
+        "return_status": "SUCCESSFUL",
+        "rotation_y": 0.0,
+        "step_number": 1,
+        "structural_objects": [
+            {
+                "direction_x": 0.0,
+                "direction_y": 1.0,
+                "direction_z": 0.0,
+                "distance": 2.488,
+                "held": false,
+                "id": "ceiling",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": -0.219,
+                "direction_z": 0.976,
+                "distance": 4.612,
+                "held": false,
+                "id": "floor",
+                "position_x": 0.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": 0.701,
+                "direction_z": -0.713,
+                "distance": 1.052,
+                "held": false,
+                "id": "wall_back",
+                "position_x": 0.0,
+                "position_z": -5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.0,
+                "direction_y": 0.224,
+                "direction_z": 0.975,
+                "distance": 10.004,
+                "held": false,
+                "id": "wall_front",
+                "position_x": 0.0,
+                "position_z": 5.25,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": -0.975,
+                "direction_y": 0.036,
+                "direction_z": 0.22,
+                "distance": 20.5,
+                "held": false,
+                "id": "wall_left",
+                "position_x": -20.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            },
+            {
+                "direction_x": 0.975,
+                "direction_y": 0.036,
+                "direction_z": 0.22,
+                "distance": 20.5,
+                "held": false,
+                "id": "wall_right",
+                "position_x": 20.0,
+                "position_z": 0.0,
+                "shape": "structural",
+                "texture_color_list": [
+                    "white"
+                ],
+                "visible": true
+            }
+        ],
+        "structural_objects_count": 5
+    }
+]
\ No newline at end of file
diff --git a/integration_tests/data/069.intuitive_physics_scene_start.scene.json b/integration_tests/data/069.intuitive_physics_scene_start.scene.json
new file mode 100644
index 000000000..eb6cbc51e
--- /dev/null
+++ b/integration_tests/data/069.intuitive_physics_scene_start.scene.json
@@ -0,0 +1,19 @@
+﻿{
+    "name": "intuitive physics scene performer start location and walls",
+    "intuitivePhysics": true,
+    "version": 2,
+    "ceilingMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "floorMaterial": "AI2-THOR/Materials/Fabrics/CarpetWhite 3",
+    "wallMaterial": "AI2-THOR/Materials/Walls/Drywall",
+    "performerStart": {
+        "position": {
+            "x": 0,
+            "z": 0
+        },
+        "rotation": {
+            "x": 0,
+            "y": 0
+        }
+    },
+    "objects": []
+}
diff --git a/tests/test_controller.py b/tests/test_controller.py
index 77b8df029..392cd5eba 100644
--- a/tests/test_controller.py
+++ b/tests/test_controller.py
@@ -22,6 +22,7 @@ class TestController(unittest.TestCase):
     def setUp(self):
         self.controller = MockControllerAI2THOR()
         self.controller.set_metadata_tier('')
+        self.maxDiff = None
 
     @classmethod
     def tearDownClass(cls) -> None:
@@ -345,27 +346,29 @@ def create_wrap_output_scene_event(self):
 
     def create_step_data(self, **kwargs):
         data = dict(
+            consistentColors=False,
             continuous=True,
             gridSize=mcs.Controller.GRID_SIZE,
-            logs=True,
-            renderDepthImage=False,
-            renderObjectImage=False,
-            snapToGrid=False,
-            visibilityDistance=mcs.controller.MAX_REACH_DISTANCE,
             horizon=0,
+            logs=True,
             moveMagnitude=mcs.controller.MOVE_DISTANCE,
+            objectId=None,
             objectImageCoords={
-                'x': 0,
-                'y': 0
+                'x': 0.0,
+                'y': 0.0
             },
-            objectId=None,
+            receptacleObjectId=None,
             receptacleObjectImageCoords={
-                'x': 0,
-                'y': 0
+                'x': 0.0,
+                'y': 0.0
             },
-            receptacleObjectId=None,
-            rotation={'y': 0},
-            consistentColors=False
+            renderDepthImage=False,
+            renderObjectImage=False,
+            rotation={'y': 0.0},
+            snapToGrid=False,
+            teleportPosition=None,
+            teleportRotation=None,
+            visibilityDistance=mcs.controller.MAX_REACH_DISTANCE
         )
 
         for key, value in kwargs.items():
diff --git a/tests/test_util.py b/tests/test_util.py
index b9e89255f..ebfb7619e 100644
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -72,6 +72,7 @@ def test_generate_pretty_object_output(self):
                 state_list=[],
                 texture_color_list=[],
                 held=True,
+                visible=True,
                 position=None,
                 dimensions=None,
                 distance_in_world=0,
@@ -83,16 +84,17 @@ def test_generate_pretty_object_output(self):
                 state_list=['state1', 'state2'],
                 texture_color_list=['black', 'white'],
                 held=False,
+                visible=False,
                 position={
                     'x': 1,
                     'y': 2,
                     'z': 3
                 },
-                dimensions={
+                dimensions=[{
                     'x': 4,
                     'y': 5,
                     'z': 6
-                },
+                }],
                 distance_in_world=1234567890987654321,
                 direction={
                     'x': 10000,
@@ -102,9 +104,9 @@ def test_generate_pretty_object_output(self):
             )
         ]
         self.assertEqual(mcs.Util.generate_pretty_object_output(object_list), [
-            'OBJECT ID        SHAPE  COLORS        HELD   POSITION (WORLD)  DIMENSIONS (WORLD)  DISTANCE (WORLD)     DIRECTION (WORLD)    STATE         ',  # noqa: E501
-            'id1                                   True   None              None                0                    None                               ',  # noqa: E501
-            'really_long_id2  sofa   black, white  False  (1,2,3)           (4,5,6)             1234567890987654321  (10000,20000,30000)  state1, state2'  # noqa: E501
+            'OBJECT ID        SHAPE  COLORS        HELD   VISIBLE  STATE           POSITION (WORLD)  DISTANCE (WORLD)     DIRECTION (WORLD)    DIMENSIONS (WORLD)',  # noqa: E501
+            'id1                                   True   True                     None              0                    None                 None              ',  # noqa: E501
+            'really_long_id2  sofa   black, white  False  False    state1, state2  (1,2,3)           1234567890987654321  (10000,20000,30000)  [(4,5,6)]         '  # noqa: E501
         ])
 
     def test_input_to_action_and_params(self):