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.5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 767e41396b67d2882b0063f217f55a0f9c8068fe150216a9efa4dc21c0316d6c |
|
MD5 | 1d7b30eef5e78d2ff6782b5897eda86d |
|
BLAKE2b-256 | 272014586584d5a125ec3e1b595f5d926dbfed2690198f28fe2621632c63b56e |
Hashes for gym_craftingworld-0.1.9.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34524e497d0af6ab7286cf75a196374fce13a7532d3cf4d5ee854afaba570996 |
|
MD5 | c3065472051c261ee3329420c8531ebb |
|
BLAKE2b-256 | 7f652eb1b3a94d5a0e1846f613567f1c972cc6b4862632496429a91b521c55e4 |