Como criar uma skill de Blender no Codex para gerar um modelo 3D a partir de uma imagem

estrutura de arquivos da skill de Blender no Codex com SKILL.md configurado
Resposta rápida

Criar uma skill de Blender no Codex é montar um diretório com um SKILL.md (frontmatter YAML com name e description) no lugar que o Codex varre: $HOME/.agents/skills (pessoal) ou .agents/skills no repositório. Dentro do arquivo você registra o caminho absoluto do Blender instalado, manda rodar bpy com o Python embutido e salvar a saída em caminho absoluto. O Codex detecta a skill automaticamente (reiniciar só é necessário se ela não aparecer); depois é só colar a imagem de referência com limites explícitos e conferir o .blend no Blender ou no .blend URL Viewer. Simon Willison documentou esse fluxo em 09/09/2026, com execução de 17m51s no macOS

Cola uma imagem no agente, espera, e do outro lado cai um arquivo .blend com o modelo 3D

Não é papo de prompt mágico, é caso documentado. Em 9 de setembro de 2026, Simon Willison publicou um experimento em que colou uma imagem gerada no ChatGPT Images 2.5 dentro do Codex rodando GPT-6 Astra (high) e pediu pra skill local de Blender construir o modelo. O agente ficou 17 minutos e 51 segundos mastigando e devolveu vários arquivos .blend

O que vem abaixo é o caminho pra você montar a mesma tarefa na sua máquina: uma skill de Blender no Codex, o comando headless documentado, os limites no prompt e a conferência do resultado. Bora ver na prática?

O que Simon Willison documentou e por que isso importa

A imagem de partida nasceu no próprio ChatGPT Images 2.5, com um pedido de foto de um ovo Fabergé temático da série Pluribus

Depois ele colou essa imagem no Codex e pediu, em texto simples, pra skill local de Blender criar o modelo do objeto a partir daquela imagem

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

Resultado: 17m51s de execução e vários arquivos .blend gerados

E o pulo do gato: a skill usada está aberta. Ela nasceu antes, no projeto do pelicano de bicicleta, e o conteúdo do SKILL.md ficou publicado lá: o SKILL.md do blender-local, no caminho outputs/blender-local/SKILL.md do repositório simonw/gpt-6-astra-blender-pelican-bicycle

Ou seja: as regras que o agente seguiu estão documentadas nesse repositório, pra qualquer um ler. Nada de caixa preta aqui

Pra fechar o ciclo, ele também publicou o .blend URL Viewer, um visualizador web de arquivos .blend que roda no navegador

Uma ressalva importante antes de tu se empolgar:

Isso é relato de UM usuário, no macOS

E o tempo varia muito por tarefa. No TIL anterior do mesmo autor, o pelicano de bicicleta passou por três prompts iterativos (render, add flair, make it better), levando 2m39s, 3m51s e 5m59s, com GPT-6 Astra (Medium). Comparado com os 17m51s do ovo, dá o recado: a duração depende do que tu pede, não é número fixo

Esse padrão de descrever em texto e receber um artefato pronto já vinha aparecendo em outras frentes, tipo automações criadas a partir de prompts no n8n. A diferença aqui é que o entregável é geometria 3D

O que você precisa antes de começar

Lista curta, e tudo verificável:

  • Blender desktop instalado, baixado do blender.org. O pré-requisito descrito no TIL é justamente esse: instalar o app e depois apontar o agente pro Blender já instalado
  • O caminho do executável. No macOS, o documentado é /Applications/Blender.app/Contents/MacOS/Blender
  • Codex com acesso ao GPT-6 Astra. O modelo foi lançado pela OpenAI em 3 de setembro de 2026, e assinantes Plus têm Astra em Work e Codex (o uso em Chat exige plano Pro)
  • Uma imagem de referência pra colar na sessão
  • Um diretório de entrega pros arquivos que vão sair
  • Olho na sandbox da sessão. O SKILL.md registra que a primeira execução em sandbox terminou com código de saída 139, e que a repetição sem sandbox funcionou

Sobre versão do Blender: a estável mais recente é a 5.2 LTS, lançada em 14 de julho de 2026. Se tu for usar o visualizador depois, isso importa: ele tem melhor suporte a arquivos Blender 5.x

Tome cuidado! Os caminhos e comandos citados aqui são de macOS, que é o sistema do relato original

Passo a passo: criar a skill de Blender e gerar o .blend a partir da imagem

  1. Instale o Blender e confirme o executável

Baixa do blender.org, instala e confirma que o binário responde. No macOS, o comando documentado pra rodar em modo headless é este:

/Applications/Blender.app/Contents/MacOS/Blender --background --python scene.py

--background é o que faz ele rodar sem abrir interface, e --python aponta o script que monta a cena

Erro comum deste passo: achar que "tem Blender instalado" basta. O agente precisa do caminho absoluto do executável, escrito em algum lugar que ele leia. Se tu não registrar isso, ele vai tentar adivinhar

  1. Crie o diretório da skill onde o Codex varre

