continual-foragax 0.38.0__tar.gz → 0.39.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/PKG-INFO +1 -1
  2. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/pyproject.toml +2 -2
  3. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/continual_foragax.egg-info/PKG-INFO +1 -1
  4. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/env.py +45 -19
  5. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/registry.py +2 -2
  6. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/README.md +0 -0
  7. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/setup.cfg +0 -0
  8. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/continual_foragax.egg-info/SOURCES.txt +0 -0
  9. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/continual_foragax.egg-info/dependency_links.txt +0 -0
  10. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/continual_foragax.egg-info/entry_points.txt +0 -0
  11. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/continual_foragax.egg-info/requires.txt +0 -0
  12. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/continual_foragax.egg-info/top_level.txt +0 -0
  13. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/__init__.py +0 -0
  14. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/colors.py +0 -0
  15. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100897.txt +0 -0
  16. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100928.txt +0 -0
  17. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100929.txt +0 -0
  18. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100930.txt +0 -0
  19. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100931.txt +0 -0
  20. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106714.txt +0 -0
  21. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106715.txt +0 -0
  22. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106716.txt +0 -0
  23. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106717.txt +0 -0
  24. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106718.txt +0 -0
  25. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106930.txt +0 -0
  26. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106931.txt +0 -0
  27. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106932.txt +0 -0
  28. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106933.txt +0 -0
  29. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106934.txt +0 -0
  30. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106935.txt +0 -0
  31. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106936.txt +0 -0
  32. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106937.txt +0 -0
  33. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106938.txt +0 -0
  34. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106939.txt +0 -0
  35. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106940.txt +0 -0
  36. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106941.txt +0 -0
  37. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106942.txt +0 -0
  38. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106943.txt +0 -0
  39. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106994.txt +0 -0
  40. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106995.txt +0 -0
  41. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106996.txt +0 -0
  42. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106997.txt +0 -0
  43. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106998.txt +0 -0
  44. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106999.txt +0 -0
  45. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107000.txt +0 -0
  46. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107001.txt +0 -0
  47. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107002.txt +0 -0
  48. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107003.txt +0 -0
  49. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107004.txt +0 -0
  50. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107005.txt +0 -0
  51. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107006.txt +0 -0
  52. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107007.txt +0 -0
  53. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107008.txt +0 -0
  54. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107009.txt +0 -0
  55. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107010.txt +0 -0
  56. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107011.txt +0 -0
  57. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107012.txt +0 -0
  58. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107013.txt +0 -0
  59. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107014.txt +0 -0
  60. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107015.txt +0 -0
  61. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107016.txt +0 -0
  62. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107017.txt +0 -0
  63. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107018.txt +0 -0
  64. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107019.txt +0 -0
  65. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107020.txt +0 -0
  66. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107021.txt +0 -0
  67. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107022.txt +0 -0
  68. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107023.txt +0 -0
  69. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107024.txt +0 -0
  70. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107025.txt +0 -0
  71. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107026.txt +0 -0
  72. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107027.txt +0 -0
  73. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107028.txt +0 -0
  74. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107029.txt +0 -0
  75. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107030.txt +0 -0
  76. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107031.txt +0 -0
  77. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107032.txt +0 -0
  78. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107033.txt +0 -0
  79. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107034.txt +0 -0
  80. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107035.txt +0 -0
  81. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107036.txt +0 -0
  82. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107037.txt +0 -0
  83. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107038.txt +0 -0
  84. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107039.txt +0 -0
  85. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107040.txt +0 -0
  86. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107041.txt +0 -0
  87. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107042.txt +0 -0
  88. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107043.txt +0 -0
  89. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107044.txt +0 -0
  90. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107045.txt +0 -0
  91. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107046.txt +0 -0
  92. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107047.txt +0 -0
  93. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107048.txt +0 -0
  94. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107049.txt +0 -0
  95. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107050.txt +0 -0
  96. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107051.txt +0 -0
  97. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107052.txt +0 -0
  98. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107053.txt +0 -0
  99. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107054.txt +0 -0
  100. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107055.txt +0 -0
  101. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107056.txt +0 -0
  102. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107057.txt +0 -0
  103. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107058.txt +0 -0
  104. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107059.txt +0 -0
  105. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107060.txt +0 -0
  106. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107061.txt +0 -0
  107. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107062.txt +0 -0
  108. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107063.txt +0 -0
  109. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107064.txt +0 -0
  110. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107065.txt +0 -0
  111. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107066.txt +0 -0
  112. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107067.txt +0 -0
  113. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107068.txt +0 -0
  114. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107069.txt +0 -0
  115. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107070.txt +0 -0
  116. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107071.txt +0 -0
  117. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID115808.txt +0 -0
  118. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID115812.txt +0 -0
  119. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID146811.txt +0 -0
  120. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156831.txt +0 -0
  121. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156835.txt +0 -0
  122. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156839.txt +0 -0
  123. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156843.txt +0 -0
  124. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156847.txt +0 -0
  125. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156851.txt +0 -0
  126. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156855.txt +0 -0
  127. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156859.txt +0 -0
  128. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156863.txt +0 -0
  129. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156867.txt +0 -0
  130. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156871.txt +0 -0
  131. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156875.txt +0 -0
  132. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156879.txt +0 -0
  133. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156883.txt +0 -0
  134. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156887.txt +0 -0
  135. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/elements.txt +0 -0
  136. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/metadata.txt +0 -0
  137. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/data/ECA_non-blended_custom/sources.txt +0 -0
  138. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/objects.py +0 -0
  139. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/rendering.py +0 -0
  140. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/src/foragax/weather.py +0 -0
  141. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/tests/test_benchmark.py +0 -0
  142. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/tests/test_foragax.py +0 -0
  143. {continual_foragax-0.38.0 → continual_foragax-0.39.0}/tests/test_registry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: continual-foragax
