Docs: Overview | Setup | Hardware | Data/assets | Experiments | Results | Adding benchmarks | Model providers | Safety
Experiment configs are ordinary YAML files. The paper-aligned configs live under:
configs/benchmarks/<task>/<hardware>[/<experiment>]/<variant>.yaml
<variant> is one of:
score: minimal feedback, usually pass/fail plus scalar score.documentation: score feedback plus curated documentation in the sandbox.hil: detailed hardware-in-the-loop feedback after each iteration.
Run this first on any new machine:
CLI_LLM_SCRIPT=examples/cli_smoke_gradient_flow.jsonl \
embedded-arena run configs/smoke/gradient-flow.yaml \
--llm cli/scripted \
--iterations 1 \
--output-dir outputs/smoke \
--overwriteembedded-arena run CONFIG.yaml \
--llm provider/model \
--reasoning high \
--iterations 10 \
--trials 1 \
--output-dir outputs/my-run \
--overwriteUseful flags:
--resume: append additional trials to an existing output directory.--snapshot-sandbox: copy sandbox source files after each iteration for forensic debugging. This can use a lot of disk.task.trials 2: override config values using dotted keys after the config path.
Example override:
embedded-arena run configs/benchmarks/power/max78000/peak-current/hil.yaml \
task.trials 2 \
--llm openai/gpt-5.4 \
--output-dir outputs/max78000-peak-hil-gpt \
--overwriteMAX78000 YOLO/COCO compression:
embedded-arena run configs/benchmarks/compression/max78000/hil.yaml \
--llm openai/gpt-5.4 \
--reasoning high \
--output-dir outputs/compression-max78000-hil-gpt \
--overwriteSTM32N6 speech-to-IPA compression:
embedded-arena run configs/benchmarks/compression/stm32n6/hil.yaml \
--llm gemini/gemini-3.1-pro \
--reasoning high \
--output-dir outputs/compression-stm32n6-hil-gemini \
--overwriteBefore running STM32N6, install ST Edge AI and download Hugging Face assets; see Setup and Data/assets.
Peak current:
embedded-arena run configs/benchmarks/power/max78000/peak-current/hil.yaml \
--llm openai/gpt-5.4 \
--reasoning high \
--output-dir outputs/max78000-peak-current-hil-gpt \
--overwriteTotal energy:
embedded-arena run configs/benchmarks/power/max78000/total-energy/hil.yaml \
--llm openai/gpt-5.4 \
--reasoning high \
--output-dir outputs/max78000-total-energy-hil-gpt \
--overwriteThese require the MAX78000 hardware setup, PPK2, debugger, and UART described in Hardware.
Room-temperature peak temperature:
embedded-arena run configs/benchmarks/thermal/esp32/room/hil.yaml \
--llm gemini/gemini-3.1-pro \
--reasoning high \
--output-dir outputs/esp32-room-hil-gemini \
--overwriteContact-heated peak temperature:
embedded-arena run configs/benchmarks/thermal/esp32/contact/hil.yaml \
--llm gemini/gemini-3.1-pro \
--reasoning high \
--output-dir outputs/esp32-contact-hil-gemini \
--overwriteThese require ESP-IDF, the target ESP32-S3, and the MLX90640 bridge described in Hardware.
For a new benchmark contribution, run at least:
scripts/run_required_baselines.sh configs/benchmarks/<task>/<hardware>[/<experiment>]/<variant>.yamlThe script is a convenience wrapper. Keep the model list current with the latest generally available OpenAI model, the latest generally available Gemini model, and one additional model of your choice. Record exact model IDs and dates in the PR or benchmark README.
The benchmark separates static knowledge from physical feedback:
- Score (
score.yaml): the agent gets the task, seed files, and scalar/pass-fail feedback. - Documentation (
documentation.yaml): the agent also receives curated hardware/toolchain documentation. - HIL (
hil.yaml): the agent receives detailed feedback after each attempt, such as compiler diagnostics, resource usage, UART logs, current traces, thermal statistics, and feedback images.
This separation is important for papers and leaderboard-style comparisons. Do not silently add hardware feedback to a score-only or documentation-only config.