CommunityImagemgithub.com

max-model

Estúdio de modelos 3D prontos para impressão em impressoras FDM. Use quando for solicitado a 'modelar / projetar / fazer um <objeto> para imprimir', 'modelar isso em 3D', 'CAD isso', 'suporte/caixa/suporte/adaptador/tampa/suporte personalizado', 'fidget', 'imprimir no lugar', 'algo que se move', 'flexi <animal>', 'figura / estátua / mascote de <x>', 'texto para 3D', 'gridfinity', 'encaixe para meu <objeto>', 'divida isso para minha mesa', 'isso vai imprimir', 'calibre minha impressora', 'veja em RA', 'coloque meu nome', 'adicione um loop de chaveiro', 'adicione ímãs', 'consertar paredes finas', 'escala para minha cabeça', 'faça uma caixa para mim', 'chaveiros', 'placa', 'suporte de telefone', 'litofania', 'max model', '/max-model' ou 'forge'. CAD com código (build123d/OpenSCAD/bpy) + mecanismos verificados MechKit + texto para 3D local + flexify + previsão de falha de pré-impressão; fornece um STL verificado para seu fatiador.

O que é max-model?

max-model é um skill para agentes de IA (como Claude Code, Cursor, Codex) que transforma ideias em modelos 3D verificados e prontos para impressão em impressoras FDM. Ele atua como um estúdio completo de modelagem 3D, guiando o usuário desde a especificação inicial até a entrega de um arquivo STL ou 3MF pré-verificado para o fatiador, com suporte para diversos tipos de projetos: desde objetos funcionais e práticos (caixas, suportes, chaveiros) até mecanismos com movimento (fidgets, engrenagens, articulações) e figuras orgânicas (animais flexi, mascotes) usando geração local de texto para 3D. O skill é especialmente útil por sua abordagem rigorosa e sistemática: ele nunca faz afirmações sobre geometria sem dados de ferramentas de verificação, exige especificações numéricas antes da modelagem (com `spec.md` e `spec.json`), e possui um pipeline de pré-impressão (`forge preflight`) que prevê falhas e decide sobre a necessidade de suportes. O coração do sistema é o `forge` CLI, que orquestra todas as fases: desde a rota (escolha do pipeline adequado), passando pela construção iterativa com verificação contínua, até a preparação para impressão com análise de encaixes e relatórios de tempo e gramas. A força do skill está nos mecanismos verificados: qualquer peça que se move é submetida a um auto-teste de colisão e folga, e engrenagens e mecanismos complexos (como redutores cicloidais) são construídos com bibliotecas especializadas (`lib/mechkit/core.py`, `lib/gears.py`). O skill também oferece recursos avançados como análise de aparência (Looks Score), geração de figuras orgânicas via texto para 3D local, flexibilização de designs existentes, e criação de showcases e visualizações em realidade aumentada (AR).

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/marklkasdorf-del/max-model/tree/HEAD

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

max-model: ideia -> peça verificada e pronta para impressão

O pedido: o que o usuário digitou após /max-model (ou a coisa que ele descreveu). FORGE = diretório deste skill (por exemplo, ~/.claude/skills/max-model); cada caminho abaixo é relativo a ele. Um CLI: $FORGE/bin/forge <cmd> (lista no final). Ambientes (veja README): venv CAD $FORGE/.venv-cad (build123d, trimesh, manifold3d, usd-core, opencv, sdf; substitua por FORGE_CAD_PY), venv AI opcional $FORGE/.venv-ai (torch, diffusers, CLIP; substitua por FORGE_AI_PY) para text3d e looks. Impressora: knowledge/printer.json (mesa, bico, camada; exemplos em knowledge/printers/). O fatiamento é de escolha do usuário: o forge termina com um STL verificado mais um veredito de pré-impressão (suportes ligado/desligado). Um slicer_cmd opcional permite que o forge informe o tempo de impressão e os gramas.

