Skip to main content

A custom environment creation engine for rewards.ai

Project description

rewards_envs

rewards-envs is the official repository for environment store, custom environment developement and integration. When it comes to reinforcement learning, we face a hard time creating custom environment and wraping under gymnasium's format. Hence introducing rewards_envs. With just few lines of code, Now you can create or convert your games (pygame) to cutsom environment for your agents.

Installation and getting started.

To install rewards-envs you just have to write the command

pip install rewards_envs 

This installs our latest version. Current version of rewards_envs provides a single default custom environment, called car_race. More custom environment and integration with gymnasium environments will be supported in the coming versions.

In order to build our custom environment, you have to simply write these few lines of code.

from rewards_envs import CarConfig, CarGame

# First create the configurations to create the environment 
# configurations helps to maintain multiple experiments 

env_config = CarConfig(
    render_mode = "rgb_array", 
    car_fps=30, screen_size = (1000, 700)
)

# create the game 
env = CarGame(
    mode = "evaluation", 
    track_num = 1, 
    reward_function = reward_function, 
    config = env_config
)

If you see when you are initializing the environment, there is a parameter called reward_function : Callable. This is a function that you have to define based on the given car's properties. Below is a sample reward function that works best for this environment.

def reward_function(props) -> int:
    reward = 0
    if props["is_alive"]:
        reward = 1
    obs = props["observation"]
    if obs[0] < obs[-1] and props["direction"] == -1:
        reward += 1
        if props["rotational_velocity"] == 7 or props["rotational_velocity"] == 10:
            reward += 1
    elif obs[0] > obs[-1] and props["direction"] == 1:
        reward += 1
        if props["rotational_velocity"] == 7 or props["rotational_velocity"] == 10:
            reward += 1
    else:
        reward += 0
        if props["rotational_velocity"] == 15:
            reward += 1
    return reward

The agent (here the car) has some following properties named under the dictionary props. Here the name and the explaination of all the properties.

  • is_alive : This states, whether the car is alive or not

  • observation : Observation is a array of 5 float values, which are the radars of the car.

  • direction : Direction provides the current action taken by the car.

  • rotational_velocity : The rotational velocity of the car.

The properties of the car are determined during the process of creation of the game. If you want to create a custom environment, then you can define your agent's properties there. The propeties must be those, which determines whether or how much an agent is gonna win/loose the game.

Roadmap

We want to make rewards as a general repository for RL research and RL education. Most of the RL research are heavily dependent on the environment. After environment creation, practicioners either face lot of issues wraping that environment around gymnasium 's custom environment wrapper or create everything of their own. We at rewards want to solve this issue. Through rewards-sdk and rewards_envs user must be able to create custom environment made using Pygame, Unity or any other engine and integrate it and start/organize RL research in no time.

Contributing

Both rewards and rewards_envs are undergoing through some heavy developement. Being a open source projects we are open for contributions. Write now due to lack of docs, we are unable to come down with some guidelines. We will be doing that very soon. Till then please star this project and play with our sdk. If you find some bugs or need a new feature, then please create a new issue under the issues tab.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rewards_envs-0.1.1.tar.gz (324.0 kB view details)

Uploaded Source

Built Distribution

rewards_envs-0.1.1-py3-none-any.whl (321.1 kB view details)

Uploaded Python 3

File details

Details for the file rewards_envs-0.1.1.tar.gz.

File metadata

  • Download URL: rewards_envs-0.1.1.tar.gz
  • Upload date:
  • Size: 324.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.1 CPython/3.10.9 Linux/6.2.6-76060206-generic

File hashes

Hashes for rewards_envs-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9a13b26dfde36c835e681755141aef0746c26becd8b74c32817c0a4349ca6f20
MD5 a407e4ad5212f54ecf65ac78a847c3a3
BLAKE2b-256 77db3f1b3fd6049ae192cd42c7f2b8b25e022d03b1d076ead11b550619e08fe2

See more details on using hashes here.

File details

Details for the file rewards_envs-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: rewards_envs-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 321.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.1 CPython/3.10.9 Linux/6.2.6-76060206-generic

File hashes

Hashes for rewards_envs-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 69ef8ad5029eed221d78cdc669b392db9ed663d02aeab7948120c9b9cde62f2e
MD5 d4c0931e142e27aa523433a477459ceb
BLAKE2b-256 c4980d037db9a3602a405f3a8e8c9bee3ec8afe23837980294366b3154e173a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page