1 pontos por GN⁺ 2025-01-14 | 1 comentários | Compartilhar no WhatsApp
  • Um projeto artesanal de hardware que coloca simulação de fluidos FLIP em tempo real e um display circular de LED dentro de um acessório do tamanho de uma joia, com o objetivo de criar um objeto de simulação vestível
  • O STM32L432KC foi overclockado para 100MHz, e acelerômetro, circuito de recarga e chip de supervisão de tensão foram integrados em uma PCB de 4 camadas com 0,8mm, processando cálculo e exibição dentro de um pingente pequeno
  • Graças ao charlieplexing diagonal e ao acionamento cíclico por DMA, foi possível reduzir a quantidade de vias e a sobrecarga de exibição, embora isso também tenha revelado armadilhas de fabricação, como o posicionamento dos LEDs e pontes de solda
  • A implementação de FLIP foi reimplementada com base nos tutoriais do Ten Minute Physics, e colisões entre partículas e hashgrid tiveram grande impacto na estabilidade e no desempenho mesmo na pequena escala de 8x8
  • Foram concluídos 10 pingentes no total, mas ainda restam pontos de melhoria como a orientação do vidro e da junta, proteção do conector de recarga e usinagem do estojo metálico, então a produção em massa não parece simples

Dispositivo vestível de simulação de fluidos

  • O pingente com simulação de fluidos é uma joia artesanal que executa simulação de fluidos FLIP em tempo real
  • Usa uma caixa banhada a ouro e um vidro de relógio protetor, enquanto o display circular interno de LED mostra o movimento do fluido
  • O primeiro pingente foi feito em março de 2024, e vários outros foram produzidos nos meses seguintes
  • Atualmente há uma pequena quantidade de pingentes, e alguns estão à venda enquanto houver estoque
  • A motivação do projeto e o processo inicial também podem ser vistos em um vídeo no YouTube

Do Simsim ao pingente

  • Após a animação do display volumétrico, a ideia surgiu do objetivo maior de implementar uma simulação de fluidos em tempo real que pudesse resultar em uma espécie de globo de neve virtual 3D
  • Nesse processo, o conceito do Simsim se tornou a base deste pingente
  • Como resultado, além da simulação de fluidos, também ficaram claras vantagens inesperadas do display com charlieplexing diagonal

Configuração de hardware

  • Os principais componentes são os seguintes
    • STM32L432KC: ARM Cortex-M4, com FPU, overclockado para 100MHz
    • ADXL362: acelerômetro de ultra baixo consumo
    • MCP73832: controlador de recarga para bateria LiR2450
    • TPS7A02: regulador de ultra baixo consumo
    • TPS3839: chip de supervisão da tensão de alimentação
  • O circuito foi montado em uma PCB de 4 camadas com 0,8mm
  • Usa uma bateria tipo moeda LiR2450, e o projeto final inclui controlador de recarga e proteção contra baixa tensão
  • O objetivo é cerca de 10 horas de uso com carga completa

Charlieplexing diagonal e acionamento do display

  • O charlieplexing diagonal pode reduzir pela metade a quantidade de vias em comparação com uma matriz convencional
    • Em displays de LED com passo pequeno, a quantidade de vias tende a ser um fator limitante, então o efeito é grande
    • Como LEDs da mesma rede ficam posicionados em extremidades opostas, a maioria das pontes de solda não afeta o funcionamento
  • O display é acionado em modo circular de DMA sem overhead
    • Com duas streams de DMA, uma matriz charlieplexada também pode ser acionada da mesma forma
  • É necessária uma tabela de consulta para conectar LEDs e pixels
    • Alterar o mapeamento não traz custo adicional
    • Os sinais da matriz podem ser ligados a quaisquer pinos das portas do microcontrolador, o que facilita o roteamento
  • Ao acionar um display grande diretamente pelos GPIOs, pode haver problema de brilho por causa da resistência on dos FETs de saída
    • Como o charlieplexing acende apenas um pixel por vez, o efeito dessa resistência aparece de forma uniforme em todos os pixels
    • Também é possível controlar o brilho do display alterando a tensão do microchip

Implementação do simulador de fluidos FLIP

  • A simulação FLIP foi baseada no trabalho de Matthias Müller no Ten Minute Physics, em especial no tutorial “How to write a FLIP Water Simulator”
  • O código não foi portado diretamente: foi uma reimplementação seguindo o tutorial
  • Em uma simulação de fluidos euleriana, o deslocamento do fluido é tratado por advection, mas no FLIP o movimento das partículas transporta o fluido, então não há etapa separada de advection
  • A etapa de colisão entre partículas não pôde ser omitida
    • Sem essa etapa, todo o fluido colapsava em uma massa sobreposta
    • As partículas se repelem com impulsos proporcionais ao inverso da distância
  • O código final tinha uma chave para alternar entre colisão simples e colisão por hashgrid
    • O hashgrid adiciona overhead tanto computacional quanto conceitual, mas mostrou grande ganho de velocidade mesmo em uma escala pequena como 8x8
  • O exemplo do Ten Minute Physics tinha um pequeno erro na condição de contorno à esquerda, o que fazia o fluido nunca parar, e isso foi identificado

Experimentos de simulação e estimativa de memória

  • Durante o desenvolvimento, surgiram vários resultados anormais de simulação de fluidos, e ao renderizar as partículas muitas formas lembravam desovas de rã
  • O gráfico de densidade mostrava quantas partículas se sobrepunham em cada célula da grade, e ao atingir as paredes apareciam efeitos visuais parecidos com ondas de choque
  • Cerca de duas semanas após a divulgação do conceito Simsim, foi criado o demo Simsimsim
    • Era uma ferramenta interna de teste para verificar até que ponto a densidade de LEDs podia ser reduzida sem perder a aparência de fluido
    • Também foi usado para estimar aproximadamente a RAM necessária para um port bare-metal
  • O STM32L432KC tem 64KB de RAM, e um display de diâmetro 16 exige cerca de 26KB
  • O código-fonte do demo e do pingente ainda não foi publicado, mas há plano de divulgação futura

Fabricação do primeiro pingente

  • Antes de fabricar a PCB, foi feito um protótipo com fiação manual para verificar se o padrão de display charlieplexado realmente funcionava
  • LEDs foram fixados com cartão cortado a laser, e uma matriz 8x9 foi ligada a uma placa de desenvolvimento STM32L432
  • Soldar fio esmaltado era extremamente trabalhoso, o que levou rapidamente ao projeto da PCB
  • A simulação FLIP foi executada primeiro como um pequeno quadrado 8x8 no L432, e depois expandida para uma área equivalente ao canto superior esquerdo de um pingente virtual
  • Em uma matriz charlieplexada convencional, cada LED precisa de pelo menos uma via, mas o arranjo diagonal reduz isso drasticamente
  • Dos 240 LEDs possíveis com 16 GPIOs, o display real precisava de apenas 216 LEDs
  • O display foi pensado como circular, mas com diâmetro 16 ele acabou ficando mais parecido com um octógono, dependendo do arranjo

Projeto da PCB e da mecânica

  • O primeiro projeto de PCB foi mais fácil do que o esperado, e a redução no número de vias ajudou bastante
  • As camadas internas da PCB foram arredondadas com o plugin KiCad track-rounding
  • O painel foi montado manualmente para que a máquina de pick-and-place pudesse segurar as placas
  • Nos contatos da bateria foram usados terminais de mola banhados a ouro montados na PCB, do tipo RFI shield finger
  • Encontrar um conector magnético de recarga de 4mm e baixo perfil levou tempo, e a peça usada foi a cx-4mm-jz da WNRE
  • Conectores de recarga de 4mm podem não ser compatíveis entre si mesmo quando a polaridade e a polaridade magnética são iguais

Usinagem e caixa metálica

  • A caixa foi feita por usinagem em latão e depois banhada a ouro
  • A primeira estrutura era do tipo snap-back, e um O-ring foi adicionado para eliminar a folga e também obter vedação contra água
  • Graças ao O-ring, as tolerâncias necessárias ficaram muito mais relaxadas
  • A partir do segundo pingente, foi aplicado um vidro de relógio sobre o display
  • Foi escolhido um vidro de 27,5mm, e com uma junta de 0,45mm o diâmetro total passou a ser 28,4mm
  • O vidro entrava bem com a força adequada, mas em alguns casos acabou quebrando ao ser pressionado sem a ferramenta apropriada

Problemas elétricos revelados durante a montagem

  • Na primeira PCB, um problema foi não ter deixado de fora o pino de reset do microcontrolador
    • Como o display usava toda a Port A e SWDIO/SWCLK também ficam na Port A, ficou difícil gravar novo firmware durante o desenvolvimento
    • Foi necessário um fio temporário para resetar o chip imediatamente antes da programação
  • O bus keeper da linha de interrupção do acelerômetro foi uma das causas de glitches no display
    • No início foi adicionado um resistor, e no fim um diodo resolveu totalmente o problema
  • A detecção de baixa tensão da bateria por software simplificou o circuito, mas deixou um ponto de insegurança
    • Na revisão seguinte da PCB foi adicionado um chip supervisor por hardware
  • Também foi montado um circuito que detecta a conexão do conector de recarga e aciona o pino de reset
    • Se o cabo de recarga for conectado causando curto momentâneo, o polyfuse pode aquecer e a tensão subir lentamente, sem gerar pulso de reset
    • Nesses casos, concluiu-se que basta conectar primeiro o lado magnético e só depois o USB

Economia de energia e despertar

  • O pingente não tem botão, e a única entrada são os dados do acelerômetro
  • No início, pensou-se em ativar deep sleep girando o pingente pela corrente
  • No fim, foi usado o método de elevar para 6g o limiar da interrupção de detecção de movimento do acelerômetro
    • Isso reduz despertares acidentais, e basta chacoalhar para ligá-lo novamente
    • É um método que não consome mais energia do que o modo sleep normal

Segunda PCB e supervisão de tensão

  • Antes do segundo pingente, foram incorporados à PCB o circuito de reset, o diodo da linha de wake-up e o supervisor de hardware
  • O chip supervisor de tensão TPS3839 tem corrente de alimentação de 150nA e, junto com os 25nA do regulador TPS7A02, representa um nível extremamente baixo para uma bateria tipo moeda
  • A bateria tipo moeda LiR2450 tem capacidade de 120mAh, e levaria mais de 13 anos para descarregá-la com apenas 1000nA
  • O limiar de corte por baixa tensão foi definido em 3,08V
    • Foi uma escolha conservadora para que, mesmo nesse nível, a bateria ainda pudesse ficar anos parada sem sofrer quimicamente
    • Circuitos de proteção de lítio comuns cortam perto de 2,5V porque, sob carga, a tensão nos terminais fica abaixo da tensão em circuito aberto
  • O TPS7A02 existe em versão P, com active discharge, e em versão sem esse recurso
    • A versão não-P faz com que o microcontrolador e os capacitores de alimentação descarreguem lentamente mesmo com o regulador desabilitado
    • Após trocar para a versão P, desapareceu o problema de soft-lock perto do limiar do supervisor

Terceiro pingente e estrutura selada

  • No terceiro pingente, o snap-back foi eliminado e o projeto voltou a usar uma caixa em forma de copo
  • O vidro do relógio pode ser removido, mas na prática o acesso exige retirar o vidro ou, no pior caso, quebrá-lo
  • O vidro de reposição custa cerca de 50p, e como há circuito de recarga e proteção contra baixa tensão, não se considera necessário trocar a bateria tipo moeda
  • O formato em copo simplifica bastante a usinagem do metal e ainda reduz a espessura total em cerca de 1mm
  • Como o conector magnético precisa ser instalado primeiro, foi usada fiação flexível com fio trançado 36AWG
  • A resistência entre a caixa e o terra da PCB foi medida em 0.00Ω no multímetro
  • Como a profundidade interna era insuficiente, pressionar o vidro podia apertar o circuito, então cerca de 0,3mm foram raspados manualmente para ajuste

Melhorias de fabricação a partir do quarto

  • A partir do quarto exemplar, o interior passou a ser usinado um pouco mais fundo para que o circuito se encaixasse com folga
  • A parte traseira foi nivelada por lapping
    • Lixa foi colada em uma superfície plana, e o latão foi esfregado com abrasivos progressivamente mais finos
  • Foi usado o 5C collet holder de um torno Hardinge para centralizar as peças com precisão e também reduzir danos na superfície externa
  • A superfície traseira da caixa escavada ficou com menos de 1mm de espessura, e em um caso um corte excessivo acabou atravessando o material
  • A fixação do jump ring funcionou melhor quando foi presa com fio macio e depois soldada
  • O banho de ouro não adere bem sobre solda de estanho, então no fim o contraste foi aceito como elemento visual

Conector de recarga e problemas de uso

  • É preciso vedar com epóxi a área ao redor do conector magnético de recarga, mas sem cobrir os pontos de solda, o que torna o trabalho incômodo
  • Se o conector de recarga for encaixado sem cuidado, pode haver faísca mesmo com 5V
    • Se isso se repetir, os dois contatos podem se desgastar rapidamente
    • Conectar primeiro o lado magnético e depois o USB evita a faísca
  • Em ângulos estranhos, a polaridade também pode acabar invertida
    • Isso poderia ter sido facilmente protegido com um diodo, mas o problema só foi percebido tarde demais
  • O LED vermelho indicador de carga funciona bem, projetando um pequeno círculo vermelho sobre o cabo através do epóxi

Quantidade final e estojo de armazenamento

  • Como estojo portátil, um contêiner plástico de tela de foco da Nikon F3 serviu quase perfeitamente, e depois foram usados pequenos estojos plásticos de tamanho semelhante com forro de espuma antiestática
  • Foram concluídos 10 pingentes no total
    • Alguns têm riscos ou defeitos de superfície
    • A fabricação foi interrompida quando todas as placas de circuito preparadas foram usadas
  • Se mais unidades fossem feitas, seria necessário alterar o projeto para que o vidro e a junta se assentassem com mais segurança
    • A PCB poderia ser um pouco menor
    • Poderiam ser adicionados notchs ou recortes para alinhamento
    • Poderiam ser incluídos um shoulder de apoio para a PCB e um recorte para os fios do conector
  • Só mais tarde foi descoberto que tanto o vidro quanto a junta têm orientação
    • O tamanho do bezel do vidro é diferente em cima e embaixo
    • A junta também não é simétrica quando vista ao microscópio
    • Isso pode ter influenciado a diferença na força necessária para pressionar o vidro em cada pingente

Escolha de material e possibilidade de produção em massa

  • Também foi considerada a possibilidade de fazer tudo em ouro, mas esculpir a peça a partir de um bloco de ouro puro não é algo razoável
  • A prata é mais viável economicamente, e no formato em copo seria possível fazer o corpo soldando uma tira e uma chapa de prata e depois usinando levemente no torno
  • A PCB é fácil de produzir em massa, mas a caixa apresenta desafios próprios
    • O banho de ouro pode ser omitido e substituído por aço inoxidável
    • O formato em copo simplifica a usinagem CNC
    • O jump ring pode exigir um processo separado, como soldagem TIG
  • Uma versão muito barata também poderia ser feita com PCB e caixa impressa em 3D
  • O principal motivo para uma tentativa de produção em massa ser improvável é simplesmente a falta de tempo, já que há outros projetos em andamento

Encerramento e frustrações restantes

  • Este projeto pode ser considerado um sucesso, e a qualidade de fabricação melhorou em relação ao amulet
  • Ainda assim, mesmo após fazer 10 unidades, o resultado não ficou totalmente satisfatório
  • Um ponto lamentado é não ter gravado data ou número de série na parte traseira
  • Para fazer joias melhores e melhorar a usinagem do metal, será preciso investir em equipamentos e aprendizado
  • Fotografias usando o pingente foram difíceis de fazer
    • Para evitar tearing na tela, é necessária uma velocidade de obturador lenta
    • O display fica mais interessante em movimento, o que o torna difícil de capturar em foto

1 comentários

 
GN⁺ 2025-01-14
Opiniões no Hacker News
  • O vídeo é interessante; acabei assistindo quase até o fim sem nem planejar e fiquei totalmente absorvido
    Quando vejo um software como esse, fica ainda mais difícil entender a tendência de dizer que, só porque um LLM passa em avaliações de código, ele é “melhor que os melhores desenvolvedores humanos”
    Quando tentei usar vários modelos do Claude e do ChatGPT para ajudar com problemas específicos, foi terrível; eles são ótimos para CRUD ou algoritmos comuns, mas muito fracos em coisas novas ou incomuns
    Ao ver algo como a “simulação FLIP” deste projeto, fico pensando que nem mesmo o ChatGPT o3, ainda não lançado publicamente, teria facilidade para escrever o software que roda este pingente

    • Usei o Claude no Cursor para implementar dinâmica dos fluidos, e ele não teve problema em escrever e integrar a lógica a um motor de física e renderizador feitos por mim
      Por isso acho que esse julgamento não está correto. LLMs são fortes quando implementam algo do zero, com limites de API claros, seja um app CRUD ou uma simulação física
      O lado em que eles são mais fracos, na minha visão, é trabalhar em grandes codebases legadas, atravessando vários módulos e lidando com muitas pistas confusas
    • Como engenheiro de fluidodinâmica computacional (CFD), acho bem provável que algoritmos básicos de CFD estejam nos dados de treinamento de muitos LLMs
      O problema maior é a precisão do simulador gerado. LLMs não conseguem criar bons testes; são necessárias tanto a verificação (verification), que testa a matemática, quanto a validação (validation), que testa a física, e os LLMs atuais não fazem bem nenhuma das duas
      O método de soluções manufaturadas (MMS), uma técnica padrão de verificação, pode ser em grande parte automatizado com software de álgebra computacional, mas ainda é tedioso e, pela minha experiência, é difícil acreditar que LLMs lidem bem com as manipulações algébricas necessárias aqui
      Pior ainda é que LLMs não conseguem produzir os dados experimentais reais necessários para a validação. É preciso encontrar experimentos na literatura ou realizá-los diretamente; no futuro talvez eles consigam apontar artigos experimentais adequados, mas hoje não parece ser o caso
      Ainda assim, podem ser úteis para dar conselhos quando a simulação não bate com dados experimentais, e parecem saber algo sobre modelagem de turbulência, embora eu duvide que conheçam bem os avanços mais recentes
      Se a simulação de fluidos for para jogos ou computação gráfica, a precisão física não é a prioridade máxima, mas mesmo assim é melhor usar MMS para verificar se a implementação matemática está correta. MMS é uma técnica interessante sem equivalente direto em testes de software comuns: a ideia é modificar minimamente o software para criar um oráculo e, se o software modificado passa no teste, considerar que o software original também passa
    • Vale a pena tentar por conta própria. Você pode se surpreender com a competência dos LLMs atuais, especialmente o Claude, em projetos criativos desse tipo
    • É meio complicado dizer que LLMs não conseguem fazer isso, porque uma simulação CFD na verdade não é uma área tão específica assim
      Em muitos cursos universitários, alunos implementam algoritmos desse tipo como tarefas, e há muito conhecimento relacionado disponível gratuitamente na internet, como os vídeos do YouTube mencionados pelo autor, de modo que LLMs podem ter aprendido com isso
      Claro que o projeto deste artigo em si continua sendo muito impressionante
    • O Claude é bem razoável para escrever programas em Python
  • Isso me lembra a frase “acesso a tornos é um direito humano básico”
    Um professor me contou certa vez sobre a última sala de tornos escolar do seu estado; disse que ela surgiu junto com várias outras escolas logo após a Segunda Guerra Mundial e continuou existindo como uma exceção desde então
    Hoje, não seria possível criar uma nova naquele estado e, em alguns outros estados, talvez nem pudesse existir; ele disse que, se houver um acidente grave, ela vai desaparecer por completo e não restará nenhuma

    • A escola pública de ensino médio em que faço mentoria tem umas 12 tornos para metal, uns 6 tornos para madeira, várias cortadoras a plasma e equipamentos CNC, além de uma grande plaina automática
      O que mais gosto é que metade é muito moderna e metade parece equipamento excedente da Segunda Guerra Mundial indestrutível; a mistura é muito legal
      Acho difícil imaginar a ideia de tirar tornos das escolas por causa de acidentes, e vejo isso como uma atitude cultural autodestrutiva
    • O acesso a uma fresadora CNC e a um torno CNC deveria ser um direito básico
      Com CNC fechado, mais de 99% dos problemas de segurança são mitigados, e a utilidade é muito maior. Em CNC, muitas vezes se entra na área de trabalho com apenas os servos ligados, não o spindle; assim, mesmo as piores lesões provavelmente seriam algo como fraturas. Já equipamentos manuais podem prender e matar uma pessoa no spindle ou no mandril, ou arremessar fragmentos
      Também seria bom ter uma máquina pick-and-place open source decente. Hoje PCBs são baratos, mas essas máquinas ainda não lidam bem com componentes 0201 ou BGAs de alta densidade
    • Escolhi aleatoriamente uma escola pública de ensino médio perto de Twin Cities, em Minnesota, e havia estas disciplinas
      Em “Machine Technology 1”, os alunos aprendem conhecimentos e habilidades de uso de ferramentas manuais comuns, torno mecânico, plaina limadora, furadeira de bancada, fresadora e esmerilhadeira, além de praticar princípios mecânicos básicos e fundamentos usados na indústria de manufatura de precisão
      Em “Welding 1”, aprendem segurança, configuração de equipamentos, transferência metálica, proteção gasosa e soldagem de vários metais, com foco em oxiacetileno e soldagem a arco com eletrodo de tungstênio sob gás
      Em “Construction Trades 1”, aprendem carpintaria, metalurgia, elétrica e encanamento, além do uso seguro de ferramentas manuais e elétricas adequadas a cada técnica
      Parece que houve um período, lá pelos anos 90 a 2000, em que a educação técnica profissional quase desapareceu das escolas públicas, mas felizmente parece estar voltando
    • Usei um torno sozinho na escola quando tinha 12 anos, ou talvez menos. Parece que os tempos mudaram
    • É bom relativizar um pouco. Quando trabalhei com a Dream It Do It no oeste de Nova York, havia muitas escolas com oficinas de mecânica e marcenaria
  • Charlieplexing: https://en.m.wikipedia.org/wiki/Charlieplexing

  • Um projeto realmente incrível, e gostei especialmente da parte de simulação.
    Estou fazendo algo parecido: um display POV para bicicleta com muitos LEDs, e consegui enviar vídeo quase em tempo real por Wi-Fi: https://youtu.be/hxAHBvuyqpY?si=8XraFuG_Fi54Bs7T

  • As ideias de projeto do mitxela e os vídeos do processo de construção são realmente ótimos. Recomendo conferir também os outros projetos dele.

    • Tim é um maker, fuçador e criador realmente sério. Além de trabalhos de hardware muito bons, também há trabalhos na parte de software: https://mitxela.com/other/
  • Este projeto é uma combinação impressionante de arte e engenharia.
    O nível de acabamento nos detalhes, tanto da simulação de fluidos quanto do projeto de hardware, é enorme, e é especialmente impressionante como ele usou Charlieplexing de forma inteligente para otimizar a disposição dos LEDs.

  • É impressionante a ponto de ser difícil de acreditar. Ver projetos assim e as pessoas que conseguem realizá-los me inspira muito, mas ao mesmo tempo me deixa intimidado.
    Consigo reconhecer a ética de trabalho necessária e as competências em várias áreas, mas não acho que eu conseguiria reproduzir isso pessoalmente. Acho que vou ficar só admirando de longe.
    Gostaria de conhecer outros criadores parecidos, com esse nível de acabamento e interesses.

    • Se você tem interesse em projeto de PCBs personalizadas, recomendo muito Carl Bugeja: https://youtube.com/@carlbugeja
      Ele tem muitos projetos muito interessantes usando coisas como microcampos magnéticos, motores e flappers.
      Se você gostou da parte de usinagem da carcaça, também recomendo ver o Clickspring. Combinando qualidade visual, storytelling e habilidade prática, acho justo dizer que ele é um dos melhores mecânicos atualmente ativos no YouTube: https://youtube.com/@clickspring
    • Não sei as circunstâncias de cada um, mas gostaria de recomendar o texto do autor sobre o próprio trabalho, chamado “Spare Time and Hard Work”.
      Dá para ver aqui: https://mitxela.com/rants
      Infelizmente não há link direto, então é preciso rolar um pouco para baixo. Pessoalmente, acho inspirador à sua maneira e releio de vez em quando.
    • Não se intimide; é só começar.
  • Estranhamente, fico mais atraído pela ideia anterior de usar mercúrio, um líquido real, para acender os LEDs.
    Porque seria muito mais simples de posicionar no KiCad e provavelmente nem precisaria de uma placa de 4 camadas.

  • Realmente lindo. Fiquei surpreso com o preço; esperava algo em torno de 10 vezes o valor que ele está cobrando agora.

    • Agora parece que está esgotado, exceto por uma edição especial de £1.000. Alguém viu qual era o preço original?
  • Eu não chamaria isso de “protótipo”, como o autor chamou.

    • Um dos significados de prototype é “a primeira forma em tamanho real e geralmente funcional de um novo tipo ou projeto de estrutura” (Webster)