O que o benchmark de 2026-10-17 mostrou (knowledge/benchmark-2026-10-17.md): peças exatas de uma especificação completa atingem 0,96 de IoU de voxels versus o STEP real para peças totalmente especificadas, mas apenas 0,41-0,82 onde os detalhes foram adivinhados; mecanismos impressos no lugar passaram nas varreduras de movimento na primeira construção com zero de lacunas fundidas (ainda não validado por impressões reais na impressora do autor); A APARÊNCIA de coisas icônicas/orgânicas é o ponto fraco quando modelado à mão (um capacete modelado à mão saiu como um ovo). Os pipelines text3d / looks / remix existem para cobrir esse ponto fraco com ferramentas em vez de força de vontade: passagem de referência + Pontuação de Aparência, texto local -> 3D para figuras orgânicas, flexify em cima de esculturas, encontrar e remixar para adereços icônicos.

Regras que nunca se dobram

  1. Números primeiro, imagens depois. Nenhuma afirmação sobre geometria, a menos que venha da saída de uma ferramenta (verificar/autoteste/pré-impressão/classificar JSON) ou de uma renderização que você leu nesta iteração. Nunca descreva um STL de memória.
  2. Especificação antes do modelo para peças personalizadas: spec.md + spec.json com critérios de sucesso numéricos primeiro.
  3. Uma alteração por iteração, mantenha cada iter_NN/, máximo 6 por fase, depois replaneje.
  4. Qualquer coisa que se move é entregue com um auto-teste aprovado (varredura livre + controle de travamento obrigatório + folgas medidas). Sem exceções; é a razão pela qual os mecanismos são o ponto forte deste skill.
  5. Toda impressão recebe forge preflight antes do fatiamento, e seu veredito decide os suportes. NO-GO = corrigir geometria/orientação primeiro. Peças impressas no lugar / com múltiplos corpos também recebem forge export <stl> e você entrega o 3MF, não o STL: os suportes automáticos de um fatiador preenchem as lacunas e soldam as peças (a primeira impressão do CYCLO-11 morreu assim), e um STL não pode carregar "suportes desligados".
  6. Ambiente: Blender, OpenSCAD e GPU torch (text3d, looks) podem travar dentro de algumas sandboxes de agente que escondem a GPU (Blender sai com 139). Se uma etapa der segmentation fault, execute-a fora da sandbox. Python puro (build123d, manifold3d, trimesh) roda em qualquer lugar.
  7. Relate marcos brevemente (rota escolhida, primeira renderização, pronto para impressão com tempo/gramas/veredito, bloqueador): uma linha cada, diga o que o usuário deve decidir. Envie imagens-chave (sheet.png, poster.png) e arquivos de RA quando o canal suportar arquivos.
  8. Nunca inicie uma impressão ou gaste dinheiro sem a aprovação explícita do usuário. Modelos baixados: respeite a licença (CC BY-NC = sem venda).

Início da sessão (30 segundos)

ls $FORGE/knowledge/; cat $FORGE/knowledge/{fit-log.md,lessons.md,printer.json}; $FORGE/bin/forge fit show
$FORGE/bin/forge doctor                # linha vermelha -> corrija ou relate antes de modelar

Se forge fit show disser que pip_gainda é [R] (padrão de pesquisa, não medido nesta impressora): mencione uma vez que o Cartão de Ajuste (forge mech build fitcard, cerca de uma hora, ~16 g) calibra cada parte móvel e se ofereça para imprimi-lo.


FASE 0 — ROTA (escolha o pipeline, não o martelo)

A primeira correspondência vence. Informe a rota ao usuário em uma linha.

