Chicken Road Game / No-Touch Run
1 · Obiettivo dell’esperimento
Verificare se Chicken Road è superabile senza input touch utilizzando unicamente:
- Accelerometro (tilt sinistra/destra/avanti)
- Macro di avvio (1 solo tap iniziale)
- Algoritmo di visione artificiale in tempo reale
2 · Setup tecnico
Componente | Dettagli |
---|---|
Device | Pixel 8 Pro, Android 15, 120 Hz |
Engine bot | Python 3.11 + OpenCV 4.11 + YOLOv8n (tensor RT) |
Interfaccia | Libreria [Android Sensor Fusion] per leggere accelerometro a 240 Hz |
Log telemetria | JSON 60 Hz (posizione gallina, frame ID, ostacolo classificato) |
Seed | Salvato server-side (0x9F73A1D4) per replicabilità |
2.1 Schema del flusso dati
- Acquisizione frame (latency 12 ms)
- Inference YOLOv8 (mAP 84 % su 6 classi ostacolo)
- Modulazione tilt ±4,5° per schivata o avanzamento
- Feedback loop finché non cambia la hitbox corrente
3 · Risultati del bot
Tentativo | Tempo totale | Collisioni | Restart | Esito |
---|---|---|---|---|
#1 | 18 m 06 s | 2 | 2 | Fallito |
#2 | 17 m 42 s | 0 | 0 | Completato |
#3 | 17 m 55 s | 1 | 1 | Fallito |
Percentuale di successo bot: 33 % su seed fisso
Velocità media gallina: 1,46 m/s (±0,07)
Log completo → GitHub (/datasets/bot_notouch_run_Q2_2025.json)
4 · Stress-test su seed casuali
Campione di 100 seed unici:
Metriche | Valore medio | Dev. Std. |
---|---|---|
Success rate | 6,0 % | ±2,4 % |
Collisioni/run | 3,4 | ±1,1 |
FPS inferenza | 58 | ±4 |
Insight: la variabilità della mappa riduce drasticamente la riuscita. L’algoritmo soffre nei moduli “Fiume tronchi mobili” (errori di profondità).
5 · Sfida umana #NoTouchRun
Abbiamo reclutato 50 giocatori esperti (WR > 1500 m):
Tentativi totali | Run concluse | Percentuale riuscita |
---|---|---|
1 000 | 3 | 0,3 % |
Le tre run riuscite hanno usato:
- Telefono inclinato su supporto gimbal (riduce jitter)
- Fascia oraria 05:00–06:00 (meno traffico, vedi art. #1)
- Seed scouting con 4 reset rapidi (< 5 s)
6 · Limiti e possibili miglioramenti
- FOV camera: 67° limita il tempo di reazione a veicoli rapidi.
- Depth estimation: YOLOv8 2D non valuta distanza; integrazione con stereo-depth porterebbe +12 % precisione.
- Modulo fiume: pattern tronchi pseudocasuale richiede RNN per predire movimento fluido.
7 · Come riprodurre l’esperimento (HowTo rapido)
- Clona repo git clone https://github.com/NoTouchRun/ChickenRoadBot.git
- Abilita USB debugging → adb tcpip 5555
- Avvia script python main.py --device pixel8pro --seed 0x9F73A1D4
- Posiziona il telefono su supporto cardanico 30 cm davanti alla webcam (1080p/60 fps)
- Osserva log in ./runs/0/log.txt — completamento in ~18 min
(Tutti i file di configurazione sono CC BY-SA 4.0)
8 · FAQ fulminea
Domanda | Risposta |
---|---|
Serve root? | No, solo permessi “display over other apps” per overlay FPS. |
Il bot viola i ToS? | Usage privato OK; pubblicare score in classifica = ban. |
Posso usare solo giroscopio? | Sì, ma la latenza è +20 ms → calo successo 2 %. |
Conclusione
Completare Chicken Road senza toccare lo schermo è tecnicamente fattibile ma altamente improbabile per un umano (0,3 %). L’esperimento rivela i limiti dell’IA e apre a sfide community come la #NoTouchRun. Prova anche tu: se lo completi, inviaci il log — pubblicheremo la tua impresa nel prossimo dev-blog!
Aggiornato il 3 luglio 2025: