# Parabellum
Ultra-scalable JaxMARL based warfare simulation engine developed with Armasuisse funding.
[![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": "<4.0,>=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/bf/30/76c846cb1457f189e7f4a4c42cc363ac3552a4a918f72d81e37740ad0350/parabellum-0.2.26.tar.gz",
"platform": null,
"description": "# Parabellum\n\nUltra-scalable JaxMARL based warfare simulation engine developed with Armasuisse funding.\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",
"bugtrack_url": null,
"license": "MIT",
"summary": "Parabellum environment for parallel warfare simulation",
"version": "0.2.26",
"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": "540745466dffbd1714f209db6acf0e749732f656e91d23963f290c6e0334187a",
"md5": "16440aba1924f4b26badce919b111d55",
"sha256": "4e2155e6fa905e5361df019c1105e0721b477c1aafe63e672d4ff929b80451ba"
},
"downloads": -1,
"filename": "parabellum-0.2.26-py3-none-any.whl",
"has_sig": false,
"md5_digest": "16440aba1924f4b26badce919b111d55",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 13318,
"upload_time": "2024-08-07T13:52:36",
"upload_time_iso_8601": "2024-08-07T13:52:36.963108Z",
"url": "https://files.pythonhosted.org/packages/54/07/45466dffbd1714f209db6acf0e749732f656e91d23963f290c6e0334187a/parabellum-0.2.26-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bf3076c846cb1457f189e7f4a4c42cc363ac3552a4a918f72d81e37740ad0350",
"md5": "9608a4bf37d4f600539d7e1ddf6bda4f",
"sha256": "7ad75c0268ea8bbeed7383743b145dd6011752901ceafec3d81fdc350d19c1f7"
},
"downloads": -1,
"filename": "parabellum-0.2.26.tar.gz",
"has_sig": false,
"md5_digest": "9608a4bf37d4f600539d7e1ddf6bda4f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 11854,
"upload_time": "2024-08-07T13:52:38",
"upload_time_iso_8601": "2024-08-07T13:52:38.269395Z",
"url": "https://files.pythonhosted.org/packages/bf/30/76c846cb1457f189e7f4a4c42cc363ac3552a4a918f72d81e37740ad0350/parabellum-0.2.26.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-07 13:52:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "syrkis",
"github_project": "parabellum",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "parabellum"
}