Ele querRotaFerramentas
alterar um DOWNLOAD: nome/texto, loop de chaveiro, ímãs, paredes mais grossas, escala para tamanho de cabeça, fundo chato, espelharREMIX (baixar, depois atualizar)`forge remix text
uma coisa prática a partir dos números do usuário: caixa (tampa deslizante/pressão), chaveiro com nome, placa, suporte de telefone, suporte para um objeto, litofaniaFAZER (geradores; folgas de fit.json; caixas são verificadas por movimento)`forge make box
muitas cópias / um projeto inteiro em uma impressão (venda)PLATE (empacota a mesa, custo por item)`forge plate <stl...> --fill
uma coisa famosa existente (um capacete de filme, adereço, brinquedo popular, estojo para um dispositivo popular)ENCONTRAR (pesquise em um site de modelos como Printables/Thingiverse você mesmo), depois REMIX (escala, dividir, ímãs, ajuste)pesquisa na web, forge split, forge preflight --orient
um capacete ORIGINAL para vestir ("um capacete que ninguém mais tem")TEXT3D --helmet: corte do pescoço, dimensionado para uma cabeça que você especificar (padrão 160x190 + acolchoamento), casca de 3 mm, placa frontal + 4 bosses de ímã, fatias com costura para baixoforge text3d "<estilo> helmet" --helmet
algo que se move (fidget, dobradiça, engrenagens, giroscópio, balisong, pass-through, clicador)MECHKIT se um módulo servir, caso contrário modele com a API Mechforge mech list/build, lib/mechkit/core.py
um animal flexiprojetar um corpo SDF (lib/sculpt.py) ou pegar uma escultura (um site de modelos/text3d) -> FLEXIFYforge flexify, forge sculpt
uma figura / mascote / criatura / estátuaTEXT3D (local, gratuito, ~3,5 min) ou encontrar; ofereça ambosforge text3d "<ideia>" [--base NOME]
uma peça funcional de ajuste personalizado (suporte, suporte, adaptador, estojo para o objeto do usuário)MODELAR (fases 1-6 abaixo)pista build123d, forge run, forge parts-find
organizar gavetas / um encaixe para um objetoGRIDFINITY (+ PHOTOFIT para um bolso exato)forge gridfinity, forge photofit
muito grande para a mesaDIVIDIR com pinos + rótulos de juntaforge split
"isso vai imprimir / por que falhou"PRÉ-IMPRESSÃO (+ mapa de calor)forge preflight, forge heat
exibir / venderSHOWCASE + RAforge showcase, forge ar

Notas de qualidade honestas para roteamento (medidas pelo autor, 2026-10-17): figuras do text3d são legíveis (axolote, dragão, mascote fantasma, tubarão) mas os detalhes finos são suaves a 60 mm e precisam de suportes; flexi-de-texto via relevo é grosso (pernas finas se fundem) -> prefira um corpo projetado em SDF ou uma escultura humana para flexis; formas orgânicas modeladas à mão ainda parecem borrões -> nunca modele um capacete/personagem à mão, use ENCONTRAR+REMIX ou TEXT3D.

FASE 1 — BRIEFING (peças personalizadas): especificação com números

  1. Qualquer coisa que o usuário já lhe disse sobre o objeto exato (modelo do dispositivo, medidas, fotos). 1b. PASSAGEM DE REFERÊNCIA para qualquer coisa com um nome: pesquise 6-9 imagens de referência / designs mais bem avaliados da coisa real, VEJA-as; escreva "## Forma" em spec.md (proporções, 2-3 características marcantes, qual variante). Pular isso fez com que o balisong de bancada fosse um bastão chato e o fidget espiral o brinquedo errado.
  2. Dimensões: pesquise, nunca lembre (bench: recordou polia 0,41 IoU). forge parts-find "<peça>" [--download] + forge step2stl; folhas de dados via busca na web; pesquisa na web para imagens de referência. Cite fontes em spec.md. Para um objeto que o usuário possui e que não pode ser pesquisado: PHOTOFIT (forge photofit mat -> imprima o Tapete de Calibração a 100% -> foto -> contorno dentro de ~0,3 mm) supera pedir números de paquímetro.
  3. Pergunte ao usuário apenas o que não pode ser encontrado: UMA mensagem, <= 4 perguntas, cada uma com um padrão.
  4. Escreva out/<nome>/spec.md + spec.json (templates/). Estimativas em interfaces de ajuste são marcadas como estimate.
  5. Poste "especificação pronta: -- OK para construir?"; prossiga em silêncio de baixo risco com os padrões declarados.

FASE 2 — PISTA + PLANO

PistaUse para
b123d (padrão)peças funcionais/dimensionadas/críticas para ajuste, invólucros, módulos MechKit
scadpeças triviais ou um primitivo BOSL2 (roscas)
sdf (lib/sculpt.py)corpos orgânicos que você mesmo projeta: uniões suaves, base plana, sempre estanque (receita de gecko)
mesh (lib/meshkit.py, manifold3d)editar downloads/malhas de IA, booleanos grandes, flexify, dividir (OCC engasga com esculturas de 100k triângulos)
bpyrenderizações, remalhamento de voxel, arte com muito texto
Planeje em comentários no topo do arquivo da peça: características como funções, bloco de parâmetros em mm, folgas de fit.get("pip_gap"/"slide_gap"/...) (nunca codifique 0,3), origem no centro inferior em Z=0, orientação de impressão projetada (maior face plana para baixo, balanços <= 45, pontes < 18, paredes >= 2,0), ordem de construção, lista de asserções.

FASE 3 — CONSTRUIR EM PEQUENOS PASSOS

Por iteração: uma alteração -> forge run part.py --lane <pista> --spec spec.json --name <nome> -> leia verify.json/REPORT.md (volume/bbox mudou o que a alteração deveria causar? nenhuma mudança = booleano descartado) -> leia sheet.png uma vez -> critique -> próxima alteração.

  • Peças móveis = a API Mech (lib/mechkit/core.py): Mech(nome, partes, fixas, [Movimento(nome, acionamento, [Movimentos...], controle=[...])]) -> selftest() varre cada pose, executa o controle de travamento obrigatório ao longo de todo o seu caminho, mede as folgas exatamente. Colisão à prova de construção supera a verificação: arcos/esferas centrados no pivô mantêm a folga constante (giroscópio, juntas flexi); mantenha o volume varrido de cada movimento em seu próprio lado de um plano (pivôs de balisong). Engrenagens: lib/gears.py. Medido, não declarado: forge mech ratio <nome> [--motion M --driven PART --driver PART] posiciona o mecanismo, libera a saída e faz a bissecção para o intervalo livre de contato -> relação medida + folga (ratio.json, saída 3 se discordar da relação declarada). Redutor cicloidal: forge mech build cyclo11 (lib/cycloid.pyperfil exato + verificação de rebaixo). Renders de estúdio:forge showcase --style studio --still hero|cutaway|exploded, --ghost, --annotate`.
  • Pré-impressão no loop para qualquer coisa com balanços: forge preflight out/<nome>/<nome>.stl.
  • Objetos nomeados: Pontuação de Aparência após a passagem de mecânica: forge looks out/<nome>/<nome>.stl --target "<coisa>" (CLIP em renderizações limpas; validado: classificou humano > v2 > v1 balisong). < 30% = itere a FORMA (proporções, características marcantes), não a mecânica. Compare v1 vs v2 com ela em vez de adivinhar.
  • Regras rígidas: nunca julgue de uma visão; sobreponha cortadores em 0,05 mm (faces coplanares deixam peles de espessura zero que SOLDAM pinos: folga medida 0,0 em vez de 0,3); mesma falha duas vezes -> imprima números de sub-partes e rediagnostique; limite de 6 iterações, depois replaneje ou encaminhe para ENCONTRAR. Termine quando a verificação passar em cada chave de especificação, o autoteste passar (movedores), a pré-impressão for GO/GO+SUPORTES, lista de verificação visual toda sim.

