Browse › Computer Vision › RoomEnv-v1 › RoomEnv-v1

RoomEnv-v1 archive 2025-07-28

RoomEnv-v1 Benchmark (RoomEnv-v1)

2 rows 2 with code listed 1 metric Dataset page

The Room environment - v1

[DOI]

We have released a challenging Gymnasium compatible environment. The best strategy for this environment is to have both episodic and semantic memory systems. See the paper for more information.

Prerequisites

  1. A unix or unix-like x86 machine
  2. python 3.10 or higher.
  3. Running in a virtual environment (e.g., conda, virtualenv, etc.) is highly recommended so that you don't mess up with the system python.
  4. This env is added to the PyPI server. Just run: pip install room-env

RoomEnv-v1

import gymnasium as gym

env = gym.make("room_env:RoomEnv-v1")
(observation, question), info = env.reset()
rewards = 0

while True:
    # There is one different thing in the RoomEnv from the original AAAI-2023 paper:
    # The reward is either +1 or -1, instead of +1 or 0.
    (observation, question), reward, done, truncated, info = env.step("This is my answer!")
    rewards += reward
    if done:
        break
{
    "des_size": "l",
    "seed": 42,
    "question_prob": 1.0,
    "allow_random_human": False,
    "allow_random_question": False,
    "total_maximum_episode_rewards": 128,
    "check_resources": True,
}

If you want to create an env with a different set of parameters, you can do so. For example:

env_params = {"seed": 0,
              "allow_random_human": True,
              "pretrain_semantic": True}
env = gym.make("room_env:RoomEnv-v1", **env_params)

Take a look at this repo for an actual interaction with this environment to learn a policy.

Data collection

Data is collected from querying ConceptNet APIs. For simplicity, we only collect triples whose format is (head, atlocation, tail). Here head is one of the 80 MS COCO dataset categories. This was kept in mind so that later on we can use images as well.

If you want to collect the data manually, then run below:

python collect_data.py

The RoomDes

The DES is part of RoomEnv. You don't have to care about how it works. If you are still curious, you can read below.

You can run the RoomDes by

from room_env.des import RoomDes

des = RoomDes()
des.run(debug=True)

with debug=True it'll print events (i.e., state changes) to the console.

{'resource_changes': {'desk': -1, 'lap': 1},
 'state_changes': {'Vincent': {'current_time': 1,
                               'object_location': {'current': 'desk',
                                                   'previous': 'lap'}}}}
{'resource_changes': {}, 'state_changes': {}}
{'resource_changes': {}, 'state_changes': {}}
{'resource_changes': {},
 'state_changes': {'Michael': {'current_time': 4,
                               'object_location': {'current': 'lap',
                                                   'previous': 'desk'}},
                   'Tae': {'current_time': 4,
                           'object_location': {'current': 'desk',
                                               'previous': 'lap'}}}}

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Run make test && make style && make quality in the root repo directory, to ensure code quality.
  4. Commit your Changes (git commit -m 'Add some AmazingFeature')
  5. Push to the Branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request

Cite our paper

@article{Kim_Cochez_Francois-Lavet_Neerincx_Vossen_2023,
  title={A Machine with Short-Term, Episodic, and Semantic Memory Systems}, volume={37},
  url={https://ojs.aaai.org/index.php/AAAI/article/view/25075},
  DOI={10.1609/aaai.v37i1.25075},
  abstractNote={Inspired by the cognitive science theory of the explicit human memory systems, we have modeled an agent with short-term, episodic, and semantic memory systems, each of which is modeled with a knowledge graph. To evaluate this system and analyze the behavior of this agent, we designed and released our own reinforcement learning agent environment, “the Room”, where an agent has to learn how to encode, store, and retrieve memories to maximize its return by answering questions. We show that our deep Q-learning based agent successfully learns whether a short-term memory should be forgotten, or rather be stored in the episodic or semantic memory systems. Our experiments indicate that an agent with human-like memory systems can outperform an agent without this memory structure in the environment.},
  number={1},
  journal={Proceedings of the AAAI Conference on Artificial Intelligence}, author={Kim, Taewoon and Cochez, Michael and Francois-Lavet, Vincent and Neerincx, Mark and Vossen, Piek},
  year={2023},
  month={Jun.},
  pages={48-56}
}

Authors

License

MIT

The archive carries no text for this table; the description above is the archive's text for the task RoomEnv-v1. archive 2025-07-28

Over time archive 2025-07-28

The chart needs JavaScript; the table below carries every value.

Not inferred: final agent reward. Points are placed at the row's paper date; 2 of 2 rows carry one.

Results archive 2025-07-28

Archive rows end at the archive snapshot, 2025-07-28: no result published after that date is in this table. Rank is the archive's row order at that snapshot; not re-ranked here. Metric values are the archive's strings. Column headers sort the table in your browser; each row keeps its archive rank.

Paper Code Ran Syntology Report
1 HumemAI-v0-capacity=32-semantic-pretrained 116.5 – Paper Code 2022 0 of 10 ran · 10 unverified report
2 HumemAI-v0-capacity=32-semantic-scratch 109 – Paper Code 2022 0 of 10 ran · 10 unverified report

All 2 rows shown. 2 link to a paper page on this site; 0 are marked as using additional training data in the archive. No GitHub stars are tracked; "Code" is the first repository the archive lists for the row. The archive carries no row tags, review links or community-submitted rows for this table; none are shown. archive 2025-07-28

Syntology Ran reads "N of M ran · U unverified": of the M code samples Syntology harvested from repositories linked to that row's paper (joined by arXiv id), N executed on a synthesized input and the other U = M−N are unverified (harvested, no recorded run). It counts code from repositories linked to that row's paper, not this result: the row's number was not reproduced and nothing here is a correctness claim. The other cell texts mean no graph line for the row: "linked, not harvested" (the archive links code, Syntology has not harvested it), "no code linked" (no code link in the archive), "not matched" (the row's paper URL matched no paper on this site). 2 rows have a graph line, from 1 distinct papers; 0 rows (0 papers) have at least one sample that ran. Counting each paper once: Syntology ran 0 of 10 samples; 10 unverified. Separately, 0 of those 10 are pointer-only (licence): the site points at that code rather than redistributing it, a licence property recorded for ran and unverified samples alike; each cell's tooltip carries the row's own pointer-only count. Read from the graph 2026-09-24. Per-sample status is on the paper page.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections