Un jeu 3D en un seul prompt : Willison lance Raccoon Heist avec Claude Sonnet 4
Simon Willison a utilisé Claude Sonnet 4 dans Claude Code pour le web afin de construire un jeu 3D complet dans le navigateur en partant d’un seul prompt. L’agent a choisi Three.js de lui-même, a généré les textures en appelant une API OpenAI, a fait des commits continus sur une branche GitHub et a livré un résultat jouable sur GitHub Pages. Tout depuis le téléphone.
Pour qui utilise ou construit des agents, l’expérience montre un pattern qui se consolide. Willison a donné à Sonnet 4 trois choses : un objectif clair, l’accès à un outil externe (la clé API OpenAI pour les textures) et un mécanisme de feedback (les commits continus sur GitHub Pages pour voir le travail avancer). Le reste, l’agent l’a fait, en ajoutant même un chien gardien comme escalade de difficulté et en écrivant des tests automatiques pour le vérifier.
Après avoir réécrit sqlite-utils avec Claude Sonnet en juillet, Willison pousse le même modèle vers le one-shotting créatif : le prompt initial est la seule intervention humaine, et l’agent fonctionne seul jusqu’à la livraison. La différence entre une session qui demande des corrections continues et une qui se termine d’elle-même réside dans ce que tu lui donnes au départ.
Dans le détail
L’expérience de Willison teste une frontière précise : jusqu’où un agent peut-il aller avec un seul prompt et aucune interaction ultérieure ?
Le point de départ est un tweet de 2022 où Willison avait demandé à GPT-3 de décrire un jeu sur des rats voleurs, accompagné d’images générées avec DALL-E. Quatre ans plus tard, il a donné ces mêmes images à Claude Sonnet 4 avec un prompt écrit sur le téléphone : construis ce jeu 3D, pour le navigateur, fonctionne tout seul, ne me pose pas de questions de design, fais des commits continus pour que je voie le travail avancer.
Le workflow autour de Claude Code pour le web est la partie la plus reproductible. Claude Code fonctionne sur une branche du repo, et Willison a configuré GitHub Pages pour faire un déploiement automatique à chaque push. Il voit ainsi le travail de l’agent se mettre à jour en temps réel, sans avoir à interagir avec lui. C’est un pattern qui résout un problème opérationnel concret : Claude Code pour le web n’a pas de preview intégré pendant que l’agent fonctionne, et GitHub Pages contourne cela.
La décision de donner à Sonnet 4 une clé API OpenAI pour générer les textures est le détail qui fait la différence. Un agent qui doit générer des images pour un jeu 3D a deux options : demander à l’utilisateur de les fournir, ou les générer lui-même. Willison a choisi la seconde, et Sonnet 4 s’est avéré doué pour écrire des prompts pour le générateur d’images (gpt-image-2). Il a même écrit un script Python pour les générer et les a vérifiées une par une.
Le résultat n’est pas parfait : Willison lui-même note que certaines textures n’ont pas été appliquées correctement. Mais le jeu est jouable, il a un écran titre, des contrôles tactiles pour le mobile, et des mécaniques que l’agent a inventées lui-même, comme le chien gardien qui te suit à l’odorat au lieu de la vue. Il a aussi écrit un fichier de notes à chaque commit, documentant ses décisions.
Qu’est-ce que cela signifie pour qui travaille avec des agents ? Le one-shotting devient viable sur des tâches qui il y a six mois demandaient des dizaines de tours de correction. Mais le prompt de Willison est loin d’être court : il spécifie le format (navigateur, 3D, adapté au mobile), la contrainte (fonctionne seul), la règle de livraison (commits continus) et l’accès aux outils (clé API OpenAI). L’autonomie de l’agent naît d’un brief précis, pas d’une phrase vague.
La limite est tout aussi claire : un jeu 3D avec Three.js est une tâche qu’un modèle puissant peut gérer parce que le domaine est connu et les bibliothèques sont standard. Sur des tâches moins définies ou sur du code qui doit s’intégrer avec des systèmes existants, le one-shotting fonctionne beaucoup moins bien. Et la clé API externe, qui donne à l’agent la capacité d’appeler des services payants, doit être gérée avec attention : un agent qui génère des images à répétition peut dépenser le crédit rapidement.