AVAILABLE NOW
Controller preview
A small, runnable HTTP example with mock observations. Explore the proposed data flow before the SDK release.
Try the exampleLoading the latest organizer resource…
DEVELOPER HUB / CONTRACT PREVIEW
Explore the proposed observation–action API, run a local controller example, and prepare for the official simulator and SDK release.
Start here01 / DEVELOPMENT STATUS
Your driver receives an observation and returns steering, throttle and brake commands. The evaluator owns simulation time, checkpoints, penalties and the official result.
AVAILABLE NOW
A small, runnable HTTP example with mock observations. Explore the proposed data flow before the SDK release.
Try the examplePLANNED RELEASE
Visual and headless simulator, public practice tracks, evaluator, training adapter and both division baselines. Release date and installation commands TBA.
02 / API PREVIEW
The proposal describes three logical operations. Local HTTP or IPC transport will be confirmed in the official SDK. The endpoints below belong to your controller, not to this website.
| Operation | Purpose | Example response |
|---|---|---|
| GET /health | Readiness and version check | ready, api_version, submission_version |
| POST /reset | Start a new episode and clear state | ready, state_cleared |
| POST /act | Return an action for an observation | request_id, steering, throttle, brake |
{
"request_id": 120,
"sim_time_s": 6.0,
"dt_s": 0.05,
"vehicle": {
"speed_mps": 14.2,
"yaw_rate_rps": 0.08,
"cross_track_error_m": 0.15,
"heading_error_rad": -0.02
},
"road": {
"preview_xy_m": [[5.0, 0.1], [10.0, 0.6]],
"surface_class": "dry"
}
}
Units use metres, seconds and radians. In this preview, local x points forward and y points left; positive steering turns left. The two-point road array is shortened for illustration; the proposed SDK uses 20 points with up to 50 m lookahead.
{
"request_id": 120,
"steering": 0.12,
"throttle": 0.35,
"brake": 0.0
}| Action field | Valid value |
|---|---|
| request_id | Echo the current observation’s request_id |
| steering | Finite number from −1 to 1 |
| throttle | Finite number from 0 to 1 |
| brake | Finite number from 0 to 1 |
This action illustrates the schema; it is not the output of the starter controller below. Final field definitions and coordinate signs will follow the official SDK.
03 / RUN A LOCAL EXAMPLE
Download the native Node.js example. It includes an HTTP server, a simple controller, a sample observation and instructions. No third-party packages required.
Download controller previewEducational sample · Node.js 20+ · Not an SDK, simulator or competitive baseline.
node server.mjscurl http://127.0.0.1:7070/health
curl -X POST http://127.0.0.1:7070/reset \
-H 'Content-Type: application/json' \
-d '{"episode_token":"local-demo"}'
curl -X POST http://127.0.0.1:7070/act \
-H 'Content-Type: application/json' \
--data-binary @example-observation.json// Educational contract preview. This is not the official SARL SDK or a competitive baseline.
export function act(observation) {
const clamp = (value, min, max) => Math.max(min, Math.min(max, value));
const { speed_mps: speed, heading_error_rad: heading, cross_track_error_m: offset } = observation.vehicle;
const targetSpeed = 10; // Illustrative m/s target, not an event speed limit.
return {
request_id: observation.request_id,
steering: clamp(-0.8 * heading - 0.15 * offset, -1, 1),
throttle: clamp((targetSpeed - speed) * 0.15, 0, 1),
brake: clamp((speed - targetSpeed) * 0.2, 0, 1)
};
}
For the sample observation, expect steering ≈ −0.0065, throttle 0 and brake ≈ 0.84. The fixed 10 m/s target is an example, not an event limit. The controller ignores road preview and does not simulate vehicle movement.
04 / RUNTIME BEHAVIOUR
05 / OFFICIAL SDK ROADMAP
The official simulator is not available here yet. Once released, the intended workflow is:
Simulator download, supported operating systems, installation commands, container base image, full schemas and evaluation CLI are TBA. The example above verifies HTTP integration only.