Skip to content

Commit

Permalink
Releasing ILE Scene Generator version 1.9
Browse files Browse the repository at this point in the history
  • Loading branch information
ThomasSchellenbergNextCentury committed Jun 15, 2023
1 parent 037de48 commit e6cf152
Show file tree
Hide file tree
Showing 106 changed files with 18,968 additions and 6,182 deletions.
301 changes: 225 additions & 76 deletions ILE_API.md

Large diffs are not rendered by default.

39 changes: 38 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,32 @@ python ile.py -c ile_config.yaml -n 10 -p scene

### Latest Release Notes

#### Release 1.9

Changelog:
- Added ILE example configs for Eval 7 tasks:
- `ile_configs/interactive_hidden_set_rotation.yaml`
- `ile_configs/interactive_multi_tool_use.yaml`
- Added "isosceles" tools for tool tasks: similar to "hooked" tools, which have one side of exactly length 3, and one side of variable length, "isosceles" tools have two sides of equal length.
- Added `adjacent_corner` keyword for `keyword_location` options to position an object in the corner of the room.
- Added `align_with` option in ToolConfig to position a tool in alignment with another object.
- Added `labels` option to AgentConfig and KeywordObjectsConfig to set custom labels on those entities.
- Added `materials` option in ToolConfig to set tool color/texture. By default, this is randomized among all available tool materials (currently: grey, brown, green, or pink).
- Added `no_projectile` option in StructuralDropperConfig and StructuralThrowerConfig to generate droppers/throwers without projectiles.
- Added `projectile_dimensions` option in StructuralDropperConfig and StructuralThrowerConfig to generate random projectiles with specific dimensions.
- Added `surrounded_by_lava` and `surrounding_lava_size` options in InteractableObjectConfig and ToolConfig to automatically surround an object with lava.
- Added new open-topped container objects (like trash bins and lidless crates) for Spatial Reorientation and other scenes.
- Updated `ile_configs/interactive_arithmetic.yaml` and `ile_configs/interactive_number_comparison.yaml` to have occluders that come down at the start of the scene. See the comments in these files for more information, including instructions on how to remove them if desired.
- Updated `ile_configs/interactive_spatial_reference.yaml` to correctly "freeze" the performer agent until everything else in the scene stops moving.
- Updated `ile_configs/interactive_collision.yaml` and `ile_configs/interactive_trajectory.yaml` to generate rooms of varying depths.
- Updated `ile_configs/interactive_imitation.yaml` to rotate containers similarly to the eval scenes.
- Updated `ile_configs/interactive_moving_target_prediction.yaml` to use `shortcut_start_on_platform`.
- Updated `ile_configs/interactive_spatial_reorientation.yaml` to have the correct starting Z position for the performer agent, as well as the correct black "blocking walls" on top of the platform.
- Bug fix: Doors should always be different colors from their surrounding walls (including door occluder sections).
- Bug fix: Lids can now be placed on top of containers after they have been rotated.
- Bug fix: Rotations are allowed to be floats.
- Bug fix: Turntable (rotating_cog) material should default to GreyWoodMCS.

#### Release 1.8

Changelog:
Expand Down Expand Up @@ -398,14 +424,25 @@ List of example ILE configuration files for generating scenes similar to specifi
- [interactive_collision.yaml](./ile_configs/interactive_collision.yaml) Generates scenes similar to the interactive collision eval tasks: start on a platform, with lava bisecting the room; a thrower rolls a green ball that may or may not collide with a soccer ball; a two-door-occluder descends from the ceiling to obstruct your view of the collision/trajectory; you can only open one door and must determine which side of the room contains the soccer ball.
- [interactive_imitation.yaml](./ile_configs/interactive_imitation.yaml) Generates scenes similar to the interactive imitation eval tasks. See the config file for details.
- [interactive_number_comparison.yaml](./ile_configs/interactive_number_comparison.yaml) Generates scenes similar to the interactive number comparison eval tasks: start on a platform bisecting the room; one or more soccer ball multi-retrieval targets on one side; fewer soccer balls on the other side.
- [interactive_set_rotation.yaml](./ile_configs/interactive_set_rotation.yaml) Generates scenes similar to the interactive set rotation eval tasks: start in a room with one or more identical containers positioned on top of a turntable (giant cog); a soccer ball retrieval target is placed inside a container; lids are placed on all containers; the turntable rotates between 90 and 360 degrees.
- [interactive_set_rotation.yaml](./ile_configs/interactive_set_rotation.yaml) Generates scenes similar to the interactive set rotation eval tasks: start in a room with one or more identical containers positioned on top of a turntable (giant cog); a soccer ball retrieval target is placed inside a container; lids are placed on all containers; the turntable rotates between 90 and 360 degrees (alternatively, the performer agent is forced to move around the turntable between 90 and 360 degrees).
- [interactive_shell_game.yaml](./ile_configs/interactive_shell_game.yaml) Generates scenes similar to the interactive shell game eval tasks: start in a room with one or more identical containers; a soccer ball retrieval target is placed inside a container; lids are placed on all containers; a placer drags the target's container to a new location.
- [interactive_spatial_reference.yaml](./ile_configs/interactive_spatial_reference.yaml) Generates scenes similar to the interactive spatial reference eval tasks: start on a platform bisecting the room; identical closed containers on both sides; an agent walks and points at the container hiding the soccer ball retrieval target; a turntable (giant cog) rotates a non-agent object so it "points" at a container, which may be the same container, or the opposite container.
- [interactive_spatial_reorientation.yaml](./ile_configs/interactive_spatial_reorientation.yaml) Generates scenes similar to the interactive spatial reorientation eval tasks: start on a platform bisecting the room; identical bins on either side of the room; a placer drops a soccer ball retrieval target into one bin; the performer agent is kidnapped and sometimes teleported to the other side of the room; sometimes one room wall is a different color, and/or the room is trapezoidal.
- [interactive_trajectory.yaml](./ile_configs/interactive_trajectory.yaml) Generates scenes similar to the interactive trajectory eval tasks: start on a platform, with lava bisecting the room; a thrower rolls the soccer ball; a two-door-occluder descends from the ceiling to obstruct your view of the full trajectory; you can only open one door and must determine which side of the room contains the soccer ball.
- [interactive_tool_choice.yaml](./ile_configs/interactive_tool_choice.yaml) Generates scenes similar to the interactive tool choice eval tasks: start on a platform bisecting the room; soccer balls surrounded by lava on both sides; one side has a useful tool, but the other side does not have a tool, or has a tool that is too small to use.
- [passive_seeing_leads_to_knowing.yaml](./ile_configs/passive_seeing_leads_to_knowing.yaml) Generates scenes similar to the passive seeing leads to knowing eval tasks. See the config file for details.

Eval 7 Tasks:

| Eval 7 Task | MCS Core Domains | Example Config Files |
| --- | --- | --- |
| Hidden Set Rotation (Interactive) | O1, O4, P5 | [interactive_hidden_set_rotation.yaml](./ile_configs/interactive_hidden_set_rotation.yaml) |
| Knowledgeable Agents (Interactive) | TODO | TODO |
| Multi-Tool-Use (Interactive) | O5 | [interactive_multi_tool_use.yaml](./ile_configs/interactive_multi_tool_use.yaml) |

- [interactive_hidden_set_rotation.yaml](./ile_configs/interactive_hidden_set_rotation.yaml) Generates scenes similar to the interactive hidden set rotation eval tasks: start in a room with one or more identical containers positioned on top of a turntable (giant cog); a soccer ball retrieval target is placed inside a container; lids are placed on all containers; a giant "tube occluder" occludes the turntable and containers while the turntable rotates between 90 and 360 degrees (alternatively, the performer agent is forced to move around the turntable between 90 and 360 degrees).
- [interactive_multi_tool_use.yaml](./ile_configs/interactive_multi_tool_use.yaml) Generates scenes similar to the interactive multi tool use eval tasks: a soccer ball retrieval target starts in a corner of the room and surrounded by lava; a hooked tool starts in the middle of the room and surrounded by lava; a rectangular tool starts somewhere in the room; you must first use the rectangular tool to push the hooked tool out from the lava, then use the hooked tool to pull the soccer ball out from the lava.

## Scene Validation

In the `MCS` repository, in the `scripts` folder, use one of the following scripts to run all of the new scenes, depending on if you're running an interactive or passive (intuitive physics, agents, etc.) hypercube.
Expand Down
10 changes: 9 additions & 1 deletion generator/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,20 @@
TypeChoice
)
from .exceptions import SceneException
from .geometry import MAX_TRIES, ObjectBounds
from .geometry import (
MAX_TRIES,
PERFORMER_HALF_WIDTH,
PERFORMER_HEIGHT,
PERFORMER_WIDTH,
ObjectBounds
)
from .interactive_goals import (
InteractiveGoal,
MultiRetrievalGoal,
RetrievalGoal,
TransferralGoal,
TraversalGoal
)
from .materials import MaterialTuple
from .objects import SceneObject
from .scene import PartitionFloor, Scene, get_step_limit_from_dimensions
Loading

0 comments on commit e6cf152

Please sign in to comment.