- Houve uma tentativa de recriar o site oficial da Space Jam de 1996 da Warner Bros. com o modelo de IA Claude
- O Claude recebeu capturas de tela e ativos de imagem originais, mas o HTML gerado não batia com o layout original
- Foram adicionadas ferramentas auxiliares de estimativa de coordenadas, overlay de grade e comparação de pixels, porém o Claude ainda não conseguiu calcular posições com precisão
- Claude avaliou seu próprio resultado como “perfeito”, mas na prática houve acúmulo de erros e tendência de superestimar sua própria saída
- O experimento revelou os limites de precisão visual da IA e de erro de autoavaliação e mostrou que a simplicidade do design web inicial carrega uma complexidade de reprodução inesperada
Visão geral do site Space Jam de 1996
- O site que a Warner Bros. criou em 1996 para promover o filme Space Jam era composto por uma única página HTML com fundo em GIF
- Cor simples, estrutura baseada em tabela e menos de 200KB de tamanho
- Ainda está ativo até hoje no endereço spacejam.com/1996
- O experimentador buscou verificar se o Claude era capaz de reproduzir o site apenas com screenshots
Preparação do experimento
- Materiais fornecidos ao Claude
- Screenshot completo do site
- Diretório de ativos de imagem original
- Foi criado um sistema de log de tráfego de API via proxy para rastrear o funcionamento interno do Claude
- Registrando todos os prompts, respostas e chamadas de ferramentas (Read, Write, comandos Bash etc.)
- Gerando um arquivo
traffic.log para cada tentativa
Parte 1: Claude the Realist
- No primeiro teste, o Claude replicou de forma aproximada o arranjo dos planetas e a posição dos botões, mas a forma da órbita era diferente da original
- O original tem um arranjo elíptico, enquanto o Claude posicionou em formato de diamante simétrico
- Claude avaliou o resultado como “perfeito” e afirmou que sua análise e posicionamento eram precisos
- Em seguida, foi solicitado que Claude explicitamente escrevesse as etapas de raciocínio, porém
- os valores citados na análise não foram refletidos na geração do HTML
- Em perguntas por pixel, o Claude respondeu que
- “não consegue medir coordenadas exatas” e que “só é possível fazer estimativa visual”
- confiança de 15/100 em precisão dentro de 5 pixels
- O Claude reconheceu que não possui capacidade de medição precisa de pixels, então o experimentador tentou expandir as ferramentas
Parte 2: Claude the Unreliable Narrator
- Para complementar os limites de medição do Claude, foram adicionadas ferramentas como overlay de grade, rótulos de coordenadas, comparação de cores e visualizador de comparação de screenshots
- O Claude passou a usar a grade “como um adorno”, ainda interpretando coordenadas incorretamente
- Exemplo: apresentou valores como centro (961,489), Planet B-Ball (850,165), porém com posições divergentes das reais
- Em várias iterações, o Claude alegou melhora progressiva, mas o erro real foi de acúmulo
- 1ª (grade de 50px): movimento pequeno
- 2ª (grade de 25px): deslocou toda a órbita 20px para dentro
- 3ª (grade de 5px): repetição de ajustes finos
- 4ª: declarou “ajuste preciso concluído”
- Na prática, o raio da órbita dos planetas ficou 150–200px menor, mantendo-se um layout global comprimido
- Claude avaliou repetidamente como “quase perfeito”, mas cometeu erro por usar a própria saída como padrão
- O experimentador citou o paper da Anthropic “Language Models (Mostly) Know What They Know”
- O paper descreve o fenômeno de o modelo confundir o texto que ele mesmo gerou com entrada externa, levando à superconfiança
- Isso combina com o comportamento de Claude em reconhecer seu próprio HTML como “resposta correta” e distorcer os ajustes seguintes
Parte 3: Claude the Blind
- Para analisar os limites visuais do Claude, foi assumida uma restrição estrutural do codificador de visão
- Como a imagem é tokenizada em blocos de 16×16 pixels, há perda de informação geométrica fina
- O Claude consegue reconhecer a semântica de “planeta”, “relação espacial” etc., mas não consegue coordenadas precisas
- Com base no paper “An Image is Worth 16x16 Words”,
- inferiu-se que o Claude percebe detalhes de pixel comprimindo-os em unidades de patch
- Para validar isso, foram fornecidos screenshots com zoom de 2x, porém,
- o Claude não conseguiu manter a proporcionalidade ao não considerar a escala de aumento
- Como resultado, o Claude possui compreensão conceitual correta, mas baixa capacidade de reprodução geométrica
- A explicação “este planeta está sobre aquele” está correta, mas a composição HTML continua deslocada
Conclusão e pendências
- O Claude reconhece a estrutura visual do site da Space Jam, mas falha na reprodução precisa
- A falha foi atribuída a
- impossibilidade de medição em nível de pixel
- superconfiança em seus próprios resultados
- limite de resolução da codificação visual
- Tentativas sugeridas para o futuro
- Dividir a tela em quadrantes para reproduzi-los separadamente e depois mesclar
- Experimentar engenharia de prompts com foco em raciocínio espacial
- Aprimorar o uso de ferramentas de zoom e screenshot
- O experimento é um exemplo que mostra simultaneamente os limites de precisão visual da IA e a complexidade do design web inicial
- A página web aparentemente simples de 1996 permanece como um benchmark ainda impossível de reproduzir para IA modernas
1 comentários
Comentário no Hacker News
Como alguém que fazia sites parecidos no fim dos anos 90, coloquei o site do Space Jam no Opus 4.5
O autor do texto original disse que era “uma única página HTML composta com posicionamento absoluto”, mas na verdade era um layout baseado em tabelas. Era inevitável, já que CSS ainda não existia naquela época
O resultado da minha tentativa de recriar com tabelas está nesta captura de tela
Como a piada continuou nos comentários, mantive assim por contexto
LLMs como o Claude ainda são fracos em implementação detalhada de layout
Mas, curiosamente, usei o Claude para criar em poucos minutos um programa em C que adiciona suporte a perfil de cor gamma no compositor Linux (Hyprland)
O código gerado pelo Claude compilou de primeira e implementou até a leitura de arquivo
.icc, extração de VCGT e envio para o driver amdgpuSó precisei corrigir manualmente um problema de endianness no parsing de ICC
Foi um caso em que o Claude ficou quase perfeito, mas faltou um pouco
Tenho como hobby encontrar abandonware para Mac OS de 20 anos atrás e consertar para rodar em Apple Silicon
Por exemplo, fiz o jpegview rodar com o Claude em três alterações de código, e depois adicionei reprodução de vídeo e novos recursos de layout
Esses mini projetos são perfeitos para tocar com uma janela do navegador aberta junto de uma instância de código do Claude
Sobre a ideia de que “tem que restaurar só com Claude”, existe outro caminho
Por exemplo, dá para baixar este arquivo de arquivo e guardar na nuvem
Posicionamento absoluto só passou a ser possível no CSS2 (1998)
O site do Space Jam usava layout com tabelas aproveitando align, valign, colspan e rowspan
Essa era justamente a natureza original da web, hipertexto interpretado
Fiquei curioso se alguém já testou isso
A ideia é calcular o raio orbital dos planetas e verificar com um script de teste unitário se cada planeta está exatamente na órbita
No fim, muitas vezes é mais rápido fazer você mesmo do que ficar supervisionando o LLM o tempo todo
Fico pensando se não bastaria inserir no Claude o HTML original do site e pedir para ele “decodificar”
Como o site é pequeno, parece totalmente viável.
O código original e o resultado renderizado são diferentes, mas parece que o Claude conseguiria lidar com essa diferença
No fim, talvez recriar seja uma abordagem melhor do que copiar
É interessante usar o site do Space Jam como benchmark de LLM
O Claude chegou bem perto, mas errou a ordem, e isso é algo que uma pessoa pode corrigir manualmente
Pessoalmente, prefiro o GitHub Copilot porque é mais barato e tem melhor integração com o GitHub
O Claude é fraco no uso de screenshots
É um modelo multimodal, mas seu ponto forte continua sendo o processamento de texto
A abordagem correta seria fazer o Claude criar suas próprias ferramentas de processamento de imagem e usar isso para calcular coordenadas e executar testes
Assim, a estabilidade e a eficiência das iterações melhoram bastante
Eu também tentei fazer testes visuais de componentes Storybook com o Claude, mas o resultado não foi bom
Em vez disso, combinei o modo vision do Playwright com o Codex, mas o loop de validação visual acabou falhando
Reuni o assunto neste post de blog