Releases: google-deepmind/lab
December 2020 release
New Levels:
-
Psychlab.
- contributed/psychlab/memory_suite_01/explore_goal_locations_extrapolate
- contributed/psychlab/memory_suite_01/explore_goal_locations_holdout_extrapolate
- contributed/psychlab/memory_suite_01/explore_goal_locations_holdout_interpolate
- contributed/psychlab/memory_suite_01/explore_goal_locations_holdout_large
- contributed/psychlab/memory_suite_01/explore_goal_locations_holdout_small
- contributed/psychlab/memory_suite_01/explore_goal_locations_interpolate
- contributed/psychlab/memory_suite_01/explore_goal_locations_train_large
- contributed/psychlab/memory_suite_01/explore_goal_locations_train_small
-
Language binding tasks.
- contributed/fast_mapping/fast_mapping
- contributed/fast_mapping/slow_mapping
New Features:
- A property system has been added that allows dynamic querying and modifying of environment state. Level scripts can register and consume custom properties.
- A new Python module,
dmenv_module, is provided that exposes the DeepMinddm_envAPI.
Minor Improvements:
- Quake console commands can now be issued via a write-only property.
- New numeric "accumulate" operations for TensorView and the Lua Tensor types: sum, product, sum-of-squares, and dot product of two tensors.
EnvCApi Changes:
- "Properties" have been added to the EnvCApi. Properties may be queried, set, and enumerated.
- The new API version is 1.4 (up from 1.3).
- The EnvCApi function
fpsis now deprecated; environments should instead use the new property system to communicate this information.
Bug Fixes:
- Fix observation 'VEL.ROT' to allow non-zero values when combined with pixel observations. Previously, the presence of pixel observations caused the angular velocity information to be lost due to a logic error.
October 2019 release
New Levels:
-
Psychlab.
- contributed/psychlab/cued_temporal_production
- contributed/psychlab/memory_suite_01/arbitrary_visuomotor_mapping_train
- contributed/psychlab/memory_suite_01/arbitrary_visuomotor_mapping_holdout_interpolate
- contributed/psychlab/memory_suite_01/arbitrary_visuomotor_mapping_holdout_extrapolate
- contributed/psychlab/memory_suite_01/change_detection_train
- contributed/psychlab/memory_suite_01/change_detection_holdout_interpolate
- contributed/psychlab/memory_suite_01/change_detection_holdout_extrapolate
- contributed/psychlab/memory_suite_01/continuous_recognition_train
- contributed/psychlab/memory_suite_01/continuous_recognition_holdout_interpolate
- contributed/psychlab/memory_suite_01/continuous_recognition_holdout_extrapolate
- contributed/psychlab/memory_suite_01/what_then_where_train
- contributed/psychlab/memory_suite_01/what_then_where_holdout_interpolate
- contributed/psychlab/ready_set_go
- contributed/psychlab/temporal_bisection
- contributed/psychlab/temporal_discrimination
- contributed/psychlab/visuospatial_suite/memory_guided_saccade
- contributed/psychlab/visuospatial_suite/odd_one_out
- contributed/psychlab/visuospatial_suite/pathfinder
- contributed/psychlab/visuospatial_suite/pursuit
- contributed/psychlab/visuospatial_suite/visual_match
- contributed/psychlab/visuospatial_suite/visually_guided_antisaccade
- contributed/psychlab/visuospatial_suite/visually_guided_prosaccade
Minor Improvements:
- The
gamedemo executable can now print observations at each step.
EnvCApi Changes:
- The meaning of major and minor versions and the resulting notions of stability are clarified. The new API version is 1.3 (up from 1.2).
- The EnvCApi
actfunction is now deprecated in favour of two finer-grained functions: A call toactshould be replaced by a callact_discreteto set discrete actions, followed by an optional call toact_continuousto set continuous actions. (DeepMind Lab does not use continuous actions.) - New support for "text actions", which can be set with the new
act_textAPI function. (DeepMind Lab does not use text actions.)
Bug Fixes:
-
Observation 'DEBUG.CAMERA_INTERLEAVED.TOP_DOWN' is now correct for levels
dmlab30/explore_object_rewards_{few,many}.An error is now raised if there is not enough space to place every possible room (regardless of whether the random generation actually produces a room of excessive size) and if a non-zero number of rooms was requested.
The affected levels have been updated and will generate layouts similar to before, but the whole maze is offset by 100 units, and object placements will change.
-
Fix top-down camera for language levels.
-
Correct typo in bot
Leonis, skill level 1, based on OpenArena's bot codegargoyle_c.c. -
Tensor scalar operations using arrays now work similar to the way they do with single values.
February 2019 release
New Levels:
-
Psychlab.
- contributed/psychlab/harlow
Minor Improvements:
- Improve documentation of how to configure non-hermetic dependencies (Lua, Python, NumPy).
- Add 'allowHoldOutLevels' setting to allow running of levels that should not be trained on, but held out for evaluation.
- Add logging library 'common.log', which provides the ability to control which log messages are emitted via the setting 'logLevel'.
- Update the ioq3 upstream code to the latest state.
- Lua 5.1 is now downloaded and built from source, and is thus no longer a required local dependency.
- A minimal version of the "realpath" utility is now bundled with the code, and thus "realpath" is no longer a required local dependency.
Bug Fixes:
- Prevent missing sounds from causing clients to disconnect.
- Fix a bug in the call of the theme callback 'placeFloorModels', which had caused an "'index' is missing" error during compilation of text levels with texture sets that use floor models, such as MINESWEEPER, GO, and PACMAN.
- Fix bug where levels 'keys_doors_medium', 'keys_doors_random' and 'rooms_keys_doors_puzzle' would not accept the common 'logLevel' setting.
- Expose a 'demofiles' command line flag for the Python random agent, without which the agent was not able to record or play back demos.
- Fix a memory deallocation order error introduced by an earlier commit.
June 2018 release
New Levels:
-
Psychlab.
- contributed/psychlab/glass_pattern_detection
- contributed/psychlab/landoltC_identification
- contributed/psychlab/motion_discrimination{,_easy}
- contributed/psychlab/multiple_object_tracking{,_easy}
- contributed/psychlab/odd_one_out
Bug Fixes:
- Let Python level cache set to
Nonemean the same as not setting it at all. - Change Python module initialization in Python-3 mode to make PIP packages work in Python 3.
Minor Improvements:
- Add support for
absl::varianttolua::Pushandlua::Read. - The demo
:gamehas a new flag--start_indexto start at an episode index other than 0. - Add a console command
dm_pickupto pick up an item identified by itsid. - More Python demos and tests now work with Python 3.
- Add a shader for rendering decals with transparency.
May 2018 release
New Levels:
-
DMLab-30.
- contributed/dmlab30/psychlab_arbitrary_visuomotor_mapping
- contributed/dmlab30/psychlab_continuous_recognition
-
Psychlab.
- contributed/psychlab/arbitrary_visuomotor_mapping
- contributed/psychlab/continuous_recognition
New Features:
- Support for level caching for improved performance in the Python module.
- Add the ability to spawn pickups dynamically at arbitrary locations.
- Add implementations to read datasets including Cifar10 and Stimuli.
- Add the ability to specify custom actions via 'customDiscreteActionSpec' and
'customDiscreteAction' callbacks.
Bug Fixes:
- Fix playerId and otherPlayerId out by one errors in 'game_rewards.lua'.
- Require playerId passed to
game:addScoreto be one indexed instead of zero
indexed and allowgame:addScoreto be used without a playerId. game:renderCustomViewnow renders the view with top-left as the origin.
The previous behaviour can be achieved by calling reverse(1) on the returned
tensor.- Fix a bug in image.scale whereby the offset into the data was erroneously
ignored. - Fix a typo in a
requirestatement in visual_search_factory.lua. - Fix a few erroneous dependencies on Lua dictionary iteration order.
game:AddScorenow works even on the final frame of an episode.
Minor Improvements:
- Moved .map files into assets/maps/src and .bsp files into assets/maps/built.
Added further pre-built maps, which removes the need for the expensive
:map_assets build step. - Allow game to be rendered with top-left as origin instead of bottom-left.
- Add 'mixerSeed' setting to change behaviour of all random number generators.
- Support for BGR_INTERLEAVED and BGRD_INTERLEAVED observation formats.
- Add a Lua API to load PNGs from file contents.
- Add 'eyePos' to playerInfo() for a more accurate eye position of player.
Used in place of player pos + height. - Add support for absl::string_view to lua::Push and lua::Read.
- Allow player model to be overridden via 'playerModel' callback.
- Add ability to specify custom actions via 'customDiscreteActionSpec' and
'customDiscreteAction' callbacks. - Add
game:consolecommand to issue Quake 3 console commands directly. - Add
clampto tensor operations. - Add new callback
api:newClientInfo, allowing each client to intercept
when players are loading. - Skymaze level generation is now restricted to produce only 100000 distinct
levels. This allows for caching to avoid expensive recompilations. - Add cvars 'cg_drawScriptRectanglesAlways' and 'cg_drawScriptTextAlways' to
enable script rendering when reducedUI or minimalUI is enabled. - All pickup types can now choose their movement type separately, and in
particular, all pickup types can be made static. Two separate table entries
are now specified for an item, 'typeTag' and 'moveType'.
Deprecated Features:
- Observation format names
RGB_INTERLEAVEDandRGBD_INTERLEAVEDreplace
RGB_INTERLACEDandRGBD_INTERLACED, respectively. The old format names
are deprecated and will be removed in a future release. - The pickup item's
tagmember is now calledmoveType. The old name is
deprecated and will be removed in a future release.
February 2018 release
New Levels:
-
DMLab-30.
- contributed/dmlab30/rooms_collect_good_objects_{test,train}
- contributed/dmlab30/rooms_exploit_deferred_effects_{test,train}
- contributed/dmlab30/rooms_select_nonmatching_object
- contributed/dmlab30/rooms_watermaze
- contributed/dmlab30/rooms_keys_doors_puzzle
- contributed/dmlab30/language_select_described_object
- contributed/dmlab30/language_select_located_object
- contributed/dmlab30/language_execute_random_task
- contributed/dmlab30/language_answer_quantitative_question
- contributed/dmlab30/lasertag_one_opponent_small
- contributed/dmlab30/lasertag_three_opponents_small
- contributed/dmlab30/lasertag_one_opponent_large
- contributed/dmlab30/lasertag_three_opponents_large
- contributed/dmlab30/natlab_fixed_large_map
- contributed/dmlab30/natlab_varying_map_regrowth
- contributed/dmlab30/natlab_varying_map_randomized
- contributed/dmlab30/skymaze_irreversible_path_hard
- contributed/dmlab30/skymaze_irreversible_path_varied
- contributed/dmlab30/psychlab_sequential_comparison
- contributed/dmlab30/psychlab_visual_search
- contributed/dmlab30/explore_object_locations_small
- contributed/dmlab30/explore_object_locations_large
- contributed/dmlab30/explore_obstructed_goals_small
- contributed/dmlab30/explore_obstructed_goals_large
- contributed/dmlab30/explore_goal_locations_small
- contributed/dmlab30/explore_goal_locations_large
- contributed/dmlab30/explore_object_rewards_few
- contributed/dmlab30/explore_object_rewards_many
New Features:
- Basic support for demo recording and playback.
Minor Improvements:
- Add a mechanism to build DeepMind Lab as a PIP package.
- Extend basic testing to all levels under game_scripts/levels.
- Add settings
minimalUIandreducedUIto avoid rendering parts of the HUD. - Add
teleportedflag togame:playerInfo()to tell whether a player has teleported that frame. - Add Lua functions
countEntitiesandcountVariationsto the maze generation API to count the number of occurrences of a specific entity or variation, respectively
Bug Fixes:
- Fix out-of-bounds access in Lua 'image' library.
- Fix off-by-one error in renderergl1 grid mesh rendering.
January 2018 release
New Levels:
-
Psychlab, a platform for implementing classical experimental paradigms from
cognitive psychology.- contributed/psychlab/sequential_comparison
- contributed/psychlab/visual_search
New Features:
- Extend functionality of the built-in
tensorLua library. - Add built-in
imageLua library for loading and scaling PNGs. - Add error handling to the env_c_api (version 1.1).
- Add ability to create events from Lua scripts.
- Add ability to retrieve game entity from Lua scripts.
- Add ability create pickup models during level load.
- Add ability to update textures from script after the level has loaded.
- Add Lua customisable themes. Note: This change renames helpers in
maze_generationto be in lowerCamelCase (e.g.MazeGeneration->
mazeGeneration). - The directory
game_scriptshas moved out of theassetsdirectory, and
level scripts now live separately from the library code in thelevels
subdirectory.
Minor Improvements:
- Remove unnecessary dependency of map assets on Lua scripts, preventing
time-consuming rebuilding of maps when scripts are modified. - Add ability to disable bobbing of reward and goal pickups.
- The setting
controls(with valuesinternal,external) has been renamed
tonativeApp(with valuestrue,false, respectively). When set to
true, programs linked againstgame_lib_sdlwill use the native SDL input
devices. - Change LuaSnippetEmitter methods to use table call conventions.
- Add config variable for monochromatic lightmaps ('r_monolightmaps'). Enabled
by default. - Add config variable to limit texture size ('r_textureMaxSize').
- api:modifyTexture must now return whether the texture was modified.
- Add ability to adjust rewards.
- Add ability to raycast between different points on the map.
- Add ability to test whether a view vector is within an angle range within a
oriented view frame.
Bug Fixes:
- Increase current score storage from short to long.
- Fix ramp jump velocity in level lt_space_bounce_hard.
- Fix Lua function 'addScore' from module 'dmlab.system.game' to allow
negative scores added to a player. - Remove some undefined behaviour in the engine.
- Reduce inaccuracies related to angle conversion and normalization.
- Behavior of team spawn points now matches that of player spawn points.
'randomAngleRange' spawnVar must be set to 0 to match previous behavior.
Initial release
This is the initial public release of DeepMind Lab.