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.22.tar.gz
(11.7 kB
view hashes)
Built Distribution
Close
Hashes for parabellum-0.2.22-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0556d7e1dbd884d900d597e7511b068a8a1b8e2f80f1f846dee92fe320164f8 |
|
MD5 | df09df609e5893e98b9efb48d70f963a |
|
BLAKE2b-256 | c43883167e509bd4f2a51406f5ff9b3d3d359f3671dbf7849f5361e9c2092ca0 |