# Parabellum
Ultra-scalable JaxMARL based warfare simulation engine.
[![Documentation Status](https://readthedocs.org/projects/parabellum/badge/?version=latest)](https://parabellum.readthedocs.io/en/latest/?badge=latest)
## Features
- Obstacles and terrain integration
- Rasterized maps
- Blast radii simulation
- Friendly fire mechanics
- Pygame visualization
- JAX-based parallelization
## Install
```bash
pip install parabellum
```
## Quick Start
```python
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](https://parabellum.readthedocs.io)
## Team
- Noah Syrkis
- Timothée Anne
- Supervisor: Sebastian Risi
## License
MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/syrkis/parabellum",
"name": "parabellum",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.12,>=3.11",
"maintainer_email": null,
"keywords": "warfare, simulation, parallel, environment",
"author": "Noah Syrkis",
"author_email": "desk@syrkis.com",
"download_url": "https://files.pythonhosted.org/packages/54/a5/54bc3589225a8f47dcef331ca6aa48f02436480491edf136af9c63313d51/parabellum-0.4.0.tar.gz",
"platform": null,
"description": "# Parabellum\n\nUltra-scalable JaxMARL based warfare simulation engine.\n\n[![Documentation Status](https://readthedocs.org/projects/parabellum/badge/?version=latest)](https://parabellum.readthedocs.io/en/latest/?badge=latest)\n\n## Features\n\n- Obstacles and terrain integration\n- Rasterized maps\n- Blast radii simulation\n- Friendly fire mechanics\n- Pygame visualization\n- JAX-based parallelization\n\n## Install\n\n```bash\npip install parabellum\n```\n\n## Quick Start\n\n```python\nimport parabellum as pb\nfrom jax import random\n\nterrain = pb.terrain_fn(\"Thun, Switzerland\", 1000)\nscenario = pb.make_scenario(\"Thun\", terrain, 10, 10)\nenv = pb.Parabellum(scenario)\n\nrng, key = random.split(random.PRNGKey(0))\nobs, state = env.reset(key)\n\n# Simulation loop\nfor _ in range(100):\n rng, rng_act, key_step = random.split(key)\n key_act = random.split(rng_act, len(env.agents))\n act = {a: env.action_space(a).sample(k) for a, k in zip(env.agents, key_act)}\n obs, state, reward, done, info = env.step(key_step, act, state)\n\n# Visualize\nvis = pb.Visualizer(env, state_sequence)\nvis.animate()\n```\n\n## Documentation\n\nFull documentation: [parabellum.readthedocs.io](https://parabellum.readthedocs.io)\n\n## Team\n\n- Noah Syrkis\n- Timoth\u00e9e Anne\n- Supervisor: Sebastian Risi\n\n## License\n\nMIT\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Parabellum environment for parallel warfare simulation",
"version": "0.4.0",
"project_urls": {
"Homepage": "https://github.com/syrkis/parabellum",
"Repository": "https://github.com/syrkis/parabellum"
},
"split_keywords": [
"warfare",
" simulation",
" parallel",
" environment"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9c75c0b53dfa1b5c9fd9275e53a6de5b39a63adf28b31bd9c7022ad8f6daade7",
"md5": "cb8446f9a6c7e6b8d4d8834bb835ac13",
"sha256": "dcae404f235cc480ea395b71b1bb8e0240c5ffdca83869cc091bc06d457e3934"
},
"downloads": -1,
"filename": "parabellum-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cb8446f9a6c7e6b8d4d8834bb835ac13",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.12,>=3.11",
"size": 18498,
"upload_time": "2024-10-30T08:48:01",
"upload_time_iso_8601": "2024-10-30T08:48:01.056862Z",
"url": "https://files.pythonhosted.org/packages/9c/75/c0b53dfa1b5c9fd9275e53a6de5b39a63adf28b31bd9c7022ad8f6daade7/parabellum-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "54a554bc3589225a8f47dcef331ca6aa48f02436480491edf136af9c63313d51",
"md5": "ff2f05620981859b47f405d79fc2d0bf",
"sha256": "54973991e59eff42f0f659f13bd063136f7bf8971d0d489a51552441b99f7c26"
},
"downloads": -1,
"filename": "parabellum-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "ff2f05620981859b47f405d79fc2d0bf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.12,>=3.11",
"size": 16484,
"upload_time": "2024-10-30T08:48:02",
"upload_time_iso_8601": "2024-10-30T08:48:02.254516Z",
"url": "https://files.pythonhosted.org/packages/54/a5/54bc3589225a8f47dcef331ca6aa48f02436480491edf136af9c63313d51/parabellum-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-30 08:48:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "syrkis",
"github_project": "parabellum",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "parabellum"
}