Benchmarks

Measured, with the conditions attached.

On-chip timings are from an ESP32-S3 (QFN56 rev0.2), 240 MHz, 16 MB flash, 8 MB PSRAM. Laptop timings name the runtime.

Time per decision on an ESP32-S3

Measured on the board: ESP32-S3 (QFN56 rev0.2), 240 MHz, 16 MB flash, 8 MB PSRAM.
ModelSizeTime per decision
sparrow-pico-rover-v1.1~2 KB9.3 µs
sparrow-nano-general-v1.12.2 MB3.8 ms
sparrow-nano-robot-v1.21.11 MB3.5 ms

Time per decision on an ESP32-S3

Log scale: pico is in µs, nano in ms. Every bar carries its unit.

Same data as the table.

First build to today

On the ESP32-S3: int8 SIMD on the vector unit (ESP-NN kernel), weights in PSRAM / internal RAM.

Time per decision on the ESP32-S3: sparrow-pico 42.9 µs to 9.3 µs; sparrow-nano-general 9.6 ms to 3.8 ms; sparrow-nano-robot 73.5 ms to 3.5 ms.

First on-chip build vs today, same board. Today's nano models also use a smaller hidden layer. Each row has its own scale. Board: ESP32-S3 (QFN56 rev0.2), 240 MHz, 16 MB flash, 8 MB PSRAM.

Show as table
ModelTime per decision on ESP32-S3, first build to today
sparrow-pico-rover-v1.142.9 µs → 9.3 µs
sparrow-nano-general-v1.19.6 ms → 3.8 ms
sparrow-nano-robot-v1.273.5 ms → 3.5 ms

Speed on a laptop

One CPU core on a laptop, per question. The runtime (C or numpy) is in brackets.
ModelTime per question
sparrow-pico-rover-v1.10.18 µs
sparrow-nano-general-v1.10.06 ms (C)
sparrow-nano-robot-v1.20.08 ms (C)
sparrow-micro-general-v1.10.22 ms (C)
sparrow-tiny-general-v1.023 ms (numpy)
sparrow-small-general-v1.064 ms (numpy)

Time per question on a laptop

Log scale. Values span 0.18 µs to 64 ms.

Against the public 2B

Navigation from sensor numbers

8 / 10

sparrow-nano-robot-v1.2 (1.11 MB)

3 / 10

public 2B Strands Decider

navigation calls from sensor numbers right with a 1.11 MB nano-robot; the public 2-billion-parameter decider gets 3 / 10.

Robot decisions (RobotBench)

36/55

sparrow-nano-robot-v1.2

40/55

public 2B Strands Decider

The 2B is broader on skills; the 1.11 MB nano is better at navigation from sensor numbers. Details in the RobotBench table below.

pico vs its spec's rules

94.0%

sparrow-pico-rover-v1.1

94.2%

its 2B teacher

94.0% vs the spec's rules (its 2B teacher: 94.2%).

General text

sparrow-nano-general-v1.1: JevBench 122/231, MASSIVE intent 0.588.

Yes/no judgement on JevBench is near chance at every tier.

RobotBench

Robot decisions over sensor readings and commands. Released model IDs only, plus the two Strands Decider references.

Right answers out of 55

Linear scale, 0 to 55.

RobotBench v0: 55 robot decisions written by hand, separately from the robot training generator. Source: bench/RESULTS.md. Local runs.
ModelRightskillnavcheckrecoverurgency
Strands Decider 4B (teacher)46/5514/156/1010/1210/106/8
Strands Decider 2B (public)40/5515/153/1010/1210/102/8
sparrow-nano-robot-v1.236/5510/158/1010/126/102/8
sparrow-nano-general-v1.132/5510/154/109/127/102/8
sparrow-micro-general-v1.130/5510/155/107/126/102/8
sparrow-small-general-v1.024/557/152/107/125/103/8
sparrow-tiny-general-v1.020/557/152/106/123/102/8

55 items: each item moves the score by one. Small differences between models are within run-to-run noise.

MASSIVE routing

This is where Sparrow is weakest: open-ended language it never trained on.

Domain routing accuracy

Linear scale, 0 to 1.

Amazon MASSIVE 1.1 en-US test, 600 utterances, held out of training. Evaluation only (CC BY 4.0). Source: bench/RESULTS.md. Local runs.
ModelDomain (18 options)Intent within domain
Strands Decider 2B (public)0.860.871
sparrow-small-general-v1.00.6730.599
sparrow-micro-general-v1.10.6350.542
sparrow-nano-robot-v1.20.5180.522
sparrow-nano-general-v1.10.50.588
sparrow-tiny-general-v1.00.3680.592

JevBench

JevBench public tasks, local v1.5 proxy: not leaderboard scores. Evaluation only (MIT). Source: bench/RESULTS.md. Local runs.
ModelRight (of 231)
sparrow-tiny-general-v1.0123/231
sparrow-nano-general-v1.1122/231
sparrow-small-general-v1.0122/231
sparrow-micro-general-v1.1117/231
sparrow-nano-robot-v1.2115/231

Read with care. These are local proxy scores on the public tasks. Yes/no judgement on JevBench is near chance at every tier, so use a full decider or an LLM for yes/no judgement calls.

Same answers on the chip as on the host

On the chip

The C runtime matches the Python runtime to within 1e-5 on the host; on the ESP32-S3, int8 builds agree with the host on 150-155 of 155 decisions.

int8 builds on the board, 155 decisions each. Source: bench/results/esp32-* in the repository.
ModelSame answer as host
sparrow-nano-general-v1.1152/155
sparrow-nano-robot-v1.2150/155
check parity on your machine
python c/tests/parity.py MODEL
C runtime vs numpy on the host, one core. Source: bench/RESULTS.md. Local runs.
ModelCasesArgmax agreeMax prob diff
sparrow-nano-robot-v1.2286286/2862e-06
sparrow-nano-general-v1.1286286/2861e-06
sparrow-micro-general-v1.1586586/5863e-06

Methodology

  • RobotBench v0: 55 robot decisions written by hand, separately from the robot training generator.
  • MASSIVE: Amazon MASSIVE 1.1 en-US test, 600 utterances, never trained on. Evaluation only (CC BY 4.0).
  • JevBench: public tasks, local v1.5 proxy, not leaderboard scores. Evaluation only (MIT).
  • Laptop timings: local runs, one CPU core, per question; the runtime (C or numpy) is named next to each value.
  • ESP32-S3 timings: measured on the board: ESP32-S3 (QFN56 rev0.2), 240 MHz, 16 MB flash, 8 MB PSRAM.
  • Tables are generated by bench/aggregate.py from bench/results/. Model IDs are shown exactly as run.

bench/RESULTS.mdResearch report

Where it falls short

Open-ended language it never trained on: well behind the 2B (MASSIVE domain routing 0.37-0.67 across released Sparrow models vs 0.86).

Yes/no judgement on JevBench is near chance at every tier.

pico answers only the questions it was compiled for.

RobotBench was written by hand, separately from the robot training generator. MASSIVE was never trained on, and it is where the gap to the 2B shows.

Run it on your hardware and tell us what you measure.

Share your results

Evaluation data: Amazon MASSIVE (CC BY 4.0, evaluation only) · JevBench (MIT, evaluation only).