3
- Version: 0.38.0
3
+ Version: 0.39.0
4
4
  Summary: A continual reinforcement learning benchmark
5
5
  Author-email: Steven Tang <stang5@ualberta.ca>
6
6
  Requires-Python: >=3.8
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "continual-foragax"
3
- version = "0.38.0"
3
+ version = "0.39.0"
4
4
  description = "A continual reinforcement learning benchmark"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -30,7 +30,7 @@ build-backend = "setuptools.build_meta"
30
30
  [tool]
31
31
  [tool.commitizen]
32
32
  name = "cz_conventional_commits"
33
- version = "0.38.0"
33
+ version = "0.39.0"
34
34
  tag_format = "$version"
35
35
  version_files = ["pyproject.toml"]
36
36
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: continual-foragax
3
- Version: 0.38.0
3
+ Version: 0.39.0
4
4
  Summary: A continual reinforcement learning benchmark
5
5
  Author-email: Steven Tang <stang5@ualberta.ca>
6
6
  Requires-Python: >=3.8
@@ -774,20 +774,53 @@ class ForagaxEnv(environment.Environment):
774
774
  biome_mask = self.biome_masks_array[i]
775
775
  new_gen_value = new_biome_state.generation[i]
776
776
 
777
- # Only update where new spawn has objects and biome should respawn
778
- is_new_object = (
779
- (all_new_objects[i] > 0) & biome_mask & should_respawn[i][..., None]
780
- )
777
+ # Update mask: biome area AND needs respawn
778
+ should_update = biome_mask & should_respawn[i][..., None]
779
+
780
+ # 1. Merge: Overwrite with new objects if present, otherwise keep existing
781
+ # If the new spawn has an object, we take it. If it's empty, we keep whatever was there.
782
+ new_spawn_valid = all_new_objects[i] > 0
781
783
 
