HoverPilot
Minimal Python 3.10+ client to connect to RealFlight Link (TCP 18083), exchange RC commands, and expose a Gymnasium-compatible hover environment.
Installation
Install the base package from PyPI:
pip install hover-pilot
Install the optional PPO training, evaluation, and reporting dependencies:
pip install "hover-pilot[rl]"
With uv, use uv add hover-pilot or uv add "hover-pilot[rl]".
Quickstart
From a source checkout, install dependencies and run the demo with uv:
uv sync
cp .env.example .env
uv run hoverpilot-demo
Install the optional reinforcement-learning dependencies to train or play a PPO policy:
uv sync --extra rl
uv run hoverpilot-ppo train --timesteps 50000 --save-path ppo_hoverpilot.pt
HoverPilot periodically evaluates the deterministic policy, keeps latest and best checkpoints separately, and stores the complete training state for exact continuation. A repository checkout also includes an example TOML experiment:
uv run hoverpilot-ppo train --config configs/elevator.toml
Evaluate the best checkpoint or generate an HTML summary from a TensorBoard run:
uv run hoverpilot-ppo evaluate --checkpoint ppo_hoverpilot.best.pt
uv run hoverpilot-ppo report runs/hoverpilot-ppo
The user guide describes TOML overrides, checkpoint comparison, full-state resume, evaluation metrics, and HTML reports in detail.
By default HoverPilot connects to RealFlight Link at 127.0.0.1:18083. Set
RFLINK_HOST when RealFlight runs on another host or outside the current network
namespace.
Gymnasium Environment
import numpy as np
from hoverpilot.config import HOST, PORT
from hoverpilot.envs import HoverPilotHoverEnv
env = HoverPilotHoverEnv(host=HOST, port=PORT, max_episode_steps=250)
observation, info = env.reset()
action = np.asarray([0.0, 0.0, 0.55, 0.0], dtype=np.float32)
observation, reward, terminated, truncated, info = env.step(action)
The action contains aileron, elevator, throttle, and rudder. See the user
guide for observation layouts, reward and termination behavior, and trainer modes.
Documentation
- User guide: setup, running, training, validation, and troubleshooting
- RealFlight Link interface: client API and protocol reference
License
This project is licensed under the MIT License. See the LICENSE file for details.
Metadata
Release files for hover-pilot 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hover_pilot-2.1.0.tar.gz | 97.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hover_pilot-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 175.7 kB
Release files / hover_pilot-2.1.0.tar.gz
| Download URL | hover_pilot-2.1.0.tar.gz |
|---|---|
| Size | 97.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35b16b4673795e3a59889de1105ee35d3d22fa4a678db83c0e5a46471f910aab
|
|
BLAKE2b-256 checksum How to use checksums |
168a62e762f80f620c020262cb85b8405a46b6446f0c4e74022ece051c30af15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.
Transparency logRelease files / hover_pilot-2.1.0-py3-none-any.whl
| Download URL | hover_pilot-2.1.0-py3-none-any.whl |
|---|---|
| Size | 78.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4b8009f3c012a4c32611c5819bb01642ecc6a99d85af89606a14855cf0b29be4
|
|
BLAKE2b-256 checksum How to use checksums |
55b225b740120fd472402ed27dba518227e7031765798c4ecbdc34474f094b40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 15, 2026.
Transparency log