
O mesmo corpo veste 29 em um jeans e 28 em outro. Criei o motor de caimento que explica por que uma tabela de medidas não consegue diferenciá-los.
Construí esta demonstração para resolver uma discussão que eu continuava tendo comigo mesmo, e bastou um único menu suspenso para encerrá-la. Eu tinha um comprador sintético chamado Riley, um conjunto fixo de medidas corporais e um catálogo de oito jeans sintéticos. Coloquei Riley diante do Ironside, um jeans reto de denim selvedge bruto de 14 oz, rígido, com zero elasticidade, e o motor retornou Tamanho 29, 95% de confiança, confortável em todas as zonas. Então, sem alterar absolutamente nada em Riley, troquei a peça pelo Driftwood, um jeans slim com elastano que parece quase idêntico em uma foto de produto, e o tamanho correto caiu para 28.
Mesmo corpo. Mesmas medidas. Dois tamanhos corretos diferentes. E uma tabela de tamanhos baseada apenas na cintura — exatamente o que quase todo site de vestuário usa hoje — teria exibido o mesmíssimo número para ambos os jeans e errado em um deles.

O produto resultante chama-se Contour, e você mesmo pode fazer essa exata comparação em veriprajna.com/pt-BR/demos/predicao-de-caimento-com-ia-que-sente-o-tecido-motor-de-dimensionamento-contour. Mas o que quero discutir não é a recomendação em si. É o motivo pelo qual a recomendação mudou quando nada no corpo se alterou, porque essa razão é todo o argumento para construir isso da maneira como construí.
A moda tem tentado resolver as devoluções com imagens melhores
Comecei este projeto acreditando, como a maioria das pessoas nesse meio, que o problema das devoluções era um problema de imagem. As devoluções de vestuário são dominadas pelo caimento, e a parcela relacionada ao ajuste varia entre 53 e 67 por cento, com cerca de 63 por cento dos compradores admitindo praticar bracketing — pedir dois tamanhos e devolver um (pesquisa Veriprajna WP34, 2026). A logística reversa consome a margem de lucro. A resposta da indústria tem sido melhorar a imagem: tabelas de medidas mais detalhadas, depois avatares 3D e, então, provadores virtuais generativos que renderizam a peça sobre uma foto do seu corpo.
Passei um bom tempo convencido de que um provador virtual suficientemente bom resolveria a questão, até que parei para analisar o que um provador virtual realmente mostra. Ele mostra o jeans em um corpo. Ele não mostra se aquele jeans vai caber naquele corpo. Uma imagem generativa consegue simular o caimento de um tecido de forma convincente sem fazer ideia de que, quando Riley se senta, a circunferência da coxa ultrapassa o limite de elasticidade daquele denim específico. A imagem parece correta. A costura fica sob uma tensão que a renderização nunca calculou.
Um provador virtual pode mostrar o jeans no seu corpo e ainda assim não fazer ideia se ele vai caber em você.
Essa foi a frase que reformulou o projeto para mim. Uma tabela de medidas são quatro números unidimensionais fingindo descrever um corpo tridimensional, e uma imagem de provador virtual é uma bela renderização bidimensional fingindo ser dado de caimento. Ambos compartilham a mesma cegueira. Nenhum dos dois consegue sentir o tecido. Saber se uma peça veste bem não é uma questão visual. É uma questão mecânica: a tensão circunferencial em cada zona do corpo comparada ao limite elástico daquele tecido. E é por isso que Riley veste 29 no denim selvedge bruto e 28 no denim com elastano, mesmo quando a tabela de medidas é idêntica.

