EVAAA will provide a mechanism to freely choose a goal across different surrounding conditions and keep a more stable reward function, which are the key to build and test autonomous and adaptive RL agents. We provide a 3D virtual environment platform that requires RL agents in the Unity environment. It is designed to facilitate testing RL agent.
See here for a more detailed installation guide. The setting process required to run this project is as follows.
- Clone this repository
- Download interoceptive AI environment from below environment link
- Unzip environment files in the Example folder of this repository
- Install ml-agents
- Follow example python code ("python_code_example.py") in Example folder of this repository
OS | Enviornment |
---|---|
Linux | Link |
Mac | Link |
Windows | Link |
Software | Version |
---|---|
python | 3.10.12 |
Unity editor (optional) | 2022.3.16f1 |
Package | Version |
---|---|
mlagents | 1.0.0 |
mlagents-envs | 1.0.0 |
When you run this project on Unity, it will proceed with an agent view (a first-person perspective). Here you can control the agent with the following:
|We have a dynamically changing environment, and there are 5 levels in total.
At level 1, the environment is simple, featuring only the fundamental resources, that is, food, water (i.e., a pond), and temperature
- The food is organized into cubes and possesses the ability to undergo color changes over time.
- The water is arranged in the form of a pond.
- The temperature is randomized based on the specified parameters and is regenerated whenever the agent dies.
- The temperature can be directly modified through the "Field Temperature parameters".
The agent needs to leverage the knowledge acquired from the previous level to successfully adapt to a more complex environmental setting. At level 2, we adds natural objects, such as trees, rocks, and bushes, which act as obstacles that hinder the agent’s vision
In level 3, we implemented the day/night cycle using a sun game object that rotates at a predefined degree over time.
At night, the overall temperature is lower and the agent's vision is darker, so it receives less visual input.
In level 4, we implemented the weather changes. We incorporated two weather variations into EVAAA: rain and snow, drawing inspiration from nature.
Weather options can be selected as a parameter in Unity itself, and can be applied to any scene. You can also set temperature changes based on the weather, with rain or snow obstructing the agent's view.
In level 5, we combine all challenges from lower level environments, e.g., day/night cycle and weather changes, with seasonal variations– spring, summer, fall, and winter. Each season is characterized by a number of unique features with varying colors, which can disrupt the agent’s vision for navigating and detecting resources.
EVAAA environment consists of four large categories of scripts.
-
Agent
-
Animal
-
Environment
-
Resource
-
Others
EVAAA environments are built using the following assets. (All assets are free assets from Unity Asset Store.)