Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: internal update for v0.2.0 #73

Merged
merged 368 commits into from
Mar 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
368 commits
Select commit Hold shift + click to select a range
9c6e043
feat(binpack): implement a random instance generator for generalization
Aug 16, 2022
4389f30
test: refactor test suite by using fixtures and conftest.py
Aug 16, 2022
e0fb5ec
refactor(binpack): remove pandas dependency
Aug 17, 2022
61f69bb
fix: support python 3.7
Aug 17, 2022
034b899
docs: general update
alaterre Aug 17, 2022
d42950a
feat(Snake): implement render method
Aug 17, 2022
e6867f6
docs(connect4): update connect 4 docstrings
djbyrne Aug 17, 2022
1ed2bc4
feat(anakin): create anakin notebook with snake
Aug 17, 2022
c537dc1
doc(wrappers): user guide wrappers
Aug 17, 2022
5a09933
docs: removed benchmarks from the readmes of snake and routing
djbyrne Aug 17, 2022
487d476
docs(routing): updated class docstrings
djbyrne Aug 17, 2022
5bcbc32
docs(binpack): updated docs for binpacking
djbyrne Aug 17, 2022
1d2cd7e
refactor(pre-commit): move flake8 config and mypy config to pyproject…
Aug 17, 2022
d48bca4
feat(JumanjiEnvironmentToGymEnv): create gym wrapper for Jumanji envi…
Aug 17, 2022
10e4d95
docs: refactor wrappers to conform to jumanji naming convention (#44)
djbyrne Aug 18, 2022
3c8d1e8
fix(snake): close figure so it doesn't get rendered (#47)
lollcat Aug 18, 2022
fe00491
refactor: moved wrapper base class to wrappers.py (#45)
djbyrne Aug 18, 2022
20c0f74
chore: remove unused files (#7)
Coac Aug 18, 2022
ebe963c
feat: remove stackable from csv generator
djbyrne Aug 18, 2022
99d91a3
feat(binpack): use integers instead of floats in the state (#61)
clement-bonnet Aug 18, 2022
d1dce11
Removed PyVirtualDisplay and disabled SDL for tests. (#63)
cemlyn007 Aug 18, 2022
b35706a
docs: added user guide to jumanji to gym (#62)
djbyrne Aug 18, 2022
138b2e3
feat(binpack): register binpacking environments
alaterre Aug 18, 2022
0bc7faa
feat(routing): register the routing environments
alaterre Aug 18, 2022
dc9ee58
docs: update source install instructions
djbyrne Aug 18, 2022
4405ffc
chore: fix white spaces
djbyrne Aug 18, 2022
507391e
test: moved wrapper tests to wrapper
djbyrne Aug 18, 2022
223180a
tests: added make_environment_spec test
djbyrne Aug 18, 2022
96a1844
fix: test type returns for env_tests.py
djbyrne Aug 18, 2022
6ab90bb
fix: rename snake registered environments (#72)
alaterre Aug 19, 2022
3fbb7aa
docs: mkdocs display wrapper user guide (#76)
cemlyn007 Aug 19, 2022
d1b0362
fix: integral -> integer (#78)
lollcat Aug 19, 2022
511e7b3
refactor(TimeStep): move extras into TimeStep (#51)
dluo96 Aug 19, 2022
5b55b6f
feat(binpack): implement binpack render method (#65)
cemlyn007 Aug 19, 2022
21a920a
refactor: renamed simple instance generator to toy instance generator…
cemlyn007 Aug 19, 2022
11a4a08
71 refactor remove deprecated features (#80)
cemlyn007 Aug 19, 2022
d08660f
28 feat(spec): implement multi dimensional discrete array spec (#74)
lollcat Aug 22, 2022
be1d5d5
fix(JumanjiToGymWrapper): conversion of nested observations (#81)
dluo96 Aug 22, 2022
7431f5e
docs: added jumanji to gym to user guide (#87)
cemlyn007 Aug 22, 2022
4783090
feat: VmapWrapper overrides Environment render method (#82)
cemlyn007 Aug 22, 2022
fdef9b8
docs: update authors list (#83)
djbyrne Aug 22, 2022
d0c2649
fix: unnecessary test in knapsack (#90)
cemlyn007 Aug 22, 2022
81c2535
fix: test in knapsack (#91)
cemlyn007 Aug 23, 2022
30e2db9
feat: registration to a pypi server (#86)
alaterre Aug 23, 2022
7a5c4e0
fix(mypy): ensure pre-commit run --all-files runs all mypy checks (#85)
dluo96 Aug 23, 2022
5175c79
doc: vmapwrapper behaviour of observation and action spec getters (#94)
cemlyn007 Aug 23, 2022
a284c3d
docs: incremental improvement to README (#92)
alaterre Aug 23, 2022
e1a112d
refactor: move envs into games or combinatorial_optimization folders …
djbyrne Aug 24, 2022
619d4e1
refactor: centre title for binpack viewer (#98)
cemlyn007 Aug 24, 2022
c6fcc61
docs(binpack): first draft of binpack readme (#49)
djbyrne Aug 24, 2022
af899af
fix: paths to snake image (#110)
djbyrne Aug 24, 2022
0eb9600
docs: add example with scan and vmap to the readme (#100)
lollcat Aug 24, 2022
ba3edf5
ci: rename workflow to test and linters (#116)
Coac Aug 24, 2022
5c38cc0
feat: updated inits for root and envs (#111)
djbyrne Aug 24, 2022
820249f
fix: remove the test files from the source distribution (#117)
alaterre Aug 24, 2022
a5c374e
fix: register envs with new folder structure (#118)
lollcat Aug 24, 2022
e567ee4
docs: incremental improvement the readme (#121)
alaterre Aug 24, 2022
8633352
docs: matplotlib backends (#120)
cemlyn007 Aug 25, 2022
798d538
Update README.md (#127)
ertsiger Aug 25, 2022
527f445
feat: move env to root (#126)
djbyrne Aug 25, 2022
6ed9980
docs: readme db review (#132)
djbyrne Aug 25, 2022
39d024a
ci: add matrix github actions to test different python version (#123)
Coac Aug 25, 2022
9e084bd
docs(mkdocs): improve autogenerated documentation for GitHub Pages (#…
dluo96 Aug 25, 2022
b19190a
docs: typo in extras in readme (#138)
clement-bonnet Aug 25, 2022
63478f5
feat: default light mode (#136)
alaterre Aug 25, 2022
15644d5
feat: added typing-extensions for Protocol (#140)
cemlyn007 Aug 25, 2022
1c44258
docs: typos in readme (#141)
clement-bonnet Aug 25, 2022
c135c51
docs: update to readme (#142)
clement-bonnet Aug 25, 2022
8575956
feat(binpack): implement environment logic (#69)
clement-bonnet Aug 25, 2022
1d5bf34
feat(binpack): make default args to init and finalise class docstring…
clement-bonnet Aug 26, 2022
231c53b
feat: update with CPU option (#146)
lollcat Aug 26, 2022
b3eb1e5
docs: improve documentation in repo (#149)
dluo96 Aug 26, 2022
d76c84d
fix: rendering for colab (#128)
cemlyn007 Aug 26, 2022
445ce50
docs: review README (#150)
djbyrne Aug 26, 2022
aa3544e
ci(runners): use self-hosted runners on GitHub Actions (#155)
dluo96 Aug 26, 2022
9770cc1
156 feat autoreset wrapper binpack (#157)
lollcat Aug 30, 2022
3c5ede7
fix(binpack): do not remove EMS that are doubly included (#154)
clement-bonnet Aug 30, 2022
5bf0ac4
colab: add pip install (#161)
lollcat Aug 31, 2022
fd3f856
fix: colab link (#164)
lollcat Aug 31, 2022
d40d1a1
fix: adapt gym Discrete space for earlier gym versions (#165)
clement-bonnet Aug 31, 2022
ab97772
fix: gym test remove call to start (#166)
clement-bonnet Aug 31, 2022
226f48d
feat: docs improve gifs in the readme and doc (#158) (#159)
clement-bonnet Aug 31, 2022
d114b7d
feat: merge public (#169)
alaterre Nov 16, 2022
1fc00a3
ci: add continuous integration pipeline for python 3.7 (#192)
dluo96 Nov 22, 2022
dcbccf1
chore: update mypy to latest version (#196)
coyettev Nov 22, 2022
c7d8547
feat(binpacking): add a rgb array mode to render the environment (#181)
coyettev Nov 24, 2022
cf66f2c
fix: routing action spec (#199)
arnupretorius Nov 25, 2022
03d4754
refactor: change directory structure to logic/routing/packing (#200)
clement-bonnet Nov 25, 2022
09212b5
feat: environment tutorial notebook (#202)
clement-bonnet Dec 5, 2022
17f6490
refactor(tsp, knapsack): remove starting points (#190)
ertsiger Dec 8, 2022
a12e730
fix(ci): cast numpy int to int to solve mypy failing (#218)
dluo96 Jan 3, 2023
512838e
fix: weak types at some environments initialization (#220)
clement-bonnet Jan 3, 2023
bef88f7
feat(jobshop): define observation and environment state (#215)
dluo96 Jan 4, 2023
b739eee
feat(training): train backbone, loggers and types (#221)
clement-bonnet Jan 4, 2023
635f32b
feat(jobshop): implement instance generators (#223)
dluo96 Jan 5, 2023
5eb05e2
feat: merge jumanji-v.0.1.4 (#229)
clement-bonnet Jan 5, 2023
cd200bc
feat(training): random agent (#226)
clement-bonnet Jan 5, 2023
b33589a
feat: implement RubiksCube environment (#210)
TristanKalloniatis Jan 5, 2023
361ac97
feat(training): evaluator (#227)
clement-bonnet Jan 6, 2023
0297466
feat(training): setup train (#228)
clement-bonnet Jan 6, 2023
5b8e782
feat: rubik's cube nits (#234)
TristanKalloniatis Jan 6, 2023
449126f
refactor(jobshop): changed index of noop in instance generator (#238)
dluo96 Jan 6, 2023
d57ed2e
feat(jobshop): implement specs and backbone of environment (#225)
dluo96 Jan 6, 2023
9ec8565
feat(jobshop): implement environment reset method (#231)
dluo96 Jan 9, 2023
83a93fb
feat(training): implement random networks (#240)
clement-bonnet Jan 9, 2023
aa4372f
feat(training): add configs (#241)
clement-bonnet Jan 9, 2023
78e5dfd
feat(training): implement a2c (#253)
clement-bonnet Jan 10, 2023
d3340bf
feat(training): actor-critic networks for encoder-decoder architectur…
clement-bonnet Jan 10, 2023
399100a
docs: added more conditions to the new env checklist (#246)
djbyrne Jan 10, 2023
a4801e0
feat(training): actor-critic networks for knapsack (#255)
clement-bonnet Jan 10, 2023
c90436a
feat(training): actor-critic networks for snake and routing (#259)
clement-bonnet Jan 10, 2023
1cc2074
feat(training): actor-critic networks for tsp (#258)
clement-bonnet Jan 10, 2023
584adbf
feat(training): actor-critic networks for cvrp (#257)
clement-bonnet Jan 10, 2023
84cc296
feat(jobshop): implement step method (#247)
dluo96 Jan 10, 2023
971fc68
docs(jobshop): write documentation (#260)
dluo96 Jan 11, 2023
71661eb
feat(training): add binpack network (#263)
clement-bonnet Jan 11, 2023
2965dd6
feat(training): setup networks (#262)
clement-bonnet Jan 11, 2023
91595d5
feat: rubik/minesweeper inspired cleanup (#265)
TristanKalloniatis Jan 12, 2023
5a1e3b0
feat: implement Minesweeper (#252)
TristanKalloniatis Jan 12, 2023
55be554
feat(training): add training notebook (#264)
clement-bonnet Jan 12, 2023
1920d52
feat: minesweeper rendering (#266)
TristanKalloniatis Jan 12, 2023
09de010
feat(jobshop): implement render (#270)
dluo96 Jan 13, 2023
b8572e4
feat(mypy): update mypy to latest version (#277)
coyettev Jan 13, 2023
eea2b06
feat(training): random policy for RubiksCube (#271)
clement-bonnet Jan 13, 2023
5e7f9f5
fix(linter): ignore B017 error (#286)
clement-bonnet Jan 16, 2023
68ea78f
feat(jobshop): implement random network (#285)
dluo96 Jan 16, 2023
71bd5d1
feat(ci): remove pr trigger (#287)
dluo96 Jan 16, 2023
cf4d689
feat(Minesweeper): implement random network (#284)
TristanKalloniatis Jan 16, 2023
fc50aa9
feat(training): add timer to assess speed env steps (#282)
clement-bonnet Jan 16, 2023
d845366
feat(wrapper): implement VmapAutoResetWrapper for efficient auto rese…
clement-bonnet Jan 17, 2023
a71e6a9
fix(training): routing actor-critic network feature map selection (#289)
clement-bonnet Jan 17, 2023
1386862
fix(jobshop): remove bugs in step function (#292)
dluo96 Jan 19, 2023
937fc9f
fix: add large negative penalty for invalid actions in tsp and cvrp (…
dluo96 Jan 19, 2023
e9f1c6c
feat(2048): add types and specs (#248)
OmaymaMahjoub Jan 24, 2023
445e1ba
feat(training): add neptune logger (#303)
clement-bonnet Jan 26, 2023
226d782
fix: hydra requirement (#304)
alaterre Jan 26, 2023
8f90c99
feat(training): restrict networks to only handle batch of observation…
clement-bonnet Jan 26, 2023
153699a
feat(jobshop): a2c network (#291)
dluo96 Jan 30, 2023
866594d
fix(ci): upgrade isort (#330)
sash-a Jan 30, 2023
89a1229
feat(cleaner): define types and specs (#315)
coyettev Jan 31, 2023
9dcabb4
feat(minesweeper): actor-critic networks (#324)
TristanKalloniatis Jan 31, 2023
2cd289a
feat(connector): types, utils and specs (#296)
sash-a Feb 1, 2023
b791ff3
feat(tsp): implement rendering (#323)
surana01 Feb 1, 2023
55b7b0a
feat(cvrp): rendering (#345)
surana01 Feb 2, 2023
6f75230
feat: maze env (#235)
PDuckworth Feb 3, 2023
2483b51
feat(animation): minesweeper and rubikscube (#342)
TristanKalloniatis Feb 4, 2023
6fb23a8
feat(rubiks_cube): actor critic nn (#339)
TristanKalloniatis Feb 4, 2023
80ff5a1
feat(training): tensorboard logger (#362)
TristanKalloniatis Feb 6, 2023
165e2bf
fix(training): namedtuple and generic types in python3.9 (#365)
clement-bonnet Feb 6, 2023
9519396
feat(connector): generator (#297)
sash-a Feb 7, 2023
771205b
feat: clean CVRP, Knapsack, TSP (#204)
ertsiger Feb 9, 2023
e2e9f1b
feat(rware): types (#350)
arnupretorius Feb 9, 2023
b82425e
feat(cmst): implemented types and specs for cooperative minimum spann…
ulricharmel Feb 9, 2023
fe9608c
feat(planar): Environment Base (#278)
alaterre Feb 9, 2023
ba66ccb
feat(connector): reward (#366)
sash-a Feb 10, 2023
644151b
feat(planar): rendering (#368)
alaterre Feb 10, 2023
ca5dd3e
feat (connector): env skeleton (#370)
sash-a Feb 13, 2023
bd80ed3
fix(flake8): added stacklevel to warning (#376)
dluo96 Feb 14, 2023
29af738
feat(cleaner): random instance generator (#341)
coyettev Feb 14, 2023
3008ae7
feat(2048): env implementation (#249)
OmaymaMahjoub Feb 15, 2023
e6d4d7d
feat(training) add ichor manifest (#361)
clement-bonnet Feb 16, 2023
779a516
feat(2048): random policy (#381)
OmaymaMahjoub Feb 16, 2023
b94d4f6
refactor: remove connect4 (#382)
clement-bonnet Feb 16, 2023
d759c6d
feat(training): make a2c configs environment-specific (#385)
clement-bonnet Feb 17, 2023
022f238
feat(training): upgrade aichor manifest (#387)
clement-bonnet Feb 17, 2023
fc50538
refactor: extract maze generation to its own module (#386)
coyettev Feb 17, 2023
8f2a6ae
feat: merge jumanji-v.0.1.5 (#392)
clement-bonnet Feb 20, 2023
4bd62bb
feat(connector): reset (#372)
sash-a Feb 21, 2023
e58871a
feat(training): add greedy evaluation (#391)
clement-bonnet Feb 21, 2023
735876e
fix: brax requirements
Feb 21, 2023
268a7ad
Merge branch 'main' of github.com:instadeepai/jumanji into main
Feb 22, 2023
e970686
feat(2048): rendering 2048 (#389)
OmaymaMahjoub Feb 22, 2023
b73870d
205(feat) maze thick walls (#395)
PDuckworth Feb 22, 2023
00c7284
feat(cleaner): implement env step and reset (#380)
coyettev Feb 22, 2023
55e1a73
feat(maze): add common render script (#394)
coyettev Feb 22, 2023
8306540
feat(cleaner): add render method (#405)
coyettev Feb 23, 2023
8563b32
feat: merge jumanji v0.1.6 (#403)
clement-bonnet Feb 23, 2023
b9aeb43
feat(tsp): implement dense and sparse rewards (#400)
clement-bonnet Feb 23, 2023
e2558f6
feat (connector): utils methods and tests refactor (#401)
sash-a Feb 23, 2023
e1b74dd
docs(2048): documentation (#251)
OmaymaMahjoub Feb 23, 2023
25004f8
refactor: factorise specs (#402)
dluo96 Feb 24, 2023
bd5c718
ci: drop support for python 3.7 (#414)
clement-bonnet Feb 24, 2023
46a8528
feat(cvrp): implement dense and sparse reward functions (#412)
clement-bonnet Feb 24, 2023
19156df
feat: maze reset to use random instance generator (#409)
PDuckworth Feb 24, 2023
8f1324f
feat(cleaner): create random agent (#408)
coyettev Feb 27, 2023
e8d2dd6
feat(knapsack): implement dense and sparse reward functions (#419)
clement-bonnet Feb 27, 2023
42194df
feat(training): transformer block, tsp networks and fix a2c advantage…
clement-bonnet Feb 27, 2023
8103c0f
feat: maze render to use maze generation (#422)
PDuckworth Feb 28, 2023
385fbd7
feat(connector): step (#410)
sash-a Feb 28, 2023
e6e24a7
docs(maze): documentation (#424)
PDuckworth Feb 28, 2023
391f19c
feat(maze): create random agent (#426)
PDuckworth Feb 28, 2023
947930b
feat(2048): actor-critic net (#411)
OmaymaMahjoub Feb 28, 2023
5aee4c1
feat(training): save checkpoint when training stops (#429)
clement-bonnet Mar 1, 2023
0b5e9d0
fix(training): use discount_factor in a2c (#439)
clement-bonnet Mar 1, 2023
50dee1f
docs: update jumanji logo (#377)
dluo96 Mar 1, 2023
a7af64a
feat: remove routing environment (#440)
dluo96 Mar 2, 2023
8366ef2
feat(jobshop): clean up environment (#427)
dluo96 Mar 2, 2023
07f9b32
feat(training): implement cvrp networks (#431)
clement-bonnet Mar 2, 2023
3d252b2
feat(knapsack): implement rendering (#313)
dluo96 Mar 2, 2023
965ef1e
feat(training): Knapsack actor critic network (#442)
clement-bonnet Mar 2, 2023
96745ba
fix: update imports and docstrings (#445)
dluo96 Mar 2, 2023
951947d
feat(maze) implement a2c agent (#438)
PDuckworth Mar 2, 2023
c8580e1
build(setup): add package extras for train (#446)
dluo96 Mar 2, 2023
54d1b6f
test: add smoke tests (#447)
dluo96 Mar 2, 2023
e233b59
feat(maze) register 10x10 default (#448)
PDuckworth Mar 2, 2023
5bbf6f3
feat (connector): random agent (#451)
sash-a Mar 2, 2023
7f90413
fix: dockerfile (#453)
clement-bonnet Mar 3, 2023
d342313
fix: change unnecesary jnp.float32 to float (#455)
clement-bonnet Mar 3, 2023
143c0f0
refactor(snake): clean snake and augment observation (#452)
clement-bonnet Mar 3, 2023
f626979
feat(training): log extra info from the environment during evaluation…
clement-bonnet Mar 3, 2023
efc1778
refactor: make render and animate consistent (#459)
clement-bonnet Mar 3, 2023
2c33e22
docs(cleaner): add documentation (#457)
coyettev Mar 3, 2023
5940424
feat(connector): docs (#444)
sash-a Mar 6, 2023
098641d
fix(evaluator): use final_acting_state for episode length (#462)
coyettev Mar 6, 2023
7f50b43
refactor: clean up of environments (#458)
dluo96 Mar 6, 2023
8f9555c
fix(snake): registration updated to num_rows and num_cols (#463)
PDuckworth Mar 7, 2023
51acb47
feat(connector): rendering (#428)
sash-a Mar 7, 2023
559eb25
test: verify make for all registered environments (#465)
dluo96 Mar 7, 2023
f33ef8c
fix(training): eval timer (#466)
clement-bonnet Mar 7, 2023
bdf76e5
Fix(2048): rendering fixes (#460)
OmaymaMahjoub Mar 8, 2023
080be90
feat: add a py.typed file so that mypy will know to use our type anno…
dluo96 Mar 8, 2023
d38364f
docs: update README (#443)
dluo96 Mar 8, 2023
063c4b2
fix(bin_pack): clean bin_pack (#464)
clement-bonnet Mar 8, 2023
a3ee7f8
feat: make generators consistent for connector and cleaner (#470)
dluo96 Mar 9, 2023
cf913f4
fea(bin_pack): a2c networks (#471)
clement-bonnet Mar 9, 2023
4734924
feat(cleaner): implement A2C network (#421)
coyettev Mar 9, 2023
7107d68
docs: gifs (#477)
dluo96 Mar 10, 2023
2966bf7
feat: more clean up (#476)
dluo96 Mar 10, 2023
16e290a
feat(cleaner): add transparency to viewer (#475)
coyettev Mar 10, 2023
1e3875e
feat(connector): Connector network and GIF (#478)
clement-bonnet Mar 10, 2023
8c41f0b
refactor: update registry (#479)
dluo96 Mar 13, 2023
82dedda
feat(training): final Minesweeper configs and GIF (#480)
clement-bonnet Mar 13, 2023
7e70856
docs(2048): add documentation to the types file (#482)
OmaymaMahjoub Mar 13, 2023
e46f072
feat(2048): finalise network and configs (#483)
dluo96 Mar 13, 2023
9b33358
refactor: use save path (#484)
dluo96 Mar 14, 2023
e2d933d
docs: update README (#487)
dluo96 Mar 15, 2023
7098ed5
feat: update readme and remove notebook (#489)
dluo96 Mar 15, 2023
6147756
feat(rubiks_cube): final adjustments (#485)
clement-bonnet Mar 16, 2023
aa8b7fd
fix: do not default the state key (#490)
clement-bonnet Mar 16, 2023
623c510
Tristan/typoe (#491)
TristanKalloniatis Mar 16, 2023
5f2d771
feat: add extras to train rollouts (#492)
clement-bonnet Mar 16, 2023
541d641
fix(training): add extras to a2c metrics (#493)
clement-bonnet Mar 16, 2023
c2ce833
feat(jobshop): a2c network with transformer (#449)
dluo96 Mar 17, 2023
58af6b2
feat(training): bin_pack networks (#481)
clement-bonnet Mar 17, 2023
2cd6d19
feat(training): final training configs (#494)
clement-bonnet Mar 17, 2023
b5ae462
fix(rendering): remove start_event_loop(2.0) and fix environment clos…
cemlyn007 Mar 17, 2023
97d3a5e
Merge branch 'main' of github.com:instadeepai/jumanji into main
Mar 17, 2023
95793fc
docs: last-minute readme changes (#497)
clement-bonnet Mar 17, 2023
6c02fb0
feat: pull from internal
Mar 17, 2023
7f038d1
ci: add pip install .[dev]
Mar 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ body:
- type: input
attributes:
label: What Jumanji version are you using?
placeholder: For example jumanji v0.1.1
placeholder: For example jumanji v0.2.0
- type: input
attributes:
label: Which accelerator(s) are you using?
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tests_linters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:

strategy:
matrix:
python-version: ["3.7", "3.8", "3.9"]
python-version: ["3.8", "3.9"]
os: [ubuntu-latest]

steps:
Expand All @@ -21,7 +21,7 @@ jobs:
with:
python-version: "${{ matrix.python-version }}"
- name: Install python dependencies 🔧
run: pip install .[dev]
run: pip install .[dev,train]
- name: Run linters 🖌️
run: pre-commit run --all-files --verbose
- name: Run tests 🧪
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -151,3 +151,5 @@ cython_debug/

3.8/
jumanji_env/
**/outputs/
*.xml
16 changes: 9 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,15 @@ Before sending your pull request for review, make sure your changes are consiste

#### When contributing a new environment

When contributing a new environment, make sure to do the following:
1. Implement all the functions of the Environment abstraction: step, reset, specs, etc.
2. Implement unit tests for every function used by the environment, including a `test_[your_env]__does_not_smoke` using the testing utils.
3. Add an environment README in the `docs/environments/` folder describing the environment you implemented.
4. Add an image (or gif) in the readme above. Images are located in `docs/img/`.
5. Update the documentation api in `docs/api/environments/` to add your environment to the doc.
6. Update the `mkdocs.yml` file to include the newly added markdown files.
1. Confirm with a member of the development team that the environment is a right fit for the repo.
2. Complete a design document outlining the problem formulation and software design. Please have the design doc reviewed by a core development team member before submitting PRs.
3. New environments must be broken down into small, logical PRs that iteratively add the full logic of the environment. This is to avoid very large PRs that are hard to review and require more re-work if problems are discovered.
4. Implement all the functions of the `Environment` abstraction: step, reset, specs, etc.
5. Implement unit tests for every function used by the environment, including a `test_[your_env]__does_not_smoke` using the testing utils.
6. Add an environment README in the `docs/environments/` folder describing the environment you implemented.
7. Add an image (or gif) in the readme above. Images are located in `docs/img/`.
8. Update the documentation api in `docs/api/environments/` to add your environment to the doc.
9. Update the `mkdocs.yml` file to include the newly added markdown files.


### Coding Style
Expand Down
222 changes: 110 additions & 112 deletions README.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
::: jumanji.environments.combinatorial.binpack.env.BinPack
::: jumanji.environments.packing.bin_pack.env.BinPack
selection:
members:
- __init__
Expand Down
1 change: 1 addition & 0 deletions docs/api/environments/cleaner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
::: jumanji.environments.routing.cleaner.env.Cleaner
1 change: 0 additions & 1 deletion docs/api/environments/connect4.md

This file was deleted.

11 changes: 11 additions & 0 deletions docs/api/environments/connector.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
::: jumanji.environments.routing.connector.env.Connector
selection:
members:
- init
- observation_spec
- action_spec
- reward_spec
- discount_spec
- reset
- step
- render
2 changes: 1 addition & 1 deletion docs/api/environments/cvrp.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
::: jumanji.environments.combinatorial.cvrp.env.CVRP
::: jumanji.environments.routing.cvrp.env.CVRP
selection:
members:
- __init__
Expand Down
8 changes: 8 additions & 0 deletions docs/api/environments/game_2048.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
::: jumanji.environments.logic.game_2048.env.Game2048
selection:
members:
- __init__
- reset
- step
- observation_spec
- action_spec
8 changes: 8 additions & 0 deletions docs/api/environments/job_shop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
::: jumanji.environments.packing.job_shop.env.JobShop
selection:
members:
- __init__
- reset
- step
- observation_spec
- action_spec
3 changes: 1 addition & 2 deletions docs/api/environments/knapsack.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
::: jumanji.environments.combinatorial.knapsack.env.Knapsack
::: jumanji.environments.packing.knapsack.env.Knapsack
selection:
members:
- __init__
- reset
- reset_from_state
- step
- observation_spec
- action_spec
8 changes: 8 additions & 0 deletions docs/api/environments/maze.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
::: jumanji.environments.routing.maze.env.Maze
selection:
members:
- __init__
- reset
- step
- observation_spec
- action_spec
8 changes: 8 additions & 0 deletions docs/api/environments/minesweeper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
::: jumanji.environments.logic.minesweeper.env.Minesweeper
selection:
members:
- __init__
- reset
- step
- observation_spec
- action_spec
20 changes: 0 additions & 20 deletions docs/api/environments/routing.md

This file was deleted.

8 changes: 8 additions & 0 deletions docs/api/environments/rubiks_cube.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
::: jumanji.environments.logic.rubiks_cube.env.RubiksCube
selection:
members:
- __init__
- reset
- step
- observation_spec
- action_spec
12 changes: 3 additions & 9 deletions docs/api/environments/snake.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
::: jumanji.environments.games.snake.env.Snake
::: jumanji.environments.routing.snake.env.Snake
selection:
members:
- __init__
- observation_spec
- action_spec
- reset
- step
- update_head_pos
- render
- close
- animation
- __enter__
- __exit__
- observation_spec
- action_spec
3 changes: 1 addition & 2 deletions docs/api/environments/tsp.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
::: jumanji.environments.combinatorial.tsp.env.TSP
::: jumanji.environments.routing.tsp.env.TSP
selection:
members:
- __init__
- reset
- reset_from_state
- step
- observation_spec
- action_spec
1 change: 0 additions & 1 deletion docs/api/wrappers.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
- VmapWrapper
- AutoResetWrapper
- JumanjiToGymWrapper
- JumanjiToGymWrapper
- jumanji_to_gym_obs
filters:
- "!^_"
Expand Down
Binary file added docs/env_anim/bin_pack.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/cleaner.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/connector.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/cvrp.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/game_2048.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/job_shop.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/job_shop_annotated.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/knapsack.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/maze.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/minesweeper.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/rubiks_cube.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/snake.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_anim/tsp.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/connector.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/cvrp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/game_2048.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/job_shop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/knapsack.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/maze.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/minesweeper.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/rubiks_cube.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/snake.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/env_img/tsp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 46 additions & 0 deletions docs/environments/bin_pack.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# BinPack Environment
# TODO
<p align="center">
<img src="../env_anim/bin_pack.gif" width="500"/>
</p>

We provide here an implementation of the 3D [bin packing problem](https://en.wikipedia.org/wiki/Bin_packing_problem).
In this problem, the goal of the agent is to efficiently pack a set of boxes (items) of different
sizes into a single container with as little empty space as possible.


## Observation
The observation given to the agent provides information on the available empty space (called EMSs),
the items that still need to be packed, and information on what actions are valid at this point.
The full observation is as follows:
- `ems`: `EMS` tree of jax arrays (float if `normalize_dimensions` else int32) each of shape
`(obs_num_ems,)`, coordinates of all EMSs at the current timestep.
- `ems_mask`: jax array (bool) of shape `(obs_num_ems,)`, indicates the EMSs that are valid.
- `items`: `Item` tree of jax arrays (float if `normalize_dimensions` else int32) each of shape
`(max_num_items,)`, characteristics of all items for this instance.
- `items_mask`: jax array (bool) of shape `(max_num_items,)`, indicates the items that are valid.
- `items_placed`: jax array (bool) of shape `(max_num_items,)`, indicates the items that have been
placed so far.
- `action_mask`: jax array (bool) of shape `(obs_num_ems, max_num_items)`, mask of the joint action
space: `True` if the action `[ems_id, item_id]` is valid.


## Action
The action space is a `MultiDiscreteArray` of 2 integer values representing the ID of an EMS
(space) and the ID of an item. For instance, `[1, 5]` will place item 5 in EMS 1.


## Reward
The reward could be either:
- **Dense**: normalized volume (relative to the container volume) of the item packed by taking
the chosen action. The computed reward is equivalent to the increase in volume utilization
of the container due to packing the chosen item. If the action is invalid, the reward is 0.0
instead.
- **Sparse**: computed only at the end of the episode (otherwise, returns 0.0). Returns the volume
utilization of the container (between 0.0 and 1.0). If the action is invalid, the action is
ignored and the reward is still returned as the current container utilization.


## Registered Versions 📖
- `BinPack-v1`, 3D bin-packing problem with a solvable random generator that generates up to 30
items maximum, that can handle 100 EMSs and that shows the 70 largest EMSs to the agent.
79 changes: 0 additions & 79 deletions docs/environments/binpack.md

This file was deleted.

50 changes: 50 additions & 0 deletions docs/environments/cleaner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Cleaner Environment

<p align="center">
<img src="../env_anim/cleaner.gif" height="600"/>
</p>

We provide here a JAX jit-able implementation of the [Multi-Agent Cleaning](https://github.com/Bigpig4396/Multi-Agent-Reinforcement-Learning-Environment#multi-agent-cleaner)
environment.

In this environment, multiple agents must cooperatively clean the floor of a room with complex
indoor barriers (black). At the beginning of an episode, the whole floor is dirty (green).
Every time an agent (red) visits a dirty tile, it is cleaned (white).

The goal is to clean as many tiles as possible in a given time budget.

A new maze is randomly generated using a recursive division method for each new episode. Agents
always start in the top left corner of the maze.


## Observation
The **observation** seen by the agent is a `NamedTuple` containing the following:
- `grid`: jax array (int) of shape `(num_rows, num_cols)`, array representing the grid, each tile is
either dirty (0), clean (1), or a wall (2).
- `agents_locations`: jax array (int) of shape `(num_agents, 2)`, array specifying the x and y
coordinates of every agent.
- `action_mask`: jax array (bool) of shape `(num_agents, 4)`, array specifying, for each agent,
which action (up, right, down, left) is legal.
- `step_count`: jax array (int32) of shape `()`, number of steps elapsed in the current episode.


## Action
The action space is a `MultiDiscreteArray` containing an integer value in `[0, 1, 2, 3]` for each
agent. Each agent can take one of four actions: up (`0`), right (`1`), down (`2`), or left (`3`).

The episode terminates if any agent meets one of the following conditions:

- An invalid action is taken, or
- An action is blocked by a wall.

In both cases, the agent's position remains unchanged.


## Reward
The reward is global and shared among the agents. It is equal to the number of tiles which were
cleaned during the time step, minus a penalty (0.5 by default) to encourage agents to clean the
maze faster.


## Registered Versions 📖
- `Cleaner-v0`, a room of size 10x10 with 3 agents.
Loading