GithubHelp home page GithubHelp logo

veca's Introduction

VECA

License: MIT

veca_overview

Prerequisite

VECA environment requires two separate terminal sessions to properly execute it. One is to execute Unity3D-based Environment (Environment from now on), and the other is to execute the agent algorithm (Algorithm from now on). A session executing the environment should be executed on Windows OS.

Two sessions need not be on the same machine, since the communication between the environment and algorithm is socket-based. So the environment can run on Windows desktop, and the agent algorithm can run on linux cluster server. To sum up, the OS requirement is as follows:

  • Environment session: Windows OS

  • Algorithm session: Any OS supporting python3

You need python3 and ffmpeg to execute scripts. In Ubuntu, you can install them with following command.

sudo apt install python3 ffmpeg

You also need 3 python packages numpy, moviepy, and pillow. You can install them with following command.

pip install numpy moviepy pillow

or use requirements.txt file to install as follows:

pip install -r requirements.txt

Installation

  1. Clone this veca repository. Both the environment and algorithm session should clone it.
git clone https://github.com/GGOSinon/VECA.git
  1. (Only for the environment session) Create bin directory inside the repository,
mkdir bin && cd bin

and download the zip file disktower.zip containing a unity application executable.

gdown https://drive.google.com/uc?id=1mQEpN0wqztujGxtyYxARv_c_fxCAmIey

  1. (Only for the environment session) unzip the downloaded zip file, and go back to root directory of the repo.
unzip disktower.zip
cd ../

Other tasks

Unity application executables for tasks besides DiskTower are available in the following google drive links. Download and unzip it on a different directory. Modify an unity executable path in the env_manager.py script to use it.

Usage

The configuration of each script can be altered in two ways: modify a default config inside the script; or specify the optional argument on execution.

NOTE:

  • env_manager.py should be executed before the algorithm.py
  • IP and ALGO_PORT of algorithm.py should match the ip and port of env_manager.py script's machine IP and ALGO_PORT.

The environment manager can be executing using this command.

python env_manager.py

Configuration of environment e.g., number of parallel environments, ip and port of algorithm server, can be altered.

usage: env_manager.py [-h] [--executable EXECUTABLE] [--port PORT]

VECA Environment Manager

optional arguments:
  -h, --help            show this help message and exit
  --executable EXECUTABLE
                        Unity Executable Path
  --port PORT           Port exposed for algorithm

The agent algorithm can be executed using this command.

python algorithm.py

Configuration of algorithm e.g., number of parallel environments, port of algorithm server, can be altered.

usage: algorithm.py [-h] [--ip IP] [--port ENV_PORT] [--num_envs NUM_ENVS]

VECA Algorithm Server

optional arguments:
  -h, --help           show this help message and exit
  --ip IP              Envionment Manager machine's ip
  --port ENV_PORT      Environment Manager's port
  --num_envs NUM_ENVS  Number of parallel environments to execute

Acknowledgements

This work was supported by Institute for Information & communications Technology Promotion(IITP) grant funded by the Korea government(MSIT) (No.2019-0-01371, Development of brain-inspired AI with human-like intelligence

Citation

If you find this work useful in your research, please cite

 @article{park2021veca,
  title={VECA: A Toolkit for Building Virtual Environments to Train and Test Human-like Agents},
  author={Park, Kwanyoung and Oh, Hyunseok and Lee, Youngki},
  journal={arXiv preprint arXiv:2105.00762},
  year={2021}
}

veca's People

Contributors

kwanyoungpark avatar ohsai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.