- Une tentative a été lancée pour reproduire le site web officiel de Space Jam de 1996 de Warner Bros. avec le modèle d’IA Claude.
- Bien qu’on ait fourni à Claude des captures d’écran et les ressources d’images d’origine, le HTML généré n’avait pas une mise en page correspondant à l’original.
- Des outils supplémentaires ont été ajoutés, notamment l’estimation de coordonnées, une superposition de grille et des outils de comparaison pixel par pixel, mais Claude n’a toujours pas réussi à calculer les positions avec précision.
- Claude a qualifié ses résultats de « parfaits », mais en réalité ses erreurs se sont accumulées et il a montré une tendance à faire preuve d’excès de confiance en ses propres sorties.
- Cette expérience met en lumière les limites de précision visuelle de l’IA et ses erreurs d’auto-évaluation, tout en montrant que la simplicité d’un ancien design web peut cacher une complexité difficile à reproduire.
Aperçu du site web Space Jam 1996
- Le site officiel Space Jam créé par Warner Bros. en 1996 pour promouvoir le film Space Jam était composé d’une page HTML unique avec un arrière-plan GIF.
- Couleurs simples, structure basée sur des tableaux, taille inférieure à 200 Ko.
- Il est toujours maintenu à l’adresse spacejam.com/1996.
- L’expérimentateur a voulu vérifier si Claude pouvait reproduire ce site uniquement à partir de captures d’écran.
Préparation de l’expérience
- Matériel fourni à Claude
- Captures d’écran complètes du site
- Répertoire des ressources d’images d’origine
- Mise en place d’un système de journalisation du trafic API via un proxy pour suivre le fonctionnement interne de Claude
- Tous les prompts, réponses et appels d’outils (
Read,Write, commandes Bash, etc.) ont été enregistrés - Un fichier
traffic.loga été généré à chaque tentative
- Tous les prompts, réponses et appels d’outils (
Partie 1 : Claude le réaliste
- Lors de la première tentative, Claude a reproduit approximativement la disposition des planètes et la position des boutons, mais la forme orbitale différait de l’original.
- L’original utilise un arrangement elliptique, tandis que Claude a opté pour une forme diamant symétrique.
- Claude a évalué le résultat comme « parfait » et a affirmé que son analyse et son agencement étaient exacts.
- On a ensuite demandé à Claude d’écrire explicitement les étapes de son raisonnement, mais
- les chiffres mentionnés dans l’analyse n’ont pas été pris en compte lors de la génération du HTML.
- Face aux questions au pixel près, Claude a répondu que
- « il ne peut pas mesurer de coordonnées exactes » et « il ne peut faire qu’une estimation visuelle »
- Son niveau de confiance pour une précision dans les 5 pixels était de 15/100.
- Claude a admis ne pas avoir de capacité de mesure pixel précise, puis l’expérimentateur a tenté d’étendre les outils disponibles.
Partie 2 : Claude le narrateur peu fiable
- Pour compenser les limites de mesure de Claude, on a ajouté une superposition de grille, des étiquettes de coordonnées, des outils de comparaison de couleurs et un viewer de comparaison de captures d’écran.
- Claude utilise la grille « comme un élément décoratif » et continue d’interpréter les coordonnées incorrectement.
- Exemple : il a proposé des valeurs comme centre (961,489), Planet B-Ball (850,165), qui ne correspondaient pas aux positions réelles.
- Au fil des itérations, Claude a prétendu améliorer progressivement le résultat, mais les erreurs se sont en réalité accumulées.
- 1re itération (grille 50 px) : léger déplacement
- 2e itération (grille 25 px) : décalage de toute l’orbite vers l’intérieur de 20 px
- 3e itération (grille 5 px) : ajustements fins en série
- 4e itération : déclaration de « réglage précis terminé »
- En pratique, le rayon de l’orbite des planètes manque de 150 à 200 px, la composition reste globalement comprimée.
- Claude a évalué à plusieurs reprises son travail comme « presque parfait », mais a mal jugé en se basant sur ses propres résultats.
- L’expérimentateur a cité le papier d’Anthropic “Language Models (Mostly) Know What They Know”.
- Il explique un biais de surconfiance où le modèle confond le texte qu’il a lui-même généré avec une entrée externe.
- Ce comportement correspond à ce qu’on observe lorsque Claude considère son propre HTML comme la « bonne réponse », ce qui déforme les corrections ultérieures.
Partie 3 : Claude l’aveugle
- Pour analyser les limites visuelles de Claude, on a posé l’hypothèse d’une contrainte structurelle du vision encoder.
- Les images sont tokenisées par blocs de 16×16 pixels, ce qui entraîne une perte d’information géométrique fine.
- Claude peut reconnaître des notions sémantiques comme « planète » ou « relation de position », mais pas des coordonnées précises.
- En se référant au papier “An Image is Worth 16x16 Words”,
- on a inféré que Claude compresse les détails pixel en blocs de patchs de la même manière.
- Pour vérifier cela, une capture d’écran agrandie 2x a été fournie, mais
- Claude n’a pas réussi à conserver les proportions, sans tenir compte du facteur d’agrandissement.
- En conclusion, Claude affiche une compréhension conceptuelle correcte mais une capacité insuffisante de reproduction géométrique.
- L’explication « cette planète est au-dessus de celle-ci » peut être juste, mais la mise en page HTML reste en décalage.
Conclusion et défis non résolus
- Claude reconnaît la structure visuelle du site Space Jam, mais échoue à en faire une reproduction précise.
- Les causes de l’échec sont :
- impossibilité de mesurer au pixel près
- tendance à faire preuve d’excès de confiance dans ses propres sorties
- limites de résolution de l’encodage visuel
- Pistes proposées pour de futures tentatives
- Diviser l’écran en quatre quadrants pour reproduire puis fusionner chaque partie séparément.
- Expérimenter un prompt engineering centré sur le raisonnement spatial.
- Renforcer la capacité de zoom et l’exploitation des captures d’écran.
- Cette expérience illustre à la fois les limites de précision visuelle de l’IA et la complexité de la première génération de design web.
- La page web apparemment simple de 1996 demeure pour l’IA actuelle un référentiel de benchmark toujours difficile à reproduire.
1 commentaires
Avis Hacker News
En tant que personne qui créait elle-même des sites similaires à la fin des années 90, j’ai essayé de donner le site de Space Jam à Opus 4.5
L’auteur du texte original parlait d’une « page HTML unique construite avec du positionnement absolu », mais en réalité c’était une mise en page basée sur des tableaux. C’était inévitable à l’époque, avant l’arrivée de CSS
Le résultat de ma tentative de recréation avec des tableaux se trouve dans cette capture d’écran
Comme la blague continuait dans les commentaires, je l’ai laissée telle quelle pour le contexte
Les LLM comme Claude restent faibles sur les détails d’implémentation de layout
Mais chose intéressante, j’ai utilisé Claude pour créer en quelques minutes un programme en C ajoutant la prise en charge des profils colorimétriques gamma à un compositeur Linux (Hyprland)
Le code généré par Claude a compilé du premier coup et allait jusqu’à lire des fichiers .icc, extraire le VCGT et l’envoyer au pilote amdgpu
J’ai seulement dû corriger moi-même un problème d’endianness dans le parsing ICC
C’était un cas où Claude était presque parfait, mais pas tout à fait
J’ai comme hobby de retrouver des abandonwares pour Mac OS vieux de 20 ans et de les réparer pour qu’ils tournent sur Apple Silicon
Par exemple, j’ai réussi à faire tourner jpegview avec Claude en trois modifications de code, puis j’y ai ajouté la lecture vidéo et de nouvelles fonctions de layout
Ces mini-projets sont parfaits à mener avec une simple fenêtre de navigateur ouverte et une instance de code Claude à côté
À propos de l’idée selon laquelle il faudrait absolument « restaurer uniquement avec Claude », il existe d’autres méthodes
Par exemple, on peut télécharger ce fichier d’archive et le conserver dans le cloud
Le positionnement absolu n’est arrivé qu’avec CSS2 (1998)
Le site de Space Jam utilisait une mise en page par tableaux avec align, valign, colspan et rowspan
C’était justement la nature originelle du Web, un hypertexte interprété
Je me demande si ce type de test a été essayé
L’idée serait de calculer les rayons orbitaux des planètes et de vérifier avec un script de tests unitaires que chaque planète se trouve exactement sur son orbite
Au final, au lieu de continuer à surveiller le LLM, il est souvent plus rapide de le faire soi-même
Je me dis qu’on pourrait peut-être simplement donner à Claude le HTML original du site et lui demander de le « déchiffrer »
Le site est assez petit pour que cela semble tout à fait faisable
Le code source original et le rendu obtenu sont différents, mais Claude semble capable de gérer cet écart
En fin de compte, recréer est peut-être une meilleure approche que copier
Il est intéressant d’avoir pris le site de Space Jam comme benchmark pour LLM
Claude est presque arrivé au bon résultat, mais l’ordre était faux, et c’est le genre de chose qu’un humain peut corriger directement
Personnellement, je préfère GitHub Copilot, moins cher et mieux intégré à GitHub
Claude est faible dans l’exploitation des captures d’écran
C’est bien un modèle multimodal, mais sa force reste le traitement du texte
La bonne approche consiste à demander à Claude de créer ses propres outils de traitement d’image, puis de les utiliser pour calculer les coordonnées et exécuter les tests
De cette manière, la stabilité des itérations et l’efficacité sont bien meilleures
J’ai aussi essayé avec Claude des tests visuels de composants Storybook, mais les résultats n’étaient pas bons
J’ai ensuite combiné le mode vision de Playwright avec Codex, mais la boucle de validation visuelle a fini par échouer
J’ai résumé cela sur mon blog