145 GB puxados em 34 horas e ninguém foi avisado

Scraping de modelos 3D deixou de ser um debate abstrato sobre direitos autorais e virou um problema de infraestrutura, confiança e custo operacional. Nos dias 15 e 16 de outubro, um crawler que se identificava como pesquisa da Roblox percorreu praticamente todo o catálogo do Open3DLab, do SFMLab e do SmutBase, leu quase 19 mil páginas de projetos e baixou cópias completas de 1.027 arquivos de 712 projetos. No total, 145,5 GB de trabalho de criadores independentes saíram dos servidores gratuitos desses sites sem autorização, sem acordo comercial e, pelo que tudo indica, para alimentar treino de modelo de fundação 3D.

Para quem roda site comunitário, marketplace de assets ou pipeline de dados, o recado é direto. Não importa se você tem robots.txt, termos de uso claros ou licença Creative Commons com cláusula não comercial. Se o seu endpoint de download entrega o arquivo para qualquer cliente HTTP com um user agent qualquer, alguém com uma máquina na AWS e paciência de fim de semana consegue clonar uma parte relevante do seu acervo.

O fato, sem enfeite

O que aconteceu foi documentado nos logs dos três sites. O crawler usava o user agent 'trellis2-data-sourcing/1.0 (3D foundation model research)' com um e-mail corporativo e operava a partir de um único endereço na AWS. Em cerca de 34 horas, ele fez 26.429 requisições e abriu a página principal de 18.926 projetos, o que na prática é o catálogo inteiro. Depois dessa varredura, partiu para o download integral dos arquivos hospedados nos servidores gratuitos.

O detalhe que transformou um scraping agressivo em polêmica foi o tipo de conteúdo levado. Desse total, 364 arquivos, com 54,8 GB, vieram do SmutBase, que hospeda apenas conteúdo adulto. Somando projetos marcados como adultos no SFMLab, foram 345 projetos adultos entre os 712 copiados, cerca de 62,6 GB. A lista inclui modelos com nomes de personagens conhecidos de games e itens explicitamente sexuais. Além disso, 423 dos 712 projetos tinham licença apenas para uso não comercial. O crawler baixou projetos adultos na mesma proporção do restante, o que sugere coleta indiscriminada, sem filtro por tag, licença ou categoria.

A equipe dos sites diz que detectou o tráfego anormal no dia 18 de outubro, bloqueou o IP na mesma manhã e enviou e-mail para o endereço informado no user agent pedindo explicações. Não houve resposta. O crawler pausou no fim de semana, voltou no dia 19 e no dia 20 tentando novamente, já bloqueado, com um padrão bem comportado de horário comercial na Europa, com pausa curta perto do almoço e encerramento no fim da tarde. Esse ritmo, mais a redução gradual de tentativas na tarde do dia 20, parece teste de rate limit, não uso normal de usuário.

Como funciona uma raspagem desse porte na prática

Olhando como operador, a operação é simples e por isso mesmo difícil de conter sem fricção para usuário legítimo. Primeiro vem a fase de descoberta, com GETs sequenciais nas páginas de projeto para extrair IDs, links de download e metadados. É tráfego leve, fácil de paralelizar e difícil de distinguir de indexação normal se você olhar só volume por minuto. Depois vem a fase cara, o download dos binários, que no caso de modelos 3D significa arquivos de centenas de megabytes com malhas, texturas 4K, blend shapes e às vezes cenas completas.

O fator que segurou o estrago, segundo os administradores, foi o limite dos servidores gratuitos, com teto de velocidade e de conexões simultâneas. Isso explica por que apenas 1.027 arquivos foram baixados depois de quase 19 mil páginas visitadas. Fazendo a conta rápida, 145,5 GB em 34 horas dá média próxima de 1,2 MB por segundo sustentado, número compatível com throttling agressivo e poucas conexões paralelas. É provável que o script fosse sequencial, com retry simples e sem rotação de IP, porque veio tudo de um único endereço. Um operador mais sofisticado, com pool de IPs residenciais, cabeçalhos rotativos e resolução de desafios de CDN, teria levado muito mais no mesmo tempo.

Do lado do custo, a conta inverte. Para quem hospeda, 145 GB de egress mais 26 mil hits dinâmicos não quebra ninguém de forma isolada, mas corrói margem de projeto comunitário que vive de doação e assinatura para liberar download rápido. Para quem coleta, o custo é quase irrelevante. Algumas dezenas de dólares de EC2 e banda na AWS, mais armazenamento em S3. O valor real está no dataset curado, com modelos já rigados, com nomes consistentes e com variantes que não existem em datasets abertos como Objaverse.

O que isso tem a ver com o Cube da Roblox

