Integrate
drive Simolyot from your code, service, or LMSBase URL
https://sim-orch.sverk.io/v1 · Auth a bearer token (get one on Settings, or an admin mints one on Admin). Full contract: OpenAPI 3.1 spec.1 · curl — submit a run and watch it
TOKEN=slt_… # your access token
BASE=https://sim-orch.sverk.io
# submit a run (hello-sim is a zero-dependency demo)
JOB=$(curl -s -X POST $BASE/v1/jobs \
-H "Authorization: Bearer $TOKEN" -H "content-type: application/json" \
-d '{"stack":"hello-sim"}' | python3 -c 'import sys,json;print(json.load(sys.stdin)["job_id"])')
# stream its logs live (SSE; token via query since EventSource has no headers)
curl -N "$BASE/v1/jobs/$JOB/events?token=$TOKEN"2 · Platform SDK — submit and observe runs
pip install sverk-simolyot is dependency-free (stdlib only). It talks to the control-plane REST/SSE API.
from sverk_simolyot import Client
c = Client("https://sim-orch.sverk.io", token="slt_…")
run = c.submit_run(stack="mujoco", command=["python", "main.py"],
workspace="inline://print('hello from the pool')")
for ev in c.stream(run["job_id"]): # live logs + metrics until terminal
print(ev.kind, ev.line or ev.values)
print(c.get_job(run["job_id"])["phase"]) # succeeded3 · Simulation Runtime SDK — fly inside a run
The optional Python runtime controls MuJoCo and PX4 inside mujoco-sb3-px4. The image already contains it; for local development install the extra.
pip install "sverk-simolyot[mujoco-px4]"
from sverk_simolyot.sim import DroneSim
with DroneSim(scenario="playground", initializer="hover", control="px4") as env:
obs, info = env.reset(seed=42) # lazy boot → HIL → OFFBOARD → ARM → hover
obs, reward, terminated, truncated, info = env.step(env.action_space.sample())
# Ready PPO workflow inside the stack image:
# python -m sverk_simolyot.rl trainSelecting the stack does not start expensive training. Submit an explicit command such as
python -m sverk_simolyot.rl train; DroneSim.reset() starts PX4 lazily.4 · CLI
export POLYGON_URL=https://sim-orch.sverk.io
export POLYGON_TOKEN=slt_…
polygon stacks # what you can run
polygon run --stack hello-sim --wait --follow
polygon jobs # your run history
polygon logs <job_id>5 · Service-to-service (LMS / another product)
Mint a service token with a role on Admin, store it in your backend, and call the same /v1 API server-to-server: submit a student's run, poll or stream status, fetch artifacts, and gate on the final phase — the user never sees a platform credential. Org tenancy keeps every caller's runs isolated; per-org concurrency quotas apply.
Everything a person can do in the UI is an API call — the SPA itself is just a client of this surface.