O Codex procura skills em três lugares: no pessoal, $HOME/.agents/skills; no repositório, em .agents/skills, varrido de cada diretório do cwd até a raiz do repo; e, em ambientes com administração central, em /etc/codex/skills. Pra uso individual, os dois primeiros são os que interessam

mkdir -p ~/.agents/skills/blender-local

Erro comum deste passo: jogar a pasta em um caminho aleatório do projeto e ficar bravo porque a skill "não existe". Se não está em um dos lugares acima, o Codex não vê

  1. Escreva o SKILL.md

No Codex, uma skill é um diretório com um arquivo SKILL.md, e esse arquivo precisa de frontmatter YAML com name e description. Pastas como scripts/, references/, assets/ e agents/ são opcionais

Erro comum deste passo: escrever uma description vaga. É ela que diz ao agente QUANDO puxar a skill. Se tu escrever "ajuda com 3D", não reclama depois que ele não acionou

  1. Registre as regras operacionais dentro do SKILL.md

Aqui é o coração da coisa. O SKILL.md publicado por Willison registra o executável verificado, orienta rodar scripts bpy com o Python embutido do Blender (não com um interpretador Python comum), usar caminhos de saída absolutos, criar o diretório de destino e salvar tanto o .blend quanto o PNG renderizado no diretório de entrega da tarefa

Um esqueleto no mesmo espírito:

---
name: blender-local
description: Gera modelos 3D com o Blender instalado nesta maquina, rodando scripts bpy em modo headless e salvando .blend + PNG no diretorio de entrega da tarefa.
---

# Blender Local

## Executavel

/Applications/Blender.app/Contents/MacOS/Blender

## Como rodar

/Applications/Blender.app/Contents/MacOS/Blender --background --python scene.py

Rode os scripts bpy com o Python embutido do Blender, nunca com um
interpretador Python comum.

## Saida

- Use sempre caminhos de saida absolutos
- Crie o diretorio de destino antes de salvar
- Salve o arquivo .blend e tambem o PNG renderizado no diretorio de
  entrega da tarefa

Erro comum deste passo: deixar caminho relativo. Agente muda de diretório de trabalho no meio da execução e o teu .blend vai parar em um lugar que ninguém acha

  1. Confirme que o Codex reconheceu a skill

O Codex detecta alterações de skill automaticamente. Só é preciso reiniciar a sessão se a atualização não aparecer

E dá pra desabilitar uma skill sem apagar: entradas [[skills.config]] no ~/.codex/config.toml com enabled = false

Erro comum deste passo: editar o SKILL.md e presumir que precisa reabrir tudo do zero. Na prática, o Codex já enxerga a mudança sozinho na maioria dos casos; reiniciar é só o plano B se ela não aparecer

  1. Cole a imagem e escreva o prompt com limites explícitos

O prompt original foi seco e curto, servindo de referência de formato: pedir pra skill local de Blender criar o modelo do objeto da imagem

Só que quanto mais aberto o pedido, mais tempo de execução. Então vale amarrar o escopo no próprio prompt: escala do objeto, número máximo de objetos na cena e materiais simples. Escopo apertado é o que evita o agente sair modelando um universo

Erro comum deste passo: pedir "um modelo detalhado e realista". Aí tu assina um cheque em branco de tempo e de token

  1. Confira o resultado

Duas opções: abrir o .blend direto no Blender, ou usar o visualizador web

O .blend URL Viewer funciona colando a URL de um arquivo .blend acessível por CORS, ou um link de repositório do GitHub, que ele resolve através do jsDelivr. Ele renderiza geometria de malha com materiais, iluminação e a posição de câmera salva, e conta com controles de órbita, modo wireframe e ajuste de enquadramento

Melhor suporte é pra arquivos Blender 5.x

Erro comum deste passo: confiar no viewer como se fosse render final. É uma pré-visualização aproximada, então a validação de verdade só acontece abrindo o arquivo no Blender

O que costuma dar errado (e como contornar)

Exit code 139 na primeira execução:

O próprio SKILL.md registra que a primeira execução em sandbox terminou com código de saída 139 e que a repetição sem sandbox funcionou

Prevenção: não trate o primeiro crash como "não funciona". Olha a configuração de sandbox da tua sessão antes de jogar a toalha

Execução longa comendo token:

17m51s no caso do ovo. E 2m39s, 3m51s e 5m59s nos três prompts iterativos do TIL anterior

Prevenção: começa por objeto único, com poucos elementos. Escopo apertado no prompt é o teu freio, e mede o custo na tua própria conta antes de escalar

Geometria aproximada e material que não bate:

Aproximação é a regra aqui: o agente monta a geometria lendo uma imagem de referência, e não copiando medida

Prevenção: pede materiais simples desde o início. Material errado é mais fácil de trocar à mão do que geometria bagunçada