Aqui entra inferência técnica, não confirmação. A Roblox trabalha desde 2025 no Cube, seu sistema generativo para 3D e 4D, descrito em paper como um modelo de fundação para inteligência 3D, com metas que incluem rigging de personagens e geração de avatares. O primeiro modelo de forma teria sido treinado com cerca de 1,5 milhão de assets de conjuntos licenciados e públicos, além de assets gratuitos da própria Creator Store com opt-in de criadores. Em fevereiro de 2026, a empresa começou a liberar geração 4D sobre essa base.

O endereço de e-mail no user agent pertenceria a um pesquisador listado entre os mais de 40 autores daquele paper, com histórico em reconstrução 3D e renderização em tempo real e perfil público indicando trabalho atual em modelo de fundação 3D na Roblox. Isso não prova sozinho que os 145 GB foram para treino, mas o user agent literalmente diz '3D foundation model research' e o comportamento é típico de construção de dataset para treino ou avaliação. Para um time que já esgotou o que há de fácil e limpo em dados 3D, buscar comunidades de nicho com modelos complexos, poses adultas e acessórios detalhados faz sentido técnico, mesmo que seja problemático do ponto de vista legal e ético. Dados adultos introduzem anatomia, deformação de tecidos e interações que datasets higienizados não têm, mas também contaminam o modelo com conteúdo que depois precisa ser filtrado com custo alto.

O que isso muda para quem constrói com 3D e IA

Quem perde primeiro é o hospedeiro pequeno. Open3DLab, SFMLab e SmutBase não têm departamento jurídico de big tech, mas pagam a conta de banda e perdem confiança de criadores que subiram arquivos sob licença não comercial. Se criador sente que publicar significa virar dado de treino sem crédito, ele fecha o projeto, coloca paywall ou migra para Discord fechado. O ecossistema aberto de modelos 3D, que já é muito menor que o de imagens e texto, encolhe.

Quem coleta também perde, só que no médio prazo. Levar conteúdo adulto e material com restrição não comercial para dentro de um pipeline corporativo cria um passivo que aparece na hora de licenciar o modelo, responder due diligence ou filtrar saídas. Limpar 62 GB de conteúdo adulto misturado com dado útil não é um script de uma tarde. Exige classificadores, revisão humana e retreino parcial. Se o objetivo era acelerar o Cube, o atalho pode ter criado mais trabalho de alinhamento e jurídico do que economizou em coleta.

Se você opera site parecido, há uma ação prática para fazer ainda hoje. Não confie só em robots.txt, porque crawler de IA já provou que ignora o arquivo mesmo depois de baixá-lo. Implemente uma regra na borda, no Cloudflare, Nginx ou similar, para bloquear ou desafiar o user agent 'trellis2-data-sourcing' e qualquer user agent com termos como data-sourcing, foundation model research ou coleta massiva fora de buscadores conhecidos. Combine isso com essas medidas:

  • Exija token temporário para download: gere URL assinada com expiração curta via API, em vez de link estático raspável.
  • Separe metadados de binário: libere a página do projeto para indexação, mas proteja o endpoint de arquivo com rate limit por IP, conta e ASN de nuvem.
  • Registre licença no metadado e no arquivo: inclua arquivo de licença dentro do zip e log de quem baixou, para ter evidência em caso de disputa.

Essa combinação não impede um adversário dedicado, mas quebra o script simples de um IP único e força negociação. E negociação é o que faltou aqui.

A tensão que fica

A pergunta incômoda não é se scraping para IA vai continuar, porque vai. A pergunta é se esse modelo de coleta indiscriminada escala sem quebrar a fonte. Dados 3D de qualidade são escassos, caros de produzir e muitas vezes presos a licenças restritas. Quando uma empresa do tamanho da Roblox puxa 145 GB de comunidades sem pedir, ela sinaliza para todo criador que publicar aberto é ser minerado. O resultado provável não é mais dados, é menos dados públicos, mais fragmentação e mais paywall.

Há também a dúvida técnica. Levar modelos adultos, com topologia feita para render fetichista e não para deformação física correta, realmente melhora um modelo de fundação para games infantis e experiências sociais, que é o core da Roblox. Ou só move o gargalo do problema de quantidade para o problema de curadoria, filtragem e risco de marca. Minha leitura de operador é que o ganho de diversidade anatômica não compensa o custo de descontaminação e o risco reputacional de explicar por que personagens de franquias alheias e brinquedos adultos foram parar no bucket de treino.

Conclusão

No fim, foi uma raspagem clássica, com user agent identificado, IP único, desrespeito a robots.txt e licenças, e silêncio após o contato. O que muda é a escala do que está em jogo quando o dado é 3D pesado, licenciado e, em parte, adulto. Se você mantém acervo aberto, proteja o download como se fosse API paga. E fica a pergunta que a Roblox ainda não respondeu, o que exatamente ela pretendia fazer com 62 GB de conteúdo adulto em um modelo para criadores.