Por que parei de confiar no modelo para escolher o tamanho?
Deixei um modelo de linguagem escolher o tamanho uma vez, no início, e vê-lo errar com total confiança é a razão pela qual a arquitetura tem o formato atual. Meu primeiro instinto foi o mais óbvio: alimentar o modelo com o corpo, alimentá-lo com a peça de roupa e pedir um tamanho. Ele respondia instantaneamente e com fluência e, nos tecidos rígidos, errava frequentemente da forma mais perigosa possível: errado com alta confiança. Ele havia aprendido a forma de uma resposta de dimensionamento plausível sem fazer o único cálculo que define a verdade.
Então, retirei a decisão do modelo por completo. No Contour, o tamanho é calculado em código Python puro e coberto por testes unitários. Para cada tamanho candidato, o motor calcula zone_strain = (body_circumference − garment_finished_circumference) / garment_finished_circumference em cada zona, compara esse valor com o limite de conforto elástico do tecido e escolhe o tamanho com o menor arrependimento total por zona. Oito testes unitários fixam essa física com precisão. Não há nenhum modelo em nenhuma parte do fluxo que decida o seu tamanho. O modelo de linguagem ainda tem uma função: ler a descrição confusa do fornecedor para transformá-la em uma especificação estruturada do tecido e redigir o resultado como "justo no quadril, solto na coxa". Ele assessora. Ele nunca decide.
Agentes assessoram, o código decide. No momento em que o modelo ganha o direito de opinar sobre o número, perde-se aquilo que tornava o número confiável.
Esta também é a parte da tese que não envelhece, e é a resposta que dou aos engenheiros que perguntam por que não esperei simplesmente por um modelo melhor. Um modelo de linguagem perfeito ainda não eliminaria a necessidade da mecânica dos tecidos, da geometria corporal, do cálculo de tensão por zona e da política de abstenção. Mesmo um orientador impecável precisa ser verificado contra uma grandeza calculada para ser seguro na finalização da compra. O modelo é apenas um orientador substituível dentro da máquina. A máquina é o produto.
O tamanho que o sistema se recusa a adivinhar
Quase lancei uma versão que nunca diz "não sei", e fico feliz que um caso de teste obstinado tenha me feito mudar de ideia. O comprador era Jordan, usando o mesmo denim selvedge rígido Ironside. Executei a verificação de caimento esperando um número claro e, em vez disso, o motor revelou um conflito real: nos tamanhos menores, a coxa ultrapassa o limite de elasticidade do tecido, e nos tamanhos maiores, a cintura fica folgada. Em um denim com zero elasticidade, simplesmente não existe tamanho adequado para todas as zonas. A tabela baseada apenas na cintura, enquanto isso, exibe com confiança 28 e segue em frente.

A atitude tentadora, aquela que faz a sua precisão geral parecer melhor, é sempre exibir o tamanho menos inadequado e chamá-lo de recomendação. Eu cheguei a escrever essa versão. Depois, fiz o motor se abster em vez disso: ele indica o tamanho menos inadequado, reduz a confiança para 0,58 e declara abertamente: "peça dois tamanhos ou fale com um estilista". Ao longo de toda a avaliação, ele faz isso em 33 de 105 pares de corpo e peça, em vez de adivinhar. Um honesto "nenhum tamanho único funciona perfeitamente aqui" vale mais para o comprador do que um 28 confiante e errado, porque o 28 confiante e errado é exatamente o que gera uma devolução. Recusar-se a responder provou ser um recurso que tive de lutar contra meus próprios instintos de benchmark para manter.
A descrição do fornecedor que não pode ser verdadeira
Tenho uma peça no catálogo que existe exclusivamente para ser rejeitada, e ela surgiu de uma real irritação com a forma como as descrições de produtos são redigidas. O Maverick é descrito pelo próprio fornecedor como "denim selvedge bruto 100% algodão com elasticidade em 4 direções". Essa afirmação é fisicamente incoerente. Um tecido plano rígido de denim selvedge bruto não pode ter simultaneamente elasticidade multidirecional. Mas um extrator ingênuo lê "elasticidade em 4 direções", assume alegremente que o tecido compensa tudo e entrega um tamanho perigosamente errado com um sorriso.
Por isso, entre a extração e a decisão, inseri um crítico adversarial. Ele verifica a especificação de tecido extraída contra restrições físicas e, quando a descrição se contradiz, ele bloqueia a inferência e a encaminha para revisão humana. Nenhuma recomendação de tamanho é emitida. As regras determinísticas dão a palavra final, não o modelo que leu a descrição.

