openai / universe

Universe: a software platform for measuring and training an AI's general intelligence across the world's supply of games, websites and other applications.
https://universe.openai.com
MIT License
7.47k stars 961 forks source link

Source code of universe environment docker images? #94

Closed shyamalschandra closed 6 years ago

shyamalschandra commented 7 years ago

Why is there no instructions in the README to set up the docker instance with openai-universe?

tlbtlbtlb commented 7 years ago

Could you be more specific about what's missing at https://github.com/openai/universe#install-docker?

shyamalschandra commented 7 years ago

Well, the obvious! There is no step-by-step for the docker run command in the instructions on how to setup the server that runs universe.

tlbtlbtlb commented 7 years ago

I still don't understand what you mean. Did you click the Install Docker link and follow the instructions for your system? What didn't work?

shyamalschandra commented 7 years ago

Yes, I installed docker with the latest dmg. There are no instructions specific to universe server-side. It says the following on the instructions: "...Additionally, you can freely access the Docker images for the remotes. We'll release the source repositories for the remotes in the future, along with tools to enable users to integrate new environments. Please sign up for our beta if you'd like early access..." When will it be out of beta? Why isn't available yet publicly?

tlbtlbtlb commented 7 years ago

We don't have a date for releasing the source code for the containers. We have to do some work to document the internals, and it would help us to understand what people want to do with them. Do you have a project in mind?

shyamalschandra commented 7 years ago

So...how can I run universe without the containers? This is unclear as a signed up for the beta but where are the game-specific containers? Did you release everything necessary to play or just a part of the components? Why did OpenAI announce it in the first place when things are not finished?

catherio commented 7 years ago

yes, we have released all you need to play: the docs are at https://github.com/openai/universe/blob/master/doc/remotes.rst

The thing to look for in our docs, both the main README at https://github.com/openai/universe and the extra docs under "What's next?" and "Additional documentation", is the word "remotes", which we use to refer to remote environment servers.

We have released the images/containers themselves (you can pull them from docker) but the code inside the containers is not yet a standalone github project.

cantren commented 7 years ago

"it would help us to understand what people want to do with them. Do you have a project in mind?"

I applied for the beta as well.

I wanted to create a custom container to interface with a browser-based three.js game that I made to train an agent to control a vehicle in an autonomous submarine competition called "RoboSub http://robosub.org".

The simulator is here: http://cantren.github.io Human control example: https://www.youtube.com/watch?v=Qf775rLs11c&t=620s Some of the unlabeled test data here: https://www.youtube.com/watch?v=Q16CAJmgFsY Small labeled training/validation dataset here: goo.gl/QIXss4

I've looked into the official form https://universe.openai.com/consent for this, but I think the game would probably need some modification prior to integration? Is there a process where a game can be modified by its author prior to submission based on feedback from OpenAI?

Respectfully, Nick Cantrell Twitter: @envi_uuv https://twitter.com/envi_uuv/

On Fri, Jan 6, 2017 at 10:53 AM, Trevor Blackwell notifications@github.com wrote:

We don't have a date for releasing the source code for the containers. We have to do some work to document the internals, and it would help us to understand what people want to do with them. Do you have a project in mind?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/openai/universe/issues/94#issuecomment-270976137, or mute the thread https://github.com/notifications/unsubscribe-auth/ABZN_tBn_9nMBBqcYQ_b8g43W_cjZ25Zks5rPo2vgaJpZM4Lb8Zb .

nottombrown commented 7 years ago

Seems like the actual question here is about the source code of universe docker images. I've updated the title

shyamalschandra commented 7 years ago

@catherio, I looked and tried the following code with everything installed and dockers installed and running:

import gym
import universe # register the universe environments

env = gym.make('flashgames.DuskDrive-v0')
env.configure(remotes=1) # downloads and starts a flashgames runtime
observation_n = env.reset()

while True:
        action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n] # your agent here
        observation_n, reward_n, done_n, info = env.step(action_n)
        env.render()

I am getting the following error:

[2017-01-08 04:34:24,521] Making new env: flashgames.DuskDrive-v0
Traceback (most recent call last):
  File "universe.py", line 2, in <module>
    import universe # register the universe environments
  File "/Users/shyamalsuhanachandra/universe.py", line 4, in <module>
    env = gym.make('flashgames.DuskDrive-v0')
  File "/usr/local/lib/python2.7/site-packages/gym/envs/registration.py", line 127, in make
    return registry.make(id)
  File "/usr/local/lib/python2.7/site-packages/gym/envs/registration.py", line 91, in make
    spec = self.spec(id)
  File "/usr/local/lib/python2.7/site-packages/gym/envs/registration.py", line 113, in spec
    raise error.UnregisteredEnv('No registered env with id: {}'.format(id))
gym.error.UnregisteredEnv: No registered env with id: flashgames.DuskDrive-v0

What should I do?

tlbtlbtlb commented 7 years ago

Don't call your file universe.py. Python will see that file and import it instead of the universe module.

Rename it to something else, and delete any file universe.pyc in the same directory.

shyamalschandra commented 7 years ago

I changed the name and deleted the universe.pyc file and this is what I get:

iMac:~ shyamalsuhanachandra$ python universe-main.py 
[2017-01-08 14:31:52,166] Making new env: flashgames.DuskDrive-v0
[2017-01-08 14:31:52,209] Writing logs to file: /tmp/universe-1735.log
Traceback (most recent call last):
  File "universe-main.py", line 5, in <module>
    env.configure(remotes=1) # downloads and starts a flashgames runtime
  File "/usr/local/lib/python2.7/site-packages/gym/core.py", line 225, in configure
    self._configure(*args, **kwargs)
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/vectorized/core.py", line 39, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/usr/local/lib/python2.7/site-packages/gym/core.py", line 352, in _configure
    return self.env.configure(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/gym/core.py", line 225, in configure
    self._configure(*args, **kwargs)
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/wrappers/render.py", line 18, in _configure
    super(Render, self)._configure(**kwargs)
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/vectorized/core.py", line 39, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/usr/local/lib/python2.7/site-packages/gym/core.py", line 352, in _configure
    return self.env.configure(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/gym/core.py", line 225, in configure
    self._configure(*args, **kwargs)
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/wrappers/throttle.py", line 27, in _configure
    super(Throttle, self)._configure(**kwargs)
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/vectorized/core.py", line 39, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/usr/local/lib/python2.7/site-packages/gym/core.py", line 352, in _configure
    return self.env.configure(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/gym/core.py", line 225, in configure
    self._configure(*args, **kwargs)
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/envs/vnc_env.py", line 193, in _configure
    use_recorder_ports=record,
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/remotes/build.py", line 19, in build
    n=n,
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/remotes/docker_remote.py", line 43, in __init__
    self._assigner = PortAssigner(reuse=reuse)
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/remotes/docker_remote.py", line 149, in __init__
    self.client, self.info = get_client()
  File "/Users/shyamalsuhanachandra/openai_projects/universe/universe/remotes/docker_remote.py", line 143, in get_client
    return docker.Client(base_url=host, version=client_api_version), info
  File "/usr/local/lib/python2.7/site-packages/docker/client.py", line 99, in __init__
    self._version = self._retrieve_server_version()
  File "/usr/local/lib/python2.7/site-packages/docker/client.py", line 124, in _retrieve_server_version
    'Error while fetching server API version: {0}'.format(e)
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', error(61, 'Connection refused'))

What should I do?

tlbtlbtlb commented 7 years ago

This happens when Docker isn't running. Instructions to install and set up Docker are here: https://github.com/openai/universe#install-docker

shyamalschandra commented 7 years ago

Okay, great. Now, it is downloading. Is it possible to eliminate this downloading and extracting time with universe?

catherio commented 7 years ago

Once you have downloaded the docker image once, it will remain on your machine and you will not have to download it again.

aleSuglia commented 7 years ago

I'm aware that releasing code of all the implemented Universe environments may be really labor-intensive so how about to provide us with a basic tutorial which explains how to create a new environment that can be integrated in Universe?

Thank you in advance for your answer.

Alessandro