A gym package for the 2d crafting multitask world
Project description
Gym Craftingworld
This is a (work-in-progress) gym package for a 2D crafting environment. This environment is based off one first described in Plan Arithmetic: Compositional Plan Vectors for Multi-Task Control, published in NeurIPS 2019, and the mechanics are adapted from the corresponding code at code.
You can read the documentation here.
Environment description
This environment consists of a two-dimensional top-down, grid-based world consisting of 4x4 pixel cells.
The environment contains seven object types of object: Tree
, Rock
, Logs
, Wheat
, Bread
, Hammer
, and Axe
.
Different objects are represented by differently coloured 4x4 blocks, while the agent is represented by a 2x2 white pixel block centered within the 4x4 cell.
The agent's actions are descrete and consist of six possible choices: Up
, Down
, Left
, Right
, PickUp
, and Drop
.
Logs, hammers, and axes can be picked up by agent. Trees and rocks block the agent's movement.
When an agent picks up an object, its block changes to a square block with 2x1 white pixels on top and 2x1 pixels below in the color of the object.
The environment consists of nine skills:
ChopTree
-- The agent is required to be holding anAxe
and on a cell with aTree
toChopTree
and turn it intoLogs
.BuildHouse
-- The agent is required to be holding aHammer
and on a cell with someLogs
toBuildHouse
.MakeBread
-- The agent is required to be holding anAxe
and on a cell with someWheat
toMakeBread
and createBread
.EatBread
-- The agent is required to be on a cell withBread
toEatBread
.BreakRock
-- The agent is required to be holding aHammer
and on a cell with aRock
toBreakRock
.GoToHouse
-- The agent is required to be on a cell with aHouse
toGoToHouse
.MoveAxe
-- The agent is required toPickUp
anAxe
anddrop
it in another cell.MoveHammer
-- The agent is required toPickUp
aHammer
anddrop
it in another cell.MoveLogs
-- The agent is required toPickUp
someLogs
anddrop
it in another cell.
A task is defined by a list of skills. For example, [ChopTree
, BuildHouse
].
The quantities and positions of each object are randomly selected at each reset, which occurs between episodes.
Rendering
To store each episode as a gif, call env.allow_gif_storage()
, which will store each episode in the /renders/
subdirectory.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for gym_craftingworld-0.1.9.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 138463e428548d257d67f65f4dfc6edcd518126717eaf3d73b5ba6e677867df9 |
|
MD5 | c4361bef140e3f5108546eccbc89a37a |
|
BLAKE2b-256 | 59524203b783eb53a19adbade6eb1e8cc4adefd27bcd84b45f493ffd981da900 |
Hashes for gym_craftingworld-0.1.9.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12b88041accc1124ecda3644e08ab44fefb5cc03fc40279c9b1765f96654974f |
|
MD5 | d02a367ff4709817c560164b5235bb80 |
|
BLAKE2b-256 | 20c5b19ace07f2e1ce783fee0b712e5af4b0437a6b5d6bc403ed0f8883e2ea7b |