782
- new_obj_id = jnp.where(is_new_object, all_new_objects[i], new_obj_id)
783
- new_color = jnp.where(
784
- is_new_object[..., None], all_new_colors[i], new_color
784
+ merged_objs = jnp.where(new_spawn_valid, all_new_objects[i], new_obj_id)
785
+ merged_colors = jnp.where(
786
+ new_spawn_valid[..., None], all_new_colors[i], new_color
785
787
  )
786
- new_params = jnp.where(
787
- is_new_object[..., None], all_new_params[i], new_params
788
+ merged_params = jnp.where(
789
+ new_spawn_valid[..., None], all_new_params[i], new_params
788
790
  )
789
- new_gen = jnp.where(is_new_object, new_gen_value, new_gen)
790
- new_spawn = jnp.where(is_new_object, current_time, new_spawn)
791
+
792
+ # For generation/spawn time, update only if we took the NEW object
793
+ merged_gen = jnp.where(new_spawn_valid, new_gen_value, new_gen)
794
+ merged_spawn = jnp.where(new_spawn_valid, current_time, new_spawn)
795
+
796
+ # 2. Apply dropout to the MERGED result (only where we are allowed to update)
797
+ if self.dynamic_biome_spawn_empty > 0:
798
+ key, dropout_key = jax.random.split(key)
799
+ # Dropout applies only to cells that are both in the biome AND need updating
800
+ keep_mask = jax.random.bernoulli(
801
+ dropout_key, 1.0 - self.dynamic_biome_spawn_empty, merged_objs.shape
802
+ )
803
+ # Only apply dropout where should_update is true; elsewhere, keep merged_objs
804
+ dropout_mask = should_update & keep_mask
805
+ # Apply dropout only to the merged result and associated metadata
806
+ final_objs = jnp.where(dropout_mask, merged_objs, 0)
807
+ final_colors = jnp.where(dropout_mask[..., None], merged_colors, 0)
808
+ final_params = jnp.where(dropout_mask[..., None], merged_params, 0)
809
+ final_gen = jnp.where(dropout_mask, merged_gen, 0)
810
+ final_spawn = jnp.where(dropout_mask, merged_spawn, 0)
811
+ else:
812
+ final_objs = merged_objs
813
+ final_colors = merged_colors
814
+ final_params = merged_params
815
+ final_gen = merged_gen
816
+ final_spawn = merged_spawn
817
+
818
+ # 3. Write back: Only update where should_update is true
819
+ new_obj_id = jnp.where(should_update, final_objs, new_obj_id)
820
+ new_color = jnp.where(should_update[..., None], final_colors, new_color)
821
+ new_params = jnp.where(should_update[..., None], final_params, new_params)
822
+ new_gen = jnp.where(should_update, final_gen, new_gen)
823
+ new_spawn = jnp.where(should_update, final_spawn, new_spawn)
791
824
 
792
825
  # Clear timers in respawning biomes
793
826
  new_respawn_timer = object_state.respawn_timer
@@ -890,7 +923,7 @@ class ForagaxEnv(environment.Environment):
890
923
  biome_freqs = self.biome_object_frequencies[biome_idx]
891
924
  biome_mask = self.biome_masks_array[biome_idx]
892
925
 
893
- key, spawn_key, color_key, params_key, dropout_key = jax.random.split(key, 5)
926
+ key, spawn_key, color_key, params_key = jax.random.split(key, 4)
894
927
 
895
928
  # Generate object IDs using deterministic or random spawn
896
929
  if deterministic:
@@ -929,13 +962,6 @@ class ForagaxEnv(environment.Environment):
929
962
  jnp.searchsorted(cumulative_freqs, grid_rand, side="right") - 1
930
963
  )
931
964
 
932
- # Apply random dropout if configured
933
- if self.dynamic_biome_spawn_empty > 0:
934
- dropout_mask = jax.random.bernoulli(
935
- dropout_key, 1.0 - self.dynamic_biome_spawn_empty, object_grid.shape
936
- )
937
- object_grid = jnp.where(dropout_mask, object_grid, 0)
938
-
939
965
  # Initialize color grid
940
966
  color_grid = jnp.full((self.size[1], self.size[0], 3), 255, dtype=jnp.uint8)
941
967
 
@@ -147,12 +147,12 @@ ENV_CONFIGS: Dict[str, Dict[str, Any]] = {
147
147
  "size": (15, 15),
148
148
  "aperture_size": None,
149
149
  "objects": None,
150
- "biomes": (Biome(start=(0, 0), stop=(15, 15), object_frequencies=(0.2,)),),
150
+ "biomes": (Biome(start=(0, 0), stop=(15, 15), object_frequencies=(0.4,)),),
151
151
  "nowrap": False,
152
152
  "deterministic_spawn": True,
153
153
  "dynamic_biomes": True,
154
154
  "biome_consumption_threshold": 1000,
155
- "dynamic_biome_spawn_empty": 0.1,
155
+ "dynamic_biome_spawn_empty": 0.4,
156
156
  },
157
157
  "ForagaxTwoBiome-v1": {
158
158
  "size": (15, 15),