Skip to main content
Yanked

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)

Source distribution for vbar 0.0.1
File Size Uploaded Provenance
vbar-0.0.1.tar.gz 13.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for vbar 0.0.1
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page