Pré-visualização enganosa:

O viewer entrega uma aproximação, não o resultado final: materiais, texto e modificadores não aplicados podem não aparecer fielmente

Prevenção: validação final sempre abrindo o .blend no Blender

Script rodado com Python comum:

Clássico. bpy precisa do Python embutido do Blender, e é justamente uma das regras registradas no SKILL.md

Prevenção: deixa o comando headless escrito no arquivo de skill, com o caminho absoluto do executável. Se está escrito, o agente não improvisa

Saída que desaparece:

Caminho relativo ou diretório de destino que não existe

Prevenção: caminho absoluto e criação do diretório antes de salvar, também registrados como regra no arquivo de skill

O que dá para esperar do resultado (e o que não dá)

O que um agente monta sozinho, em uma execução, a partir de uma imagem colada, é bem massa como demonstração de capacidade

Mas cuidado com a leitura fácil: geometria gerada por um agente a partir de imagem não vem com garantia de topologia limpa nem de otimização: é esperado precisar de ajuste manual antes de qualquer uso além de rascunho

Ou seja: não é ativo pronto pra produção

Tratar como rascunho e revisar à mão antes de qualquer uso real é o único caminho honesto aqui

Para quem essa skill faz sentido

Onde o fluxo agrega de verdade:

  • Blocagem rápida de forma a partir de uma referência visual, só pra sair do canvas vazio
  • Protótipo descartável, aquele que existe pra tu decidir se a ideia se sustenta
  • Estudo de composição, testando proporção e arranjo de elementos
  • Base de cena pra tu ajustar à mão depois, aproveitando iluminação e câmera já posicionadas

Onde NÃO vale:

  • Asset final que vai pro cliente
  • Qualquer coisa que exija topologia limpa
  • Trabalho com precisão dimensional

É mais ou menos a mesma lógica de quando a IA gera slides a partir das suas fontes: o primeiro rascunho economiza um tempo absurdo, a versão que tu entrega ainda passa pela tua mão

E se tu quiser estudar exemplos de skill do Codex pra copiar o formato, atenção: o repositório openai/skills está marcado como descontinuado, com indicação de usar o repositório de Plugins da OpenAI pros exemplos atuais

Próximo passo

O caminho reprodutível aqui não tem mistério: skill simples com SKILL.md bem descrito, comando headless documentado, limites explícitos no prompt e conferência no viewer ou direto no Blender

Começa por um objeto único e simples, desses que tu consegue julgar de olho se ficou parecido

Mede tempo e custo na tua própria conta antes de mandar tarefa grande

E guarda o SKILL.md versionado no repositório, em .agents/skills, pra skill viajar com o projeto e não morrer na tua home

Qualquer dúvida, bora trocar uma ideia nos comentários… até o próximo post! 😀

Perguntas frequentes

A skill de Blender no Codex funciona em qualquer sistema operacional?

O relato documentado por Simon Willison é no macOS, com o executável em /Applications/Blender.app/Contents/MacOS/Blender, e os caminhos e comandos deste passo a passo seguem esse mesmo sistema. Em outro sistema operacional, o caminho do executável do Blender na sua máquina é o que precisa entrar no arquivo da skill.

Quanto tempo leva pra gerar um modelo 3D a partir de uma imagem com essa skill?

No experimento do ovo Fabergé temático de Pluribus, a execução levou 17 minutos e 51 segundos. Mas isso varia bastante: um teste anterior com pelicano de bicicleta passou por três prompts iterativos (render, add flair, make it better), levando 2m39s, 3m51s e 5m59s, então o tempo depende da complexidade do pedido.

Preciso saber programar em Python pra usar a skill de Blender?

O SKILL.md documentado orienta rodar scripts bpy usando o Python embutido do próprio Blender, não um interpretador Python comum instalado separadamente. É o agente quem escreve e executa esse script, seguindo as regras registradas no arquivo da skill.

Dá pra visualizar o arquivo .blend gerado sem abrir o Blender?

Sim, Willison publicou o .blend URL Viewer, um visualizador web que aceita URL de arquivo .blend acessível por CORS ou link de repositório do GitHub (resolvido via jsDelivr). Ele tem melhor suporte a arquivos Blender 5.x e conta com controles de órbita, wireframe e ajuste de enquadramento.

O GPT-6 Astra usado no experimento está disponível em qualquer plano do ChatGPT?

Assinantes Plus já têm acesso ao GPT-6 Astra dentro do Work e do Codex. Já o uso do modelo no Chat exige o plano Pro, então o acesso muda conforme onde você vai usar o modelo.

O que fazer se a execução do script Blender falhar com erro de sandbox?

Como já citado no passo a passo, a primeira execução em sandbox terminou com código de saída 139 e a repetição da mesma tarefa sem sandbox funcionou. Então, se esbarrar nesse erro, vale checar a configuração de sandbox da sessão e tentar de novo no modo unsandboxed.



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares