This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.3.1 instead.
Reason given by maintainers: Early preview. Use vbar 0.2.0 or later, which needs Python 3.12+.
V-BAR: Verified Benchmark for Autonomous Rendezvous
vbar is a fast, headless, cross-platform benchmark for testing AI and classical spacecraft controllers, with and without safety filters.
Status: v0 (early development). One scenario, validated close-range dynamics, classical and LLM agent interfaces.
Why
Testing AI controllers for spacecraft rendezvous today usually means running a full game engine (KSPDG, built on Kerbal Space Program): a paid game, GUI-only, macOS/Linux, real-time. That makes large, statistically meaningful experiments slow. V-BAR runs anywhere Python runs, with no game, and simulates an hour of flight in a fraction of a second.
Goals:
- Fair comparisons: the same scenarios, metrics, and number of runs for every controller: classical, reinforcement learning, or LLM.
- Safety as a first-class metric: keep-out violations are checked continuously (including between time steps), and safety filters can be switched on and off.
- Reproducible: seeds, logged prompts and replies, and validated physics.
Install
pip install -e ".[dev]" # from a clone of this repo
Quickstart
from vbar import ApproachConfig, ApproachEnv, run_episode
from vbar.agents import PDAgent
env = ApproachEnv(ApproachConfig(start_state=(0, 400, 0, 0, 0, 0)))
result = run_episode(env, PDAgent())
print(result["captured"], result["keep_out_violated"], result["dv_used_mps"])
Run the demo (saves a trajectory plot to outputs/):
python examples/v0_demo.py
Plug in any LLM
from vbar.agents import LLMAgent
def complete(prompt: str) -> str:
... # call any model and return its text reply
agent = LLMAgent(complete, name="my-model")
result = run_episode(env, agent)
agent.log # every prompt, reply, parsed action, parse failure, latency
Scenario: approach to hold point
The chaser must reach a hold point 100 m behind the target on the V-bar and stop, without entering a 50 m keep-out sphere around the target.
Dynamics: Clohessy-Wiltshire relative motion (circular target orbit at 500 km, close range, no perturbations). Integrated numerically (DOP853) and validated against the exact closed-form solution to sub-millimeter accuracy over a full orbit (tests/test_cw.py).
Metrics (in info and the result dict): capture, keep-out violation (checked between steps), minimum range to target, delta-v used, time, filter interventions.
Validation
pytest -q
Tests check the dynamics against known exact results: the closed-form solution, V-bar equilibrium, closed relative ellipses, and the 12π·|x0| along-track drift per orbit.
Citation
See CITATION.cff.
License
MIT
Metadata
Release files for vbar 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| vbar-0.0.1.tar.gz | 13.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vbar-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.9 kB
Release files / vbar-0.0.1.tar.gz
| Download URL | vbar-0.0.1.tar.gz |
|---|---|
| Size | 13.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
40e4b45261eb3a4c037e2ecf7fa3afa0d208fbfbdc2a60f0a02eef097215a6ed
|
|
BLAKE2b-256 checksum How to use checksums |
6d301d12f8d0d7ad58bffd83086193084c84d5e95915ff631743c809499c389c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / vbar-0.0.1-py3-none-any.whl
| Download URL | vbar-0.0.1-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2d9313bf3a11e14de7484f3e8a36ed80cc3c64c7669d19936be75c4f207072f
|
|
BLAKE2b-256 checksum How to use checksums |
a80a361ffd1b9be1048dc64d543348d1e2c33aa26429b833a2ba3792a6870ceb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Security for vbar 0.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.