Mantenho este exemplo na tela porque ele representa a versão honesta de "segurança em IA" para este problema. O modo de falha não é o modelo ser criativo. É o modelo estar obedientemente errado sobre uma peça cuja própria descrição mente. Um sistema que sempre responde responderá aqui também, e terá exatamente a mesma confiança sobre o Maverick que tinha sobre um jeans cuja descrição era verdadeira. O objetivo principal é ter uma camada capaz de dizer "estes dois fatos não podem coexistir" e interromper o processo.
O que os números realmente dizem — e o que não dizem
Eu me importo com o benchmark, e me importo ainda mais em declarar o seu escopo com honestidade, porque o número honesto é o que permanece. Em um golden set sintético rotulado de 105 pares, 15 corpos avaliados contra 7 peças, o motor do Contour atinge 100 por cento contra a tabela de tamanhos baseada apenas na cintura, que obtém 60 por cento. Ele elimina o bracketing em 67,6 por cento dos pares, o que significa que o comprador recebe um tamanho de alta confiança e não precisa pedir dois, além de capturar 39 conflitos de caimento — casos em que a correspondência de cintura da tabela escolhe um tamanho que o modelo de tensão comprova que falha em outra zona.

Aqui está a parte que me recuso a relativizar. Esse golden set é sintético e seus rótulos usam os mesmos valores mensuráveis de elasticidade de tecido que o motor utiliza; portanto, ele não é um oráculo totalmente independente. Os 100 por cento são uma propriedade deste conjunto construído, não uma promessa de previsão de caimento perfeita no mundo real, e não permitirei que ninguém cite isso como tal. O número que realmente defendo é o ganho de +40 pontos sobre o método estabelecido vigente, a tabela baseada apenas na cintura que a maioria das lojas utiliza hoje, medida sob os mesmos rótulos. Essa vantagem é maior exatamente onde deveria ser: no selvedge rígido e na alfaiataria, onde a tabela cai para 33 por cento, pois um tecido rígido penaliza o tamanho errado e uma malha elástica o perdoa. Onde a física é mais implacável é onde uma imagem menos ajuda, e onde este motor justifica sua existência.
A manchete honesta não é "100% preciso". É "40 pontos melhor do que a tabela em que sua loja já confia, e a maior parte dessa diferença está no denim".
Cada uma dessas recomendações também grava um comprovante em JSON reproduzível: a especificação extraída do tecido com as frases de origem exatas que definiram cada parâmetro, a matriz completa de tensão por tamanho e a decisão final. Portanto, a resposta não é apenas um número. É um número que você pode abrir e auditar, e a mesma carga de dados é disponibilizada em um endpoint /api/fit que um agente de compras com IA pode chamar diretamente. À medida que o comércio avança em direção a agentes que realizam transações por nós, o sinal de dimensionamento que eles consomem deve ser legível por máquina, pontuado por nível de confiança e auditável. Um relatório, não uma imagem.
A pergunta à qual sempre retorno
Iniciei este projeto pensando que estava construindo um estimador melhor, e concluí convencido de que havia criado algo mais próximo de um instrumento de precisão. O trabalho interessante nunca foi prever um tamanho. Foi decidir o que o sistema tem permissão para alegar, quando ele deve se abster, quais contradições deve recusar e como comprova cada resposta posteriormente. Quando altero aquele menu suspenso do jeans rígido para o jeans com elastano e vejo o tamanho correto mudar para um corpo que não mudou, o que sinto não é "o modelo é inteligente". É "a física é real, e finalmente paramos de escondê-la atrás de uma imagem". Você pode testar esse mesmo menu suspenso em veriprajna.com/pt-BR/demos/predicao-de-caimento-com-ia-que-sente-o-tecido-motor-de-dimensionamento-contour e ver isso acontecer.
E se você prefere ver isso em ação a me ler descrevendo, aqui está tudo funcionando de ponta a ponta.
A questão que continuo ponderando, e sobre a qual gostaria genuinamente que outros desenvolvedores debatessem comigo, é em que outros lugares estamos encobrindo um fato mecânico com uma imagem mais bonita. O setor de moda buscou imagens melhores por uma década enquanto a resposta residia em um cálculo de tensão que qualquer engenheiro poderia cobrir com testes unitários. Portanto, no seu próprio domínio, qual é o fato mecânico por trás daquilo que todos continuam tentando renderizar, e você confiaria em uma imagem disso em vez de um número que você mesmo pode verificar?


