[genera.py](genera.py) è lo script unico (PEP 723, `uv run genera.py config.toml --seed 42`, scrive in `output/`). [grafico.py](grafico.py) disegna un CSV di output (script separato, dipende da matplotlib; `genera.py` resta con solo numpy); `genera.py` implementa [docs/SPEC.md](docs/SPEC.md), unica fonte di verità su output, modello, CLI, errori e controlli di accettazione. Leggila per intero prima di scrivere codice. Documentazione, commenti e messaggi di errore sono in italiano.
- [config.toml](config.toml): esempio e unica fonte dei valori numerici. Le unità sono nei suffissi delle chiavi (`_s`, `_ms`, `_c`, `_hz`).
- [dati.csv](dati.csv): registrazione reale del sensore IR (`temp_amb IR [C]`, `temp_obj IR [C]`, più roll/jolt). Riferimento per ricalibrare `sigma_c`, `wander_*`, `amb_*`; non è un output del generatore e ha formato diverso.
## Vincoli facili da perdere
-`ΔT` = T − ambiente, calcolato **dopo** rumore e quantizzazione di entrambi i canali, mai dalla T vera.
- Nessun valore numerico nello script: chiave mancante ⇒ exit 1.
- Un solo `numpy.random.Generator` seminato da `--seed`, così stesso seed + stessa config ⇒ file identico.
- Verifica l'implementazione con i controlli di §5 di SPEC.md sulla config d'esempio.