Transforme uma foto de origem em uma cúpula de luminária pronta para impressão 3D em duas etapas:
prototype gera uma imagem conceitual estilizada em branco fosco e a transforma em
um modelo 3D oco (GLB), então build executa o processador de luminária nesse modelo
para produzir as peças STL prontas para impressão — uma cúpula de luminária com fundo aberto e uma placa de base
para a fixação da fonte de luz, além do próprio suporte de fixação. As duas etapas são
vinculadas por meio de input_task_id.
Gere uma única imagem conceitual branco-fosco a partir de uma foto de referência e
converta-a em um modelo 3D oco de abajur (lampshade). A resposta traz tanto a
imagem conceitual (image_urls) quanto o modelo 3D (model_urls.glb com uma
thumbnail_url). O ID de tarefa retornado é o que você passa como input_task_id
para o endpoint de build. Consulte
The Lamp Prototype Task Object
para o formato da resposta.
Parâmetros
Name
image_url
Type
string
Obrigatório
Description
Foto de origem que a Meshy usa como referência visual para o abajur. Atualmente suportamos os formatos .jpg, .jpeg, .png e .webp.
Há duas formas de fornecer a imagem:
URL publicamente acessível: Uma URL acessível pela internet pública.
Data URI: Um data URI da imagem codificado em base64. Exemplo de um data URI: data:image/jpeg;base64,<seus dados de imagem codificados em base64>.
Name
image_subject
Type
string
padrão character
Description
Dica de categoria do sujeito que seleciona o prompt de stylization. Valores disponíveis:
character (padrão) — sujeito único de personagem/objeto (boneco, animal, mascote, etc.).
landscape — sujeito de cena externa/panorama (montanha, paisagem urbana, floresta, etc.).
Name
name
Type
string
Description
Nome de tarefa opcional para fins de exibição. Máximo de 100 caracteres.
Name
remove_background
Type
boolean
padrão false
Description
Quando definido como true, a imagem do protótipo é retornada como um PNG RGBA transparente com o fundo removido, para que você possa compor o sujeito sobre qualquer plano de fundo.
Retornos
A propriedade result da resposta contém o id da tarefa da tarefa de protótipo de luminária recém-criada. Faça polling no endpoint Get a Task ou inscreva-se no stream até que a tarefa alcance SUCCEEDED, então passe esse ID para o endpoint de build como input_task_id.
Modos de Falha
Name
400 - Bad Request
Description
A solicitação foi inaceitável. Causas comuns:
Parâmetro ausente: image_url é obrigatório.
Formato de imagem inválido: O image_url fornecido não está em um formato suportado (.jpg, .jpeg, .png, .webp).
Dimensões de imagem fora do intervalo: A imagem é muito pequena, excede o tamanho máximo de arquivo, ou excede a contagem máxima de pixels.
URL inacessível: O image_url não pôde ser baixado (404 ou timeout).
Data URI inválido: A string base64 está malformada.
Conteúdo sinalizado: A imagem de entrada foi sinalizada por moderation de conteúdo adulto ou de propriedade intelectual.
image_subject inválido: Não é um dos valores character / landscape.
Name
401 - Unauthorized
Description
A autenticação falhou. Por favor, verifique sua chave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para realizar esta tarefa.
Name
429 - Too Many Requests
Description
Você excedeu seu limite de taxa.
Request
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1: concept image + hollow 3D lampshade model from a source photocurlhttps://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>", "image_subject": "character" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototype example
Start with a source photo; the prototype returns the concept image and a hollow 3D model that the build stage processes.
Gera as partes finais prontas para impressão 3D a partir de uma tarefa de prototype bem-sucedida.
O build executa o processador de luminária no modelo 3D do prototype: ele escala
o modelo para diameter_mm, achata a base em cut_amount_percent,
oca-o até thickness_mm, abre a base e — quando um preset de
fixture é escolhido — adiciona uma placa base com o furo do fixture e um suporte
separado para a fonte de luz. Consulte
O Objeto da Tarefa de Build de Lamp para o
formato da resposta.
Parâmetros
Name
input_task_id
Type
string
Obrigatório
Description
O ID da tarefa de uma tarefa de prototype criada através deste mesmo endpoint OpenAPI. O prototype deve ter sido criado com a mesma chave de API, deve ter alcançado SUCCEEDED e deve ter produzido um modelo 3D.
Tarefas de prototype criadas através da webapp não são aceitas — o endpoint de build aceita apenas tarefas de prototype produzidas por POST /openapi/creative-lab/lamp/v1/prototype e rejeita qualquer outra origem com 404.
Name
name
Type
string
Description
Nome de tarefa opcional para fins de exibição. Máximo de 100 caracteres.
options
Parâmetros de ajuste opcionais para a geometria da cúpula da luminária. Todo campo tem um valor padrão sensato — envie apenas aqueles que deseja sobrescrever.
Name
diameter_mm
Type
number
padrão 150
Description
Dimensão máxima alvo da caixa delimitadora da cúpula da luminária, em milímetros. A malha é escalada uniformemente para se ajustar. Faixa: [50, 400].
Name
thickness_mm
Type
number
padrão 1
Description
Espessura de parede da cúpula oca da luminária, em milímetros. Faixa: (0, 10].
Name
cut_amount_percent
Type
number
padrão 1
Description
Porcentagem da altura do modelo cortada plana na parte inferior, para que a cúpula da luminária se assente na mesa de impressão e tenha uma abertura para o fixture. Faixa: [1, 100].
Name
light_source_preset
Type
string
padrão bambu_mh001_60mm
Description
Preset de fixture de fonte de luz que determina como a base é construída. Valores disponíveis:
bambu_mh001_60mm (padrão) — cúpula de luminária com base aberta mais uma placa base com um furo de fixture de 60 mm, ambos em model_urls.lamp_stl, e o suporte do fixture como model_urls.base_stl.
none — uma única cúpula de luminária selada em model_urls.lamp_stl; model_urls.base_stl é omitido.
Name
fixture_offset_x_mm
Type
number
padrão 0
Description
Deslocamento no eixo X do furo do fixture na placa base, em relação ao centro da cúpula da luminária, em milímetros. Só é significativo quando light_source_preset ≠ none. Faixa: [-80, 80].
Name
fixture_offset_z_mm
Type
number
padrão 0
Description
Deslocamento no eixo Z (profundidade) do furo do fixture na placa base, em relação ao centro da cúpula da luminária, em milímetros. Só é significativo quando light_source_preset ≠ none. Faixa: [-80, 80].
Name
rotate_x_deg
Type
number
padrão 0
Description
Rotação em torno do eixo X aplicada ao modelo antes do processamento, em graus. As três rotações são aplicadas como ângulos de Euler XYZ em torno do centro do modelo. Faixa: [-360, 360].
Name
rotate_y_deg
Type
number
padrão 0
Description
Rotação em torno do eixo Y aplicada à malha importada antes do processamento, em graus. Faixa: [-360, 360].
Name
rotate_z_deg
Type
number
padrão 0
Description
Rotação em torno do eixo Z aplicada à malha importada antes do processamento, em graus. Faixa: [-360, 360].
Name
include_result_json
Type
boolean
padrão false
Description
Quando true e output.format é zip, inclui o result.json do processador de luminária (nome do pipeline, avisos e caminhos dos artefatos) dentro do pacote. Ignorado quando output.format é stl.
output
Seletor de formato de transmissão opcional. O padrão é stl.
Name
format
Type
string
padrão stl
Description
Pacote de artefatos retornado pelo build. Valores disponíveis:
stl (padrão) — retorna model_urls.lamp_stl (a cúpula da luminária, junto com a placa base quando um preset de fixture é definido), além de model_urls.base_stl quando light_source_preset ≠ none.
zip — empacota todo artefato que o processador emite (lamp.stl, base.stl opcional, result.json opcional) em um único zip e o retorna sob model_urls.bundle_zip.
Retornos
A propriedade result da resposta contém o id da tarefa da tarefa de build de luminária recém-criada. Consulte periodicamente o endpoint Obter uma Tarefa ou inscreva-se no stream até que a tarefa alcance SUCCEEDED, e então baixe os artefatos a partir de model_urls.
Modos de Falha
Name
400 - Bad Request
Description
A requisição foi inaceitável. Causas comuns:
Parâmetro ausente: input_task_id é obrigatório.
UUID inválido: O input_task_id não é um UUID válido.
Pai não concluído com sucesso: A tarefa de prototype referenciada ainda não alcançou SUCCEEDED.
Nenhum modelo: A tarefa de prototype foi bem-sucedida, mas não produziu nenhum modelo 3D.
Opções fora da faixa: Um dos campos de options ficou fora de sua faixa permitida ou conjunto de enum.
Name
401 - Unauthorized
Description
A autenticação falhou. Por favor, verifique sua chave de API.
Name
402 - Payment Required
Description
Créditos insuficientes para realizar esta tarefa.
Name
404 - Not Found
Description
A tarefa de prototype referenciada não existe, pertence a um usuário diferente, ou foi criada através da webapp (apenas tarefas de prototype em modo API se encadeiam em build).
Recupera uma tarefa de prototype ou build a partir de um id de tarefa válido. O caminho da URL
deve corresponder ao estágio da tarefa — uma tarefa de build buscada por meio de
/prototype/:id retorna 404, e vice-versa.
Cancela uma tarefa de luminária. Se a tarefa ainda estiver PENDING, os créditos consumidos
no momento da criação são reembolsados. Tarefas que já estão IN_PROGRESS são
canceladas sem reembolso (o worker pode já estar consumindo recursos).
Tarefas que já atingiram um estado terminal (SUCCEEDED, FAILED,
CANCELED) não podem ser canceladas.
O caminho da URL deve corresponder ao estágio da tarefa — DELETE em
/prototype/:buildId retorna 404.
Parâmetros de Caminho
Name
id
Type
path
Description
Identificador único da tarefa de luminária a ser cancelada.
Retornos
Retorna 204 No Content em caso de sucesso, com corpo vazio.
Modos de Falha
Name
400 - Bad Request
Description
A tarefa já está em um estado terminal e não pode ser cancelada.
Name
404 - Not Found
Description
A tarefa não existe, pertence a um usuário diferente, ou seu estágio não corresponde ao caminho da URL.
Transmite atualizações em tempo real para uma tarefa de luminária via Server-Sent Events (SSE).
O caminho da URL deve corresponder ao estágio da tarefa — abrir um stream em
/prototype/:buildId/stream emite um único payload event: error com
status_code: 404 e encerra o stream.
Parâmetros
Name
id
Type
path
Description
Identificador único da tarefa de luminária a ser transmitida.
Retornos
Retorna um stream de objetos de tarefa Lamp Prototype
ou Lamp Build como
Server-Sent Events. Cada quadro carrega o objeto de tarefa completo do estágio — o mesmo formato que o
endpoint Get retorna — então, enquanto a tarefa está PENDING ou IN_PROGRESS, os
campos de saída simplesmente ainda não estão preenchidos (null, [] ou {}) e
finished_at é null.
// Error event example (wrong stage or task not found)event: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// Every frame is the full task object; fields not yet populated are null / empty.// The PENDING frame below is abbreviated to the fields that change.event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-lamp-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 6,"model_urls": {"lamp_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/lamp.stl?Expires=***","base_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/base.stl?Expires=***" }}
Recupera uma lista paginada das suas tarefas de luminária para um único estágio. O caminho
da URL seleciona o estágio — /prototype retorna tarefas de protótipo; /build
retorna tarefas de build. Tarefas do outro estágio não são incluídas em nenhuma das
respostas.
Parâmetros de Caminho
Name
stage
Type
path
Obrigatório
Description
prototype ou build. A coleção retorna apenas tarefas
cujo estágio corresponde à URL — buscar em /prototype nunca retorna
tarefas de build e vice-versa.
Parâmetros de Consulta
Name
page_num
Type
integer
padrão 1
Description
Número da página para paginação.
Name
page_size
Type
integer
padrão 10
Description
Limite do tamanho da página. O máximo permitido é 100 itens.
Name
sort_by
Type
string
padrão -created_at
Description
Campo pelo qual ordenar. Valores disponíveis:
+created_at: Ordena pelo horário de criação em ordem crescente.
-created_at: Ordena pelo horário de criação em ordem decrescente.
O objeto Lamp Prototype Task é uma unidade de trabalho que a Meshy monitora para
gerar uma imagem de conceito estilizada em branco fosco a partir de uma foto de origem e
convertê-la em um modelo 3D oco. A saída desta etapa é encadeada em
a etapa de build por meio de input_task_id.
Properties
Name
id
Type
string
Description
Identificador único para a tarefa. Embora usemos um UUID k-sortable para ids de tarefa como detalhe de implementação, você não deve fazer suposições sobre o formato do id.
Name
type
Type
string
Description
Tipo da tarefa. O valor é creative-lab-lamp-prototype.
Name
name
Type
string
Description
O nome da tarefa fornecido quando a tarefa foi criada. String vazia se nenhum nome foi fornecido.
Name
status
Type
string
Description
Status da tarefa. Os valores possíveis são um de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress da tarefa. Se a tarefa ainda não foi iniciada, essa propriedade será 0. Assim que a tarefa for concluída com sucesso, ela se tornará 100.
Name
created_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi criada, em milissegundos.
Um carimbo de data/hora representa o número de milissegundos decorridos desde 1º de janeiro de 1970 UTC, seguindo
o padrão RFC 3339.
Por exemplo, sexta-feira, 1º de setembro de 2023, 12:00:00 PM GMT é representado como 1693569600000. Isso se aplica
a todos os carimbos de data/hora na Meshy API.
Name
started_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi iniciada, em milissegundos. Se a tarefa ainda não foi iniciada, essa propriedade será 0.
Name
finished_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi finalizada, em milissegundos. Se a tarefa ainda não foi finalizada, essa propriedade será 0.
Name
expires_at
Type
timestamp
Description
Carimbo de data/hora de quando o resultado da tarefa expira, em milissegundos.
Name
preceding_tasks
Type
integer
Description
A contagem de tarefas precedentes.
O valor deste campo é significativo apenas se o status da tarefa for PENDING.
Name
task_error
Type
object
Description
Detalhes de erro para tarefas com falha. Consulte Erros para a referência completa do objeto task_error.
Name
consumed_credits
Type
integer
Description
O número de créditos consumidos por esta tarefa. Presente quando o status da tarefa for PENDING, IN_PROGRESS ou SUCCEEDED. Retorna 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).
Name
model_urls
Type
object
Description
URLs para download do modelo 3D gerado a partir da imagem de conceito. Presente assim que a tarefa for concluída com sucesso; {} antes disso.
Name
glb
Type
string
Description
URL para download do modelo de abajur oco em branco fosco no formato GLB. Este é o modelo processado pela etapa de build.
Name
thumbnail_url
Type
string
Description
URL para download de uma prévia renderizada do modelo 3D. String vazia até que a tarefa seja concluída com sucesso.
Name
image_urls
Type
array of strings
Description
URLs para download dos candidatos a imagem de conceito gerados por esta tarefa de protótipo. Atualmente, a API sempre retorna exatamente um candidato; o campo é um array para que revisões futuras possam exibir múltiplos candidatos sem uma alteração incompatível.
O objeto Lamp Build Task é uma unidade de trabalho que a Meshy monitora para
gerar a cúpula de luminária final, pronta para impressão 3D, a partir de uma tarefa de protótipo bem-sucedida.
O build executa o processador de luminária no modelo 3D do protótipo para esvaziá-lo,
achatar e abrir a base e (com um predefinição de fixação) adicionar a placa de base
e o suporte de fixação.
Propriedades
Name
id
Type
string
Description
Identificador único para a tarefa.
Name
type
Type
string
Description
Tipo da tarefa. O valor é creative-lab-lamp-build.
Name
name
Type
string
Description
O nome da tarefa fornecido quando ela foi criada. String vazia se nenhum nome tiver sido fornecido.
Name
status
Type
string
Description
Status da tarefa. Os valores possíveis são um de PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progresso da tarefa. Se a tarefa ainda não tiver começado, essa propriedade será 0. Assim que a tarefa for concluída com sucesso, isso se tornará 100.
Name
created_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi criada, em milissegundos.
Name
started_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi iniciada, em milissegundos.
Name
finished_at
Type
timestamp
Description
Carimbo de data/hora de quando a tarefa foi finalizada, em milissegundos.
Name
expires_at
Type
timestamp
Description
Carimbo de data/hora de quando o resultado da tarefa expira, em milissegundos.
Name
preceding_tasks
Type
integer
Description
A contagem de tarefas precedentes. Significativo apenas quando o status é PENDING.
Name
task_error
Type
object
Description
Detalhes de erro para tarefas com falha. Consulte Erros para a referência completa do objeto task_error.
Name
consumed_credits
Type
integer
Description
O número de créditos consumidos por esta tarefa. Retorna 0 para tarefas FAILED (os créditos são reembolsados em caso de falha).
Name
model_urls
Type
object
Description
URLs para download dos artefatos gerados, indexadas pelo nome do artefato. O conjunto de chaves depende de output.format e options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL para download de lamp.stl: a cúpula de luminária de fundo aberto junto com a placa de base que carrega o furo de fixação, ou uma única cúpula de luminária selada quando options.light_source_preset era none. Presente quando output.format era stl (o padrão).
Name
base_stl
Type
string
Description
URL para download de base.stl, o suporte de fixação da fonte de luz. Presente quando output.format era stleoptions.light_source_preset não era none. Omitido quando a predefinição de fixação era none.
Name
bundle_zip
Type
string
Description
URL para download de um pacote zip de todos os artefatos emitidos pelo processador (lamp.stl, base.stl opcional e — quando options.include_result_json for true — result.json). Presente quando output.format era zip. Quando bundle_zip está presente, lamp_stl / base_stl são omitidos.