Un gioco 3D in un solo prompt: Willison one-shotta Raccoon Heist con Claude Fable 5
Simon Willison ha usato Claude Fable 5 in Claude Code per web per costruire un gioco 3D completo nel browser partendo da un singolo prompt. L’agente ha scelto Three.js da solo, ha generato le texture chiamando un’API di OpenAI, ha fatto commit continui su un branch GitHub e ha consegnato un risultato giocabile su GitHub Pages. Tutto dal telefono.
Per chi usa o costruisce agenti, l’esperimento mostra un pattern che si sta consolidando. Willison ha dato a Fable 5 tre cose: un obiettivo chiaro, l’accesso a uno strumento esterno (la chiave API di OpenAI per le texture) e un meccanismo di feedback (i commit continui su GitHub Pages per vedere il lavoro avanzare). Il resto lo ha fatto l’agente, aggiungendo persino un cane guardiano come escalation di difficoltà e scrivendo test automatici per verificarlo.
Dopo aver riscritto sqlite-utils con Claude Fable a luglio, Willison spinge lo stesso modello verso il one-shotting creativo: il prompt iniziale è l’unico intervento umano, e l’agente lavora da solo fino alla consegna. La differenza fra una sessione che richiede continue correzioni e una che si chiude da sola sta in cosa le dai all’inizio.
Nel dettaglio
L’esperimento di Willison testa un confine preciso: fin dove può arrivare un agente con un solo prompt e nessuna interazione successiva?
Il punto di partenza è un tweet del 2022 in cui Willison aveva chiesto a GPT-3 di descrivere un gioco sui ratti ladri, accompagnato da immagini generate con DALL-E. Quattro anni dopo, ha dato quelle stesse immagini a Claude Fable 5 insieme a un prompt scritto sul telefono: costruisci questo gioco 3D, per il browser, lavora da solo, non chiedermi decisioni di design, fai commit continui così posso vedere il lavoro.
Il workflow attorno a Claude Code per web è la parte più replicabile. Claude Code lavora su un branch del repo, e Willison ha configurato GitHub Pages per fare il deploy automatico a ogni push. Così vede il lavoro dell’agente aggiornarsi in tempo reale, senza dover interagire con lui. È un pattern che risolve un problema operativo concreto: Claude Code per web non ha un preview integrato mentre l’agente lavora, e GitHub Pages lo bypassa.
La decisione di dare a Fable 5 una chiave API di OpenAI per generare le texture è il dettaglio che fa la differenza. Un agente che deve generare immagini per un gioco 3D ha due opzioni: chiedere all’utente di fornirle, o generarle da solo. Willison ha scelto la seconda, e Fable 5 si è rivelato bravo a scrivere prompt per il generatore di immagini (gpt-image-2). Ha persino scritto uno script Python per generarle e le ha controllate una per una.
Il risultato non è perfetto: Willison stesso nota che alcune texture non sono state applicate correttamente. Ma il gioco è giocabile, ha un title screen, controlli touch per il mobile, e meccaniche che l’agente ha inventato da solo, come il cane guardiano che ti segue con l’olfatto invece che con la vista. Ha anche scritto un file di note a ogni commit, documentando le proprie decisioni.
Cosa significa per chi lavora con gli agenti? Il one-shotting sta diventando praticabile su compiti che sei mesi fa richiedevano decine di giri di correzione. Ma il prompt di Willison è tutt’altro che breve: specifica il formato (browser, 3D, mobile-friendly), il vincolo (lavora da solo), la regola di consegna (commit continui) e l’accesso agli strumenti (API key OpenAI). L’autonomia dell’agente nasce da un brief preciso, non da una frase vaga.
Il limite è altrettanto chiaro: un gioco 3D con Three.js è un compito che un modello forte può gestire perché il dominio è noto e le librerie sono standard. Su compiti meno definiti o su codice che deve integrarsi con sistemi esistenti, il one-shotting regge molto meno. E la chiave API esterna, che dà all’agente la capacità di chiamare servizi a pagamento, va gestita con attenzione: un agente che genera immagini a ripetizione può bruciare credito in fretta.