Parabellum environment for parallel warfare simulation
Project description
Parabellum
Ultra-scalable JaxMARL based warfare simulation engine developed with Armasuisse funding.
Features
- Obstacles and terrain integration
- Rasterized maps
- Blast radii simulation
- Friendly fire mechanics
- Pygame visualization
- JAX-based parallelization
Install
pip install parabellum
Quick Start
import parabellum as pb
from jax import random
terrain = pb.terrain_fn("Thun, Switzerland", 1000)
scenario = pb.make_scenario("Thun", terrain, 10, 10)
env = pb.Parabellum(scenario)
rng, key = random.split(random.PRNGKey(0))
obs, state = env.reset(key)
# Simulation loop
for _ in range(100):
rng, rng_act, key_step = random.split(key)
key_act = random.split(rng_act, len(env.agents))
act = {a: env.action_space(a).sample(k) for a, k in zip(env.agents, key_act)}
obs, state, reward, done, info = env.step(key_step, act, state)
# Visualize
vis = pb.Visualizer(env, state_sequence)
vis.animate()
Documentation
Full documentation: parabellum.readthedocs.io
Team
- Noah Syrkis
- Timothée Anne
- Supervisor: Sebastian Risi
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
parabellum-0.2.21.tar.gz
(11.6 kB
view hashes)
Built Distribution
Close
Hashes for parabellum-0.2.21-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68bcf85ef0206eb7215d907d3d2384d92a895cded7c917d4b0a81fc69c2c87db |
|
MD5 | 176c184b6ec704a81fba16327fdc2370 |
|
BLAKE2b-256 | fdfeb0d30195b42c16e3dc61d678f0ac789d8502ae22200f2231d5592af3eb9c |