huggingface.co/datasets/SIMFORGE-AI/simlog-25k.
Route recordings contain trajectory data, not original camera or sensor video. Renders are generated by SimForge. Public SIMLOG files omit source dataset names, log IDs and collection provenance.
With the CLI
--dry-run prints how many scenarios and files the pull has and their size, and downloads nothing. Narrow the pull with --filter 'grade:A tag:cut-in' (the library’s filters), --q <text>, --source-log <recording> or --ids a,b,c. --include chooses what comes with each scenario: renders[:training|showcase|schematic], labels, gt, recordings, or scenarios for nothing else (default renders:training). --passes rgb,depth keeps only some render modalities. --jobs sets the parallel downloads (default 8).
Every file is checked against its sha256 before it is put in place. Run the same command again to resume: it fetches only what is missing or changed. A file SimForge is still preparing (an OpenSCENARIO export, ground truth) is waited for, up to --wait-pending seconds (default 1800); if some are still not ready, the pull lists them and you run it again later. When everything is in place the CLI writes manifest.json, scenarios.jsonl and SHA256SUMS; simforge datasets verify DIR checks the folder against them, offline.
The folder:
manifest.json under excluded, never dropped silently.
With an agent
Give your coding agent the setup and the task, for example:A link list, without the CLI
grep '^http' links.txt | wget -x -nH --cut-dirs=5 -i - -P ./data. Files still being prepared are listed as comments at the end of the list; download the list again later for them. A link list has no manifest.json: use the CLI when you want the folder verified.
From CI, with an API key
Create a key withdatasets:read and artifacts:read (simforge keys create --name ci-pull --scope datasets:read --scope artifacts:read, which needs a login with keys:admin, or the API keys page in workspace settings) and set it as SIMFORGE_API_KEY; the CLI and the API then need no login:
GET /api/v1/datasets/<id>/files pages the selection’s files (signed links valid for an hour; ask for the page again for fresh ones), dryRun=true counts them, and POST takes the same fields as a JSON body for long id lists. See the API reference.