Participant SDK for the EPIC — ELIOS Predictive Intelligence Challenge platform.
Project description
EPIC Participant SDK
epic-elios-client is the participant SDK for the EPIC — ELIOS Predictive Intelligence Challenge platform. It helps students and competitors authenticate, browse contests, collect live observations, submit predictions, and inspect results.
Installation
pip install epic-elios-client
Install with notebook extras for the Jupyter quickstart:
pip install "epic-elios-client[notebook]"
Contest format
Every EPIC contest uses a two-phase structure:
- Observation phase (
start_date→end_of_observation): the simulation runs and you receive live sensor readings via WebSocket. Use this window to collect data and train your model. - Evaluation phase (
end_of_observation→end_of_observation + prediction_horizon_seconds): the simulation continues but the stream closes. The ground truth for this window is hidden. - Submission window (evaluation phase ends →
end_date): submit a forecast covering every step of the evaluation window.
The number of steps to forecast is:
eval_steps = round(prediction_horizon_seconds × sampling_rate_hz)
Each sensor needs exactly eval_steps predicted values.
Minimal usage
import asyncio
from epic_client import EPICClient
async def main():
client = EPICClient("https://epic.elioslab.net")
client.login("student1", "correct-password")
contests = client.list_contests(status="ACTIVE")
contest_id = contests[0]["contest_id"]
task = contests[0]["tasks"][0] # {"eval_steps": 200, ...}
eval_steps = task["configuration"]["eval_steps"]
# Collect observations during the observation phase.
observations = await client.collect(contest_id, duration_seconds=30)
# Build a forecast once the submission window opens.
# Predict eval_steps values for every sensor you want to score.
sensors = list(observations[-1]["sensors"].keys())
forecast = {sensor: [0.0] * eval_steps for sensor in sensors}
submission = client.submit(
contest_id=contest_id,
task_id="forecasting",
payload={"forecast": forecast},
)
print(submission)
asyncio.run(main())
API reference
EPICClient(server_url)
| Method | Description |
|---|---|
login(username, password) |
Authenticate and store the bearer token. |
list_contests(status=None) |
Return contests, optionally filtered by status ("ACTIVE", "CLOSED", …). |
register(contest_id) |
Register for a contest (idempotent). |
collect(contest_id, duration_seconds, csv_path=None) |
Stream observations for up to duration_seconds and return them as a list. Optionally save to CSV. Stops automatically when the observation phase ends. |
stream(contest_id) |
Async generator that yields one observation dict per sensor tick. Stops at the end of the observation phase. |
submit(contest_id, task_id, payload) |
Submit a forecast. payload must be {"forecast": {"sensor_id": [v1, v2, …], …}} with exactly eval_steps values per sensor. |
get_scores(contest_id) |
Return all your submissions with their scores. |
get_leaderboard(contest_id) |
Return the current leaderboard. |
Observation dict
{
"sequence_id": 42,
"timestamp": "2027-01-10T09:00:04.200Z",
"sensors": {"position": 0.134, "velocity": -0.021},
}
Quickstart notebook
Download and run the quickstart notebook for a step-by-step walkthrough.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 epic_elios_client-1.0.4.tar.gz.
File metadata
- Download URL: epic_elios_client-1.0.4.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80baf0ed0f3892e14d450960aa2827fa23ab8faf7f5107612e60ffafb89bb38b
|
|
| MD5 |
0d6b4956d69651cf5e1ddf8c32ee2bd5
|
|
| BLAKE2b-256 |
3e411f4ad2476b2664ebcc3791a524095fcebd43f0c511a7c2d5ed9b2841ef57
|
Provenance
The following attestation bundles were made for epic_elios_client-1.0.4.tar.gz:
Publisher:
publish-client.yml on Elios-Lab/epic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
epic_elios_client-1.0.4.tar.gz -
Subject digest:
80baf0ed0f3892e14d450960aa2827fa23ab8faf7f5107612e60ffafb89bb38b - Sigstore transparency entry: 1754885710
- Sigstore integration time:
-
Permalink:
Elios-Lab/epic@524a4a2923c36b4441e905cefad6f1c63100dfa0 -
Branch / Tag:
refs/tags/client-v1.0.4 - Owner: https://github.com/Elios-Lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-client.yml@524a4a2923c36b4441e905cefad6f1c63100dfa0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file epic_elios_client-1.0.4-py3-none-any.whl.
File metadata
- Download URL: epic_elios_client-1.0.4-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
761f13787886b047f75665e049186831bc4d9d3fd17a3722a244586af912f403
|
|
| MD5 |
2fe4ad89c68bcf4bc92b07d7d48b0914
|
|
| BLAKE2b-256 |
be66ee3dfa65d97dc996d690211630a23d2833b44de73916cd35015a8d697a31
|
Provenance
The following attestation bundles were made for epic_elios_client-1.0.4-py3-none-any.whl:
Publisher:
publish-client.yml on Elios-Lab/epic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
epic_elios_client-1.0.4-py3-none-any.whl -
Subject digest:
761f13787886b047f75665e049186831bc4d9d3fd17a3722a244586af912f403 - Sigstore transparency entry: 1754885712
- Sigstore integration time:
-
Permalink:
Elios-Lab/epic@524a4a2923c36b4441e905cefad6f1c63100dfa0 -
Branch / Tag:
refs/tags/client-v1.0.4 - Owner: https://github.com/Elios-Lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-client.yml@524a4a2923c36b4441e905cefad6f1c63100dfa0 -
Trigger Event:
push
-
Statement type: