Skip to main content

Multi-agent simulation library in Python

Project description

Westworld

Description

Westworld is a multi-agent simulation library, its goal to simulate and optimize systems and environments with multiple agents interacting. Its inspiration is drawn from Unity software and Unity ML Agents, adapted in Python.

The goal is to be able to simulate environments in logistics, retail, epidemiology, providing pre-coded spatial environments and communication between agents. Optimization can be included using heuristics as well as Reinforcement Learning.

!!! warning "Experimental" This library is extremely experimental, under active development and alpha-release Don't expect the documentation to be up-to-date or all features to be tested Please contact us if you have any question

The name is of course inspired by the TV series Westworld, which is actually a gigantic multi-agent simulation system.

Documentation

Documentation is available locally in docs folder or online at https://theolvs.github.io/westworld

Features

Current features

  • Easy creation of Grid and non-grid environments
  • Objects (Agents, Obstacles, Collectibles, Triggers)
  • Subclassing of different objects to create custom objects
  • Spawner to generate objects randomly in the environment
  • Basic rigid body system for all objects
  • Simple agent behaviors (pathfinding, wandering, random walk, fleeing, vision range)
  • Automatic maze generation
  • Layer integration to convert image to obstacle and snap it to a grid
  • Sample simulations and sample agents for classic simulations
  • Simulation visualization, replay and export (gif or video)

Roadmap features

  • More classic simulations and tutorials (boids, sugarscape)
  • Better pathfinding
  • Easy Reinforcement Learning integration with Stable Baselines
  • Other visualization functions than PyGame for web integration

Installation

Install from PyPi

The library is available on PyPi via

pip install westworld

For developers

  • You can clone the github repo / fork and develop locally
  • Poetry is used for environment management, dependencies and publishing, after clone you can run
# To setup the environment
poetry install

# To run Jupyter notebook or a python console
poetry run jupyter notebook
poetry run python

Contributors

Javascript version

A javascript version is being developed at https://github.com/TheoLvs/westworldjs

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

westworld-0.1.3.tar.gz (34.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

westworld-0.1.3-py3-none-any.whl (43.0 kB view details)

Uploaded Python 3

File details

Details for the file westworld-0.1.3.tar.gz.

File metadata

  • Download URL: westworld-0.1.3.tar.gz
  • Upload date:
  • Size: 34.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.8.8 Windows/10

File hashes

Hashes for westworld-0.1.3.tar.gz
Algorithm Hash digest
SHA256 06e4813266d7da82c042ae0ec175f0c9aeeaaeac2be4da41d75e83f0fe773084
MD5 dbc86af1c8030826de5c51dc82ef47af
BLAKE2b-256 11f70aa9cf459ad5624d40a358ed55b26200a81c1de3d2f91a9097969fea63b8

See more details on using hashes here.

File details

Details for the file westworld-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: westworld-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 43.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.8.8 Windows/10

File hashes

Hashes for westworld-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bfc415f36213ef069eff9020d0cb3b197bec84f069da8a990d1c3f414ece579f
MD5 263946001a0ef4cd0c037876f7ac737f
BLAKE2b-256 808442cbaf8cbf10a35a93d098a5897f3091eb1ce5c3118fda59bf5dfeb4888f

See more details on using hashes here.

Supported by

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