RemoteRL: high-performance command-line & Python client with pre-compiled native wheels for remote reinforcement-learning workloads.
Project description
RemoteRL: Cloud Service for Remote Reinforcement Learning
Overview
RemoteRL is a cloud-based platform that enables reinforcement-learning (RL) training to run remotely, decoupling the agent’s training process from environment (simulator) execution. It’s a scalable framework that lets you connect environments (simulators or robots) from anywhere, stream live experience data, and train smarter models in real time. You always run both pieces yourself—the trainer on a laptop, on-prem cluster, or robot controller, and the simulators or robots wherever they already live, nearby or across the globe. RemoteRL’s relay nodes stream data between them over secure WebSockets, letting you connect environments anywhere, send live experience data, and plug into popular RL frameworks—all without rewriting code.
Key Characteristics:
-
Separation of Concerns: The RL environment (“Simulator”) keeps running wherever it already lives—on your PC, a robot, or another server—and connects to RemoteRL’s relay. The learning algorithm (“Trainer”) stays on your own machine or cluster, receiving observations and rewards through RemoteRL and sending back actions or updated policies. Because each process remains on hardware you control, you never have to install the simulator on the training host, simplifying setup and letting you leverage local compute when it makes sense.
-
Use Cases: RemoteRL is especially useful for scenarios like robotics and IoT (where a physical robot or device provides real-time data to train a model remotely) and distributed simulation (where many simulators run in parallel on different machines to speed up training). It allows training "from anywhere" – whether the environment is on-premises or in the cloud – by handling the networking, synchronization, and scaling behind the scenes. For example, a robotics engineer could connect a robot’s control loop to RemoteRL and have a cloud-based RL agent train on the live data, or a researcher could run dozens of game simulations on local PCs all feeding into a single cloud RL learner.
Core Features and Functionality
RemoteRL provides a number of features to make remote and distributed RL easy to integrate and manage:
-
Zero-Setup Integration: It works out-of-the-box with popular Python RL libraries. Users simply install the
remoterlPython package and add a one-line initialization with their API key to an existing Gymnasium or RLlib script – “Runpip install remoterland addremoterl.init(api_key="…")to any Gymnasium / Ray RLlib script, and hit run — no rewrites, zero friction”. This means no extensive code refactoring or complex cluster setup is required; RemoteRL hooks into the RL frameworks to handle remote environment communication transparently. -
Framework and Tool Support: The service auto-integrates with popular RL frameworks like OpenAI Gymnasium (Gym) for environment interfaces and Ray RLlib for distributed training algorithms. It also supports integration with libraries like Stable-Baselines3. This broad support allows developers to use familiar APIs and algorithms (e.g. RLlib’s trainers or Stable-Baselines3’s agents) while RemoteRL manages the remote execution of environments. Whether you use custom Gym environments or standard ones, or whether you train with RLlib’s scalable architecture or a single-agent approach, RemoteRL can plug in with minimal changes.
-
Live Web Dashboard & Monitoring: RemoteRL provides a web‑based dashboard that shows which simulators and trainers are online alongside basic byte/step counters. When you add
remoterl.init(api_key="…")to a process, it appears on the dashboard within seconds. The dashboard displays connection status only—RemoteRL does not view, store, or inspect observation, reward, or model payloads. Operators can disconnect a simulator or temporarily block new sessions; they cannot peek into in‑flight data nor pause individual training iterations. -
Distributed & Scalable Training: RemoteRL’s relay layer is logically centralized, but it feeds data just as well into a single-process trainer or a distributed RL cluster you run with frameworks such as Ray RLlib. Many simulators—or whole fleets of robots—can stream experience to one learner, while an RLlib-style trainer can shard its own work behind the relay. RemoteRL handles fan-in/fan-out, step ordering, and back-pressure, so you scale from one to hundreds of simulators without touching networking code or changing your training loop.
-
Real-Time Online RL: RemoteRL streams observations and rewards to the trainer—and actions back to simulators—in real time. Each simulator automatically connects through the relay node in the nearest cloud region, so every
env.step()returns with minimal round-trip delay even when trainer and environments are on different continents. With servers rolling out across major cities, you can run a trainer in Europe while simulators in Asia and the Americas each route to their closest node, delivering interactive, online RL at global scale. -
Usage-Based Pricing and Tiers: RemoteRL offers a free tier and a premium plan. The service will be “available free for everyone” for light use, meaning you can run training jobs without paying as long as data usage is under a certain limit. The free tier includes 1 GB of data traffic free (as noted in the feature list) and likely some reasonable number of simulators. For heavier usage, premium services (pay-as-you-go) are offered – “charged per GB” for data beyond the free quota. The premium tier is designed for those who need “extensive data usage, multiple simulators, and large-scale training across global regions.” In other words, large experiments or enterprise deployments with many environments and high throughput would incur a usage-based fee. This pricing model is traffic/duration-based (billing on both bytes of data exchanged and active connection minutes), ensuring you only pay for what you use, and there is no hard limit on speed or number of simulators in premium aside from practical scaling limits. This makes the service accessible to individual researchers (on the free tier) while scaling up to industrial projects on the paid tier.
Architecture and How It Works
At a high level, RemoteRL follows a client–server architecture specialized for RL. The core components are defined as follows:
-
Trainer: The RL algorithm process that you run and manage (e.g., on your own cloud instances, on-prem servers, or a laptop). RemoteRL simply provides the networking bridge: it relays state/reward data from simulators to your trainer and returns actions. You can still scale the trainer across multiple machines—using Ray RLlib or similar frameworks—while RemoteRL abstracts away the connection details, not the computation itself.
-
Simulator: The environment process that produces observations and receives actions—whether it’s a game engine, robotics simulator, custom code, or a real-world device such as a robot control loop or IoT sensor. It can run anywhere (local machine, edge device, or another cloud) and connects to RemoteRL over a secure WebSocket. Functionally it behaves like any Gym environment; the only difference is that these interactions travel across the network through RemoteRL’s bridge.
import gymnasium as gym
import remoterl
remoterl.init(api_key="YOUR_KEY", role="trainer") # the SDK treats this process as the trainer
env = gym.make("Humanoid-v5") # Environment runs remotely in another city
Communication: When you integrate RemoteRL, the typical RL loop is split between the trainer and simulator via the network:
- The trainer invokes an environment step (e.g. calling
env.step(action)in RL code). Instead of running locally, this call is routed through RemoteRL’s library which sends the action to the remote simulator over the WebSocket connection. - The simulator receives the action, applies it (advancing the simulation or executing on the robot), and returns the resulting observation, reward, and done flag back over the socket.
- The trainer then uses the received data to update the agent’s model (e.g., via policy gradient, Q-learning update, etc.), and the cycle repeats.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file remoterl-1.1.5-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 5.5 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
632a014205450729031801f463a31a2519e867d5ddabe55a4a7819c5e6889e2b
|
|
| MD5 |
2890c295ae5f9d085ed12e48625aa4c6
|
|
| BLAKE2b-256 |
1ed07c6fa871234f006e2c2232ef5fae514e2c02cdbcc96c25408deb4d3e507b
|
File details
Details for the file remoterl-1.1.5-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0776b1edb90737efecb41d29837a41232252c939a5ba0f386b3e7f14d7a89632
|
|
| MD5 |
e1d667d044301febc6b7520c1452b7f5
|
|
| BLAKE2b-256 |
55f8bb55daeea2a62758b90b10b9073c567f7fe44d3a29e368e7d8effdc22515
|
File details
Details for the file remoterl-1.1.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c575857dc9e9c804258b44cde73a20bb95823b30edab5f3103716f1ffa929f0
|
|
| MD5 |
8f653054759e24200145242189eedfd8
|
|
| BLAKE2b-256 |
789f930efb0519a6d7feee6b7a5036aa8adb59b0b6c1dba226b0937355424a5b
|
File details
Details for the file remoterl-1.1.5-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.5 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fa7f876853319bd1d8074298b098ef3da775b58656a74d1763e8dec73fef2b7
|
|
| MD5 |
780177129c0ba8a43a9c4b46471b4717
|
|
| BLAKE2b-256 |
9f482be080b47c2076352a9867e9c034480da1e1d54f61b80674e1e567002250
|
File details
Details for the file remoterl-1.1.5-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 5.3 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7fbf5ebc06a93eca3307f77062683a34c66eb22a2e58f7cabd4eca8e25fb341
|
|
| MD5 |
f6dc99b623e8587ff0291a78c32bb2e2
|
|
| BLAKE2b-256 |
0bb71444f0d011732ae999933911f6d971c4624fde720b21ddac67ab5c5486e1
|
File details
Details for the file remoterl-1.1.5-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3e2a3f9667ecded8e509d76a9f0ce5d0ec89d5863af28fce6edeb5cc1fe6336
|
|
| MD5 |
f6dd1425922152920b83e5ad1e108df1
|
|
| BLAKE2b-256 |
cdb1b81d5ef55272d9d76408ec1ac48b930f709626a564e6fb2eaf2ce884e61e
|
File details
Details for the file remoterl-1.1.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f93826c41712b2bbfd9ecc0075488a371368a8c226e24ba087f6cd4f3fe2b99e
|
|
| MD5 |
4d3557410759ef05c715392f19b589d6
|
|
| BLAKE2b-256 |
358778eae07eaa1b32722862728740de16cc3d564f037e6daff91e4e72317024
|
File details
Details for the file remoterl-1.1.5-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b3dd20fa89a2e3bb971aeb02560bc5e92ed9d718be87cbbde577e631ff32820
|
|
| MD5 |
bc9531c334b17ca3edcf3d7830f9a825
|
|
| BLAKE2b-256 |
fbc5b8ecbbaae38a67ca24b5e7d429885b74f16bb4b3d31cca43e19f3b90a1a7
|
File details
Details for the file remoterl-1.1.5-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 5.2 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2d419b7e253a58bc342ae4b58fcb8789fc434532bebecdc10db1468e408b523
|
|
| MD5 |
53d5c57f4bbad825803772685814fb64
|
|
| BLAKE2b-256 |
1eabfb86e9f836162ec2f81817ff8c78fe948f20724515afb1524354a9521123
|
File details
Details for the file remoterl-1.1.5-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.1 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ce26d6076a8e42090d5856d343375660846e290829b8adb841795b41e051fc3
|
|
| MD5 |
993ea73af6259f8589503050b215e2ac
|
|
| BLAKE2b-256 |
03ba2c563f612e04ae07b44ff3f6a38c75a86dbe430b90d401b695d9e01e5bbc
|
File details
Details for the file remoterl-1.1.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.1 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b2323862226f21e7a134bfd1ebba33269b71d93419c2a71a34fba379f83aa79
|
|
| MD5 |
396034d64dc00d3a3de29539abe91f15
|
|
| BLAKE2b-256 |
11efa18213da7d2be98cecc9a48345e27b22224f940cb0f52ed1baf2780a662d
|
File details
Details for the file remoterl-1.1.5-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc55248a313ce26e1bc4de7ef994f2fd7982aaecdc734d8fffe280bea0760dc1
|
|
| MD5 |
b9177aabe9f8c50e03ae2634bece3763
|
|
| BLAKE2b-256 |
8ad515238ec71ef33b78f3e00e9fead1b737de13923a8dba872815eba7e29b9d
|
File details
Details for the file remoterl-1.1.5-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 5.1 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af79df21aea8f3f2b0575dc9aa734c7a23397eb318415f08de2626fd361160ab
|
|
| MD5 |
260d69205f63c625d95823e57c32e897
|
|
| BLAKE2b-256 |
bfbb06ef1fa5ead9a5d601c7a50d608f57167325197ea1d128298f1333e96ab8
|
File details
Details for the file remoterl-1.1.5-cp39-cp39-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8730eb03474a080d6d98f2085068631fb8b6b0b794dcd0dcbb8627af124da112
|
|
| MD5 |
910332c449c5120f1575c409adf32344
|
|
| BLAKE2b-256 |
97ed70f1aed5dc10a34f95bfdb7edac0427569c457cf55fc934968488c1ba54f
|
File details
Details for the file remoterl-1.1.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8329ede1830a8c20448ed861f29c62b5776c3d31bb3995f2a6929e7119dd4f7c
|
|
| MD5 |
82cfa9eb4935bdb19a23a87a7ac618f4
|
|
| BLAKE2b-256 |
3ba2fee0dd0e5a3a8c2adf5f9a7e154c682cb0461191eadddb43a7f0bc5f82ff
|
File details
Details for the file remoterl-1.1.5-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: remoterl-1.1.5-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c61af1da4dc76c1796bf72bd32164a4515390124cb37c9fcec674609ac1058f9
|
|
| MD5 |
abe60eeb8c36a8b300fb45c7a98a715d
|
|
| BLAKE2b-256 |
218126a974b304c84baed457d8122d20f52742b4d310f480b4b713164eb1e1eb
|