FASE 4 — AJUSTE

  • Calibração primeiro: as folgas de impressão no lugar vêm de fit.json. Até que pip_gap seja [V], todo projeto PIP carrega uma PRECAUÇÃO de pré-impressão. O Cartão de Ajuste mede pip_gap (spinners .15-.40) e pip_vgap (dobradiças .25-.45) em uma impressão: depois dele, pergunte "menor número que gira livremente após uma torção firme?" -> forge fit set pip_gap <n> --from "fitcard <data>" (e pip_vgap). Toda construção MechKit/flexify/gridfinity o lê automaticamente.
  • Peças de encaixe / peças ao redor do objeto do usuário: verificação de pose montada bin/verify --assembly a.stl b.stl --clearance <fit> --move-b=x,y,z; dummy do objeto de photofit/parts-find.
  • Amostra apenas para um tipo de interface que o Cartão de Ajuste não cobre (roscas, encaixes de pressão, encaixes de pressão) ou dimensões estimadas: <= 10 min, 3 variantes, rótulos em relevo.

FASE 5 — PREPARAÇÃO DE IMPRESSÃO + ENTREGA

  1. forge preflight <stl> [--slice] -> veredito + decisão de suportes. Peças orgânicas/inclinadas: forge preflight <stl> --orient (tenta inclinações; um capacete queria ~20 graus). forge heat <stl> faz o mapa de calor de suporte vermelho/amarelo para mostrar a ele.
  2. Suportes = chamada da pré-impressão: GO -> desligado; GO+SUPORTES -> ligado/automático; NO-GO -> corrija primeiro (contato de faca, lacunas fundidas, não encaixa -> forge split). "SUPORTES: DESLIGADO (obrigatório)" = armadilha de suporte automático (uma parte inferior plana < 30 graus da horizontal fica a < 2 mm sobre um corpo DIFERENTE; support_angle / support_trap_gap no perfil da impressora): os suportes devem permanecer DESLIGADOS ou eles soldam a lacuna. 2b. Sempre, antes de entregar um arquivo impresso no lugar / com vários corpos a um usuário: forge preflight <stl> depois forge export <stl> (segue automaticamente o veredito; o nome termina em _SUPPORTS-OFF.3mf / _SUPPORTS-ON.3mf). Dê a ele o 3MF e diga: abra este arquivo, verifique se a caixa de Suporte corresponde ao nome do arquivo, não altere mais nada. Se a pré-impressão for NO-GO porque precisa de suportes E os suportes soldariam, corrija a geometria (chanfre partes inferiores planas a 45 graus, reoriente) antes de exportar.
  3. Fatia o 3MF exportado (ou o STL para peças simples de corpo único) no SEU fatiador de escolha com a decisão de suportes da etapa 2 e seu perfil normal; o forge apenas define a caixa de seleção de suportes, através do 3MF. (Opcional: defina slicer_cmd em knowledge/printer.json para que preflight --slice / plate --slice relatam tempo e gramas.)
  4. Mostre ao usuário: folha ou pôster de showcase + tempo/gramas (se o hook estiver definido) + veredito + receita de uma linha. Ofereça forge ar <stl> (USDZ: abre como uma pré-visualização em tamanho real no iPhone/Vision Pro; GLB para Quest) quando tamanho/ajuste for a questão.
  5. Nunca inicie uma impressão sem a aprovação do usuário: "Mesa livre? Iniciando , ~, g."
  6. Relate " pronto para impressão: , g, ." Vendendo? forge showcase <dir> escreve mp4/gif + listing.md (custo, preço sugerido, lembrete de licença).

FASE 6 — FEEDBACK + APRENDIZADO

  1. Uma linha após imprimir: "O que estava errado? (ajuste / aparência / resistência / qualidade de impressão / nada)". Leia qualquer foto.
  2. Folgas -> forge fit set ... (+ uma linha em fit-log.md). Outros números -> fit-log.md / print-tolerances.md [V].
  3. 1-3 linhas em knowledge/lessons.md (data · projeto · lição · fase). Nova técnica -> knowledge/<topic>.md (<= 40 linhas, trecho executável).
  4. Deixe part.py + spec executáveis novamente. Ofereça uma ideia adjacente (cérebro de loja) sem iniciá-la.
  5. Qualquer alteração de skill/ferramenta -> tests/run_suite.sh (verificações de resposta conhecida) e, para reivindicações de capacidade, o bench (forge grade, forge looks) -- prove que melhorou.

A caixa de ferramentas (forge <cmd>)

Lide com o...

Habilidades Relacionadas