Skip to content
Euler Docs

Your first dataset in ten minutes

This path takes one recording from upload to a sealed, certified export without help from anyone at Euler. Each step names the screen in the app and the API call behind it, so the same path works from a script. Nothing spends money until you confirm the run in step 5.

export EULER_BASE_URL="https://api.euler.sudotank.com"
export EULER_TOKEN="<your API token>"   # Tokens, CLI, API in the app
export PROJECT="kitchen-pilot"

1. Create a workspace and a project

In Projects, create a workspace and pick its use case, for example Egocentric annotation or Robotic manipulation. The use case sets the default layers, the training target and the words the screens use (clips, episodes, drives, flights). Then create a project in it.

curl -fsS -H "Authorization: Bearer $EULER_TOKEN" "$EULER_BASE_URL/v1/use-cases"
curl -fsS -X POST -H "Authorization: Bearer $EULER_TOKEN" -H "Content-Type: application/json" \
  "$EULER_BASE_URL/v1/workspaces" \
  -d '{"id": "home-tasks", "name": "Home tasks", "use_case": "egocentric-annotation"}'
curl -fsS -X POST -H "Authorization: Bearer $EULER_TOKEN" -H "Content-Type: application/json" \
  "$EULER_BASE_URL/v1/projects" \
  -d '{"id": "kitchen-pilot", "name": "Kitchen pilot", "workspace_id": "home-tasks"}'

2. Connect a source

In Sources, drag in a folder or file (large files upload in resumable chunks), or register a bucket URI and press Test connection. The format is detected from the files. See Connecting sources.

from euler_sdk import EulerClient
 
client = EulerClient("https://api.euler.sudotank.com", api_key="<your API token>")
client.upload_file("kitchen-pilot", "session-01.mp4", source_id="session-01")

3. Decide how recordings become episodes

A head-worn camera often records a whole shift in one file. Open How long recordings become episodes in Sources and switch the split on to cut long recordings at idle stretches and scene changes. Leave it off and each recording is one episode.

curl -fsS -X PUT -H "Authorization: Bearer $EULER_TOKEN" -H "Content-Type: application/json" \
  "$EULER_BASE_URL/v1/projects/$PROJECT/ingest/settings" \
  -d '{"episode_split": {"enabled": true, "min_episode_s": 4, "max_episode_s": 120}}'

4. Choose the pipeline settings

In Pipeline settings, pick a preset that fits your data, then set each layer to run in the pipeline, on demand later, or off. Every layer tile says what it produces and where the review screen shows it, and the cost preview prices each layer on the hardware it runs on before you spend. The Readiness metrics tab holds the checks; the Export and delivery tab holds the delivery policy. See Pipeline settings.

curl -fsS -X PUT -H "Authorization: Bearer $EULER_TOKEN" -H "Content-Type: application/json" \
  "$EULER_BASE_URL/v1/projects/$PROJECT/annotation/settings" -d '{"preset": "egocentric-full"}'

5. Run

In Sources, press Start the run. A confirmation states what the run will produce and what it will spend before anything starts. Layers that run in the background report progress in Pipeline run and on the review screen, and can be cancelled. See Running the pipeline.

6. Review

Open the Review queue. Each episode plays as one clean clip with poses, object outlines and tracks painted on the frame. The 3D tab shows the scene, the camera path and the hands; the Depth tab shows depth in metres; the camera’s sensor streams run under the clip on the same playhead; the readiness receipt shows every check against its threshold and the moments that need a look. Accept or reject what was routed to you. See Review.

7. Read the certificate

In Datasets & export, the Readiness certificate tab gives the project’s verdict per rule, with each measured value and the threshold it was held to. An episode the certificate puts in its review band is already in your Needs review list. See Readiness and certificate.

curl -fsS -H "Authorization: Bearer $EULER_TOKEN" \
  "$EULER_BASE_URL/v1/projects/$PROJECT/certification/report"

8. Export

Still in Datasets & export, seal a version in the format your trainer reads and download it. Every export carries a README written from its own files, a readiness receipt per episode and the certificate. See Exports.

curl -fsS -X POST -H "Authorization: Bearer $EULER_TOKEN" -H "Content-Type: application/json" \
  "$EULER_BASE_URL/v1/projects/$PROJECT/reexport" -d '{"format": "annotation_bundle"}'

If a step here needs a person at Euler, tell us: that is a bug. The gaps we know about are listed in Limits and known gaps.