Skip to content
/ veca Public
forked from kwanyoungpark/VECA

Code for "VECA: A New Benchmark and Toolkit for General Cognitive Development" (AAAI'22 Oral)

License

Notifications You must be signed in to change notification settings

snuhcs/veca

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


VECA

License: MIT

Table of Contents
  1. About The Project
  2. Getting Started
  3. Contact
  4. Citation
  5. Acknowledgments

About The Project

veca_overview

VECA is currently preparing for the public release of Bayley-4 cognitive tasks, Unity packages, and additional system optimizations. Sorry for the delay.

(back to top)

Built With

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

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

(back to top)

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.

(back to top)

How to Run

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

(back to top)

Contact

Kwanyoung Park - @Github - william202@snu.ac.kr Hyunseok Oh - @Github - ohsai@snu.ac.kr

(back to top)

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}
}

(back to top)

Acknowledgments

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

(back to top)

About

Code for "VECA: A New Benchmark and Toolkit for General Cognitive Development" (AAAI'22 Oral)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%