-
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
- 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_env
API.
- 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.
- "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
fps
is now deprecated; environments should instead use the new property system to communicate this information.
- 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.
-
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
- The
game
demo executable can now print observations at each step.
- 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
act
function is now deprecated in favour of two finer-grained functions: A call toact
should be replaced by a callact_discrete
to set discrete actions, followed by an optional call toact_continuous
to set continuous actions. (DeepMind Lab does not use continuous actions.) - New support for "text actions", which can be set with the new
act_text
API function. (DeepMind Lab does not use text actions.)
-
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.
-
Psychlab.
- contributed/psychlab/harlow
- 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.
- 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.
-
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
- Let Python level cache set to
None
mean the same as not setting it at all. - Change Python module initialization in Python-3 mode to make PIP packages work in Python 3.
- Add support for absl::variant to lua::Push and lua::Read.
- The demo
:game
has a new flag--start_index
to start at an episode index other than 0. - Add a console command
dm_pickup
to 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.
-
DMLab-30.
- contributed/dmlab30/psychlab_arbitrary_visuomotor_mapping
- contributed/dmlab30/psychlab_continuous_recognition
-
Psychlab.
- contributed/psychlab/arbitrary_visuomotor_mapping
- contributed/psychlab/continuous_recognition
- 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.
- Fix playerId and otherPlayerId out by one errors in 'game_rewards.lua'.
- Require playerId passed to
game:addScore
to be one indexed instead of zero indexed and allowgame:addScore
to be used without a playerId. game:renderCustomView
now 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
require
statement in visual_search_factory.lua. - Fix a few erroneous dependencies on Lua dictionary iteration order.
game:AddScore
now works even on the final frame of an episode.
- 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:console
command to issue Quake 3 console commands directly. - Add
clamp
to 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'.
- Observation format names
RGB_INTERLEAVED
andRGBD_INTERLEAVED
replaceRGB_INTERLACED
andRGBD_INTERLACED
, respectively. The old format names are deprecated and will be removed in a future release. - The pickup item's
tag
member is now calledmoveType
. The old name is deprecated and will be removed in a future release.
-
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
- Basic support for demo recording and playback.
- Add a mechanism to build DeepMind Lab as a PIP package.
- Extend basic testing to all levels under game_scripts/levels.
- Add settings
minimalUI
andreducedUI
to avoid rendering parts of the HUD. - Add
teleported
flag togame:playerInfo()
to tell whether a player has teleported that frame. - Add Lua functions
countEntities
andcountVariations
to the maze generation API to count the number of occurrences of a specific entity or variation, respectively. - Add ability to switch/select gadget via actions. Actions are available when
enabling flags
gadgetSelect
and/orgadgetSwitch
.
- Fix out-of-bounds access in Lua 'image' library.
- Fix off-by-one error in renderergl1 grid mesh rendering.
-
Psychlab, a platform for implementing classical experimental paradigms from cognitive psychology.
- contributed/psychlab/sequential_comparison
- contributed/psychlab/visual_search
- Extend functionality of the built-in
tensor
Lua library. - Add built-in
image
Lua 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_generation
to be in lowerCamelCase (e.g.MazeGeneration
->mazeGeneration
). - The directory
game_scripts
has moved out of theassets
directory, and level scripts now live separately from the library code in thelevels
subdirectory.
- 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 totrue
, programs linked againstgame_lib_sdl
will 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.
- 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.