Creative Lab — API для лампи

Перетворіть вихідну фотографію на абажур, придатний для 3D-друку, у два етапи: prototype генерує стилізоване концептуальне зображення матово-білого кольору та перетворює його на порожню 3D-модель (GLB), а потім build запускає процесор лампи на цій моделі, щоб отримати придатні для друку частини у форматі STL — абажур з відкритим низом та базовою пластиною для кріплення джерела світла, а також саме кріплення. Ці два етапи пов’язані через input_task_id.

  • POST /openapi/creative-lab/lamp/v1/prototype
  • POST /openapi/creative-lab/lamp/v1/build

POST/openapi/creative-lab/lamp/v1/prototype

Створення завдання прототипу лампи

Створіть єдине матово-біле концептуальне зображення з референсного фото та конвертуйте його в порожню 3D-модель абажура лампи. Відповідь містить як концептуальне зображення (image_urls), так і 3D-модель (model_urls.glb з thumbnail_url). Повернений ID завдання — це те, що ви передаєте як input_task_id до кінцевої точки збірки. Зверніться до розділу Об'єкт завдання прототипу лампи для отримання інформації про формат відповіді.

Параметри

  • Name
    image_url
    Type
    string
    Обов'язковий
    Description

    Вихідне фото, яке Meshy використовує як візуальний референс для абажура лампи. Наразі підтримуються формати .jpg, .jpeg, .png та .webp.

    Існує два способи надати зображення:

    • Загальнодоступне URL-посилання: URL-адреса, доступна з публічного інтернету.
    • Data URI: зображення, закодоване у формат base64. Приклад Data URI: data:image/jpeg;base64,<ваші дані зображення, закодовані у base64>.
  • Name
    image_subject
    Type
    string
    за замовчуванням character
    Description

    Підказка щодо категорії суб'єкта, яка вибирає prompt для стилізації. Доступні значення:

    • character (за замовчуванням) — суб'єкт у вигляді одного персонажа/об'єкта (фігурка, тварина, талісман тощо).
    • landscape — суб'єкт у вигляді сцени на відкритому повітрі/панорами (гора, міський пейзаж, ліс тощо).
  • Name
    name
    Type
    string
    Description

    Необов'язкова назва завдання для відображення. Максимум 100 символів.

  • Name
    remove_background
    Type
    boolean
    за замовчуванням false
    Description

    Якщо встановлено значення true, зображення прототипу повертається як прозорий RGBA PNG з видаленим фоном, щоб ви могли компонувати суб'єкт на будь-якому фоні.

Повертає

Властивість result відповіді містить id завдання новоствореного прототипу лампи. Опитуйте кінцеву точку Отримання завдання або підпишіться на потік, поки завдання не досягне статусу SUCCEEDED, а потім передайте цей ID до кінцевої точки збірки як input_task_id.

Режими відмов

  • Name
    400 - Bad Request
    Description

    Запит неприйнятний. Поширені причини:

    • Відсутній параметр: image_url є обов'язковим.
    • Недійсний формат зображення: наданий image_url не має підтримуваного формату (.jpg, .jpeg, .png, .webp).
    • Розміри зображення поза допустимим діапазоном: зображення занадто мале, перевищує максимальний розмір файлу або максимальну кількість пікселів.
    • Недосяжна URL-адреса: image_url не вдалося завантажити (404 або timeout).
    • Недійсний Data URI: рядок base64 має неправильний формат.
    • Позначено як недопустиме: вхідне зображення було позначено через moderation щодо NSFW-контенту або прав інтелектуальної власності.
    • Недійсне значення image_subject: не є одним із character / landscape.
  • Name
    401 - Unauthorized
    Description

    Помилка автентифікації. Перевірте свій API-ключ.

  • Name
    402 - Payment Required
    Description

    Недостатньо кредитів для виконання цього завдання.

  • Name
    429 - Too Many Requests
    Description

    Ви перевищили обмеження частоти.

Request

POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1: concept image + hollow 3D lampshade model from a source photo
curl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \
  -X POST \
  -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"
}
Приклад прототипу
Почніть з вихідного фото; прототип повертає концептуальне зображення та порожню 3D-модель, яку обробляє етап збірки.
Вихідне фото кота, використане як вхідні дані для Creative Lab Lamp
Вхідні дані прототипу
Результат прототипу Creative Lab Lamp, згенерований з вихідного фото
Результат прототипу

POST/openapi/creative-lab/lamp/v1/build

Створення завдання побудови лампи

Створіть фінальні деталі для 3D-друку з успішно виконаного завдання прототипу. Побудова запускає процесор лампи на 3D-моделі прототипу: масштабує модель до diameter_mm, вирівнює нижню частину на cut_amount_percent, порожнить її до thickness_mm, відкриває дно та — якщо обрано пресет кріплення — додає базову пластину з отвором для кріплення та окреме кріплення для джерела світла. Дивіться Об'єкт завдання побудови лампи для формату відповіді.

Параметри

  • Name
    input_task_id
    Type
    string
    Обов'язковий
    Description

    ID завдання прототипу, створеного через ту саму кінцеву точку OpenAPI. Прототип мав бути створений з тим самим API-ключем, мав досягти статусу SUCCEEDED та мав створити 3D-модель.

    Завдання прототипу, створені через вебзастосунок, не приймаються — кінцева точка build приймає лише завдання прототипу, створені через POST /openapi/creative-lab/lamp/v1/prototype, і відхиляє будь-яке інше джерело з кодом 404.

  • Name
    name
    Type
    string
    Description

    Необов'язкова назва завдання для відображення. Максимум 100 символів.

options

Необов'язкові параметри налаштування геометрії абажура. Кожне поле має розумне значення за замовчуванням — надсилайте лише ті, які хочете перевизначити.

  • Name
    diameter_mm
    Type
    number
    за замовчуванням 150
    Description

    Цільовий максимальний розмір обмежувального паралелепіпеда абажура, у міліметрах. Сітка рівномірно масштабується для відповідності. Діапазон: [50, 400].

  • Name
    thickness_mm
    Type
    number
    за замовчуванням 1
    Description

    Товщина стінки порожнього абажура, у міліметрах. Діапазон: (0, 10].

  • Name
    cut_amount_percent
    Type
    number
    за замовчуванням 1
    Description

    Відсоток висоти моделі, який зрізається знизу, щоб абажур розташовувався на друкувальній платформі та мав отвір для кріплення. Діапазон: [1, 100].

  • Name
    light_source_preset
    Type
    string
    за замовчуванням bambu_mh001_60mm
    Description

    Пресет кріплення джерела світла, який визначає, як формується нижня частина. Доступні значення:

    • bambu_mh001_60mm (за замовчуванням) — абажур з відкритим дном плюс базова пластина з отвором для кріплення 60 мм, обидва в model_urls.lamp_stl, а кріплення фіксатора — у model_urls.base_stl.
    • none — один суцільний абажур у model_urls.lamp_stl; model_urls.base_stl відсутній.
  • Name
    fixture_offset_x_mm
    Type
    number
    за замовчуванням 0
    Description

    Зміщення отвору кріплення по осі X на базовій пластині відносно центру абажура, у міліметрах. Має значення лише коли light_source_presetnone. Діапазон: [-80, 80].

  • Name
    fixture_offset_z_mm
    Type
    number
    за замовчуванням 0
    Description

    Зміщення отвору кріплення по осі Z (глибина) на базовій пластині відносно центру абажура, у міліметрах. Має значення лише коли light_source_presetnone. Діапазон: [-80, 80].

  • Name
    rotate_x_deg
    Type
    number
    за замовчуванням 0
    Description

    Обертання навколо осі X, застосоване до моделі перед обробкою, у градусах. Три обертання застосовуються як кути Ейлера XYZ навколо центру моделі. Діапазон: [-360, 360].

  • Name
    rotate_y_deg
    Type
    number
    за замовчуванням 0
    Description

    Обертання навколо осі Y, застосоване до імпортованої сітки перед обробкою, у градусах. Діапазон: [-360, 360].

  • Name
    rotate_z_deg
    Type
    number
    за замовчуванням 0
    Description

    Обертання навколо осі Z, застосоване до імпортованої сітки перед обробкою, у градусах. Діапазон: [-360, 360].

  • Name
    include_result_json
    Type
    boolean
    за замовчуванням false
    Description

    Якщо true і output.format дорівнює zip, включає result.json процесора лампи (назва конвеєра, попередження та шляхи артефактів) до пакета. Ігнорується, якщо output.format дорівнює stl.

output

Необов'язковий селектор формату передачі. За замовчуванням stl.

  • Name
    format
    Type
    string
    за замовчуванням stl
    Description

    Пакет артефактів, повернутий побудовою. Доступні значення:

    • stl (за замовчуванням) — повертає model_urls.lamp_stl (абажур разом із базовою пластиною, якщо встановлено пресет кріплення), а також model_urls.base_stl, якщо light_source_presetnone.
    • zip — упаковує всі артефакти, згенеровані процесором (lamp.stl, необов'язковий base.stl, необов'язковий result.json), в один zip-файл і повертає його в model_urls.bundle_zip.

Повернення

Властивість result відповіді містить id завдання щойно створеного завдання побудови лампи. Опитуйте кінцеву точку Отримання завдання або підпишіться на потік, доки завдання не досягне статусу SUCCEEDED, а потім завантажте артефакти з model_urls.

Режими збою

  • Name
    400 - Bad Request
    Description

    Запит неприйнятний. Поширені причини:

    • Відсутній параметр: input_task_id є обов'язковим.
    • Недійсний UUID: input_task_id не є дійсним UUID.
    • Батьківське завдання не завершилося успішно: Вказане завдання прототипу ще не досягло статусу SUCCEEDED.
    • Немає моделі: Завдання прототипу завершилося успішно, але не створило 3D-модель.
    • Параметри поза діапазоном: Одне з полів options вийшло за межі дозволеного діапазону або набору значень.
  • Name
    401 - Unauthorized
    Description

    Помилка автентифікації. Перевірте свій API-ключ.

  • Name
    402 - Payment Required
    Description

    Недостатньо кредитів для виконання цього завдання.

  • Name
    404 - Not Found
    Description

    Вказане завдання прототипу не існує, належить іншому користувачу або було створене через вебзастосунок (лише завдання прототипу, створені в режимі API, можуть використовуватися для побудови).

  • Name
    429 - Too Many Requests
    Description

    Ви перевищили обмеження частоти.

Request

POST
/openapi/creative-lab/lamp/v1/build
# Stage 2: chain build off a succeeded prototype task
curl https://api.meshy.ai/openapi/creative-lab/lamp/v1/build \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "options": {
      "diameter_mm": 120,
      "thickness_mm": 2,
      "light_source_preset": "bambu_mh001_60mm",
      "cut_amount_percent": 30
    },
    "output": {
      "format": "stl"
    }
  }'

Response

{
  "result": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb"
}
Приклад побудови
Завдання побудови перетворює 3D-модель прототипу на деталі абажура, придатні для друку.
Попередній перегляд моделі побудови лампи Creative Lab
Попередній перегляд моделі побудови

GET/openapi/creative-lab/lamp/v1/(prototype|build)/:id

Отримати завдання Lamp

Отримайте завдання прототипу або збірки за дійсним id завдання. Шлях URL має відповідати етапу завдання — якщо завдання збірки запитати через /prototype/:id, повертається 404, і навпаки.

Зверніться до Об'єкт завдання прототипу Lamp та Об'єкт завдання збірки Lamp для ознайомлення з форматами відповіді.

Параметри

  • Name
    id
    Type
    path
    Description

    Унікальний ідентифікатор завдання lamp для отримання.

Повертає

Відповідь містить об'єкт завдання lamp. Формат залежить від того, який етап було запитано.

Request

GET
/openapi/creative-lab/lamp/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578
# Prototype
curl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

# Build
curl https://api.meshy.ai/openapi/creative-lab/lamp/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Prototype Response

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-lamp-prototype",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 30,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

Build Response

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-lamp-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "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=***"
  }
}

DELETE/openapi/creative-lab/lamp/v1/(prototype|build)/:id

Видалити завдання лампи

Скасувати завдання лампи. Якщо завдання ще PENDING, кредити, спожиті під час створення, повертаються. Завдання, які вже IN_PROGRESS, скасовуються без повернення коштів (працівник може вже використовувати ресурси). Завдання, які вже досягли кінцевого стану (SUCCEEDED, FAILED, CANCELED), не можуть бути скасовані.

Шлях URL повинен відповідати етапу завдання — DELETE на /prototype/:buildId повертає 404.

Параметри шляху

  • Name
    id
    Type
    path
    Description

    Унікальний ідентифікатор завдання лампи для скасування.

Повернення

Повертає 204 No Content у разі успіху з порожнім тілом.

Режими відмови

  • Name
    400 - Bad Request
    Description

    Завдання вже знаходиться в кінцевому стані і не може бути скасоване.

  • Name
    404 - Not Found
    Description

    Завдання не існує, належить іншому користувачу або його етап не відповідає шляху URL.

Запит

DELETE
/openapi/creative-lab/lamp/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578
curl --request DELETE \
  --url https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype/018a210d-8ba4-705c-b111-1f1776f7f578 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Відповідь

// Returns 204 No Content on success (empty body).

GET/openapi/creative-lab/lamp/v1/(prototype|build)/:id/stream

Транслювати завдання лампи

Транслює оновлення завдання лампи в реальному часі через Server-Sent Events (SSE). Шлях URL повинен відповідати етапу завдання — відкриття потоку за адресою /prototype/:buildId/stream видає одне корисне навантаження event: error зі status_code: 404 та закриває потік.

Параметри

  • Name
    id
    Type
    path
    Description

    Унікальний ідентифікатор завдання лампи для трансляції.

Повертає

Повертає потік об'єктів завдання Lamp Prototype або Lamp Build у формі Server-Sent Events. Для завдань зі статусом PENDING або IN_PROGRESS потік відповіді включатиме лише необхідні поля progress та status.

Request

GET
/openapi/creative-lab/lamp/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream
curl -N https://api.meshy.ai/openapi/creative-lab/lamp/v1/build/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example (wrong stage or task not found)
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "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=***"
  }
}

GET/openapi/creative-lab/lamp/v1/(prototype|build)

Отримати список завдань лампи

Отримайте список завдань лампи для одного етапу з пагінацією. Шлях URL визначає етап — /prototype повертає завдання прототипування; /build повертає завдання побудови. Завдання з іншого етапу не включаються до жодної з відповідей.

Параметри шляху

  • Name
    stage
    Type
    path
    Обов'язковий
    Description

    prototype або build. Колекція повертає лише завдання, чий етап відповідає URL — запит до /prototype ніколи не повертає завдання побудови, і навпаки.

Параметри запиту

  • Name
    page_num
    Type
    integer
    за замовчуванням 1
    Description

    Номер сторінки для пагінації.

  • Name
    page_size
    Type
    integer
    за замовчуванням 10
    Description

    Обмеження розміру сторінки. Максимально допустиме значення — 50 елементів.

  • Name
    sort_by
    Type
    string
    за замовчуванням -created_at
    Description

    Поле для сортування. Доступні значення:

    • +created_at: Сортування за часом створення в порядку зростання.
    • -created_at: Сортування за часом створення в порядку спадання.

Повертає

Повертає список об'єктів завдання відповідного етапу з пагінацією — або об'єкт завдання прототипування лампи під час отримання списку /prototype, або об'єкт завдання побудови лампи під час отримання списку /build.

Request

GET
/openapi/creative-lab/lamp/v1/prototype
# List prototype tasks
curl https://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

# List build tasks
curl https://api.meshy.ai/openapi/creative-lab/lamp/v1/build?page_size=10 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response (List Prototype Tasks)

[
  {
    "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "type": "creative-lab-lamp-prototype",
    "name": "",
    "status": "SUCCEEDED",
    "progress": 100,
    "created_at": 1729123456000,
    "started_at": 1729123460000,
    "finished_at": 1729123486000,
    "expires_at": 1729382686000,
    "preceding_tasks": 0,
    "task_error": null,
    "consumed_credits": 30,
    "model_urls": {
      "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***"
    },
    "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
    "image_urls": [
      "https://assets.meshy.ai/***/concept.png?Expires=***"
    ]
  }
]

Об'єкт задачі прототипу лампи (Lamp Prototype Task)

Об'єкт Lamp Prototype Task — це одиниця роботи, за якою Meshy стежить для генерації стилізованого матово-білого концептуального зображення з вихідної фотографії та конвертації його в порожнисту 3D-модель. Результат цього етапу передається у ланцюг до етапу побудови через input_task_id.

Властивості

  • Name
    id
    Type
    string
    Description

    Унікальний ідентифікатор задачі. Хоча як деталь реалізації ми використовуємо k-сортований UUID для ідентифікаторів задач, вам не слід робити жодних припущень щодо формату id.

  • Name
    type
    Type
    string
    Description

    Тип задачі. Значення — creative-lab-lamp-prototype.

  • Name
    name
    Type
    string
    Description

    Назва задачі, вказана під час її створення. Порожній рядок, якщо назву не було надано.

  • Name
    status
    Type
    string
    Description

    Статус задачі. Можливі значення: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Прогрес виконання задачі. Якщо задача ще не розпочата, це значення буде 0. Щойно задача завершиться успішно, воно стане 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Мітка часу створення задачі, у мілісекундах.

  • Name
    started_at
    Type
    timestamp
    Description

    Мітка часу початку виконання задачі, у мілісекундах. Якщо задача ще не розпочата, це значення буде 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Мітка часу завершення задачі, у мілісекундах. Якщо задача ще не завершена, це значення буде 0.

  • Name
    expires_at
    Type
    timestamp
    Description

    Мітка часу закінчення терміну дії результату задачі, у мілісекундах.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Кількість попередніх задач у черзі.

  • Name
    task_error
    Type
    object
    Description

    Деталі помилки для невдалих задач. Дивіться Помилки для повного опису об'єкта task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Кількість кредитів, витрачених на цю задачу. Присутнє, коли статус задачі — PENDING, IN_PROGRESS або SUCCEEDED. Повертає 0 для задач зі статусом FAILED (кредити повертаються у разі невдачі).

  • Name
    model_urls
    Type
    object
    Description

    URL-адреси для завантаження 3D-моделі, згенерованої з концептуального зображення. Присутнє, щойно задача завершиться успішно; до цього — {}.

    • Name
      glb
      Type
      string
      Description

      URL-адреса для завантаження порожнистої матово-білої моделі абажура у форматі GLB. Це модель, яку обробляє етап побудови.

  • Name
    thumbnail_url
    Type
    string
    Description

    URL-адреса для завантаження відрендереного попереднього перегляду 3D-моделі. Порожній рядок, доки задача не завершиться успішно.

  • Name
    image_urls
    Type
    array of strings
    Description

    URL-адреси для завантаження кандидатів на концептуальне зображення, згенерованих цією задачею прототипу. Наразі API завжди повертає рівно одного кандидата; поле є масивом, щоб у майбутніх версіях можна було надавати кілька кандидатів без критичних змін.

Example Lamp Prototype Task Object

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "type": "creative-lab-lamp-prototype",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123456000,
  "started_at": 1729123460000,
  "finished_at": 1729123486000,
  "expires_at": 1729382686000,
  "preceding_tasks": 0,
  "task_error": null,
  "consumed_credits": 30,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "image_urls": [
    "https://assets.meshy.ai/***/concept.png?Expires=***"
  ]
}

Об'єкт задачі побудови лампи (Lamp Build Task)

Об'єкт Lamp Build Task — це одиниця роботи, яку Meshy відстежує для генерації фінального абажура лампи, придатного для 3D-друку, з успішно завершеної задачі прототипу. Побудова запускає процесор лампи на 3D-моделі прототипу, щоб зробити її порожнистою, вирівняти та відкрити низ, і (за наявності пресету фурнітури) додати основу та кріплення фурнітури.

Властивості

  • Name
    id
    Type
    string
    Description

    Унікальний ідентифікатор задачі.

  • Name
    type
    Type
    string
    Description

    Тип задачі. Значення — creative-lab-lamp-build.

  • Name
    name
    Type
    string
    Description

    Назва задачі, вказана під час її створення. Порожній рядок, якщо назву не було надано.

  • Name
    status
    Type
    string
    Description

    Статус задачі. Можливі значення: PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Прогрес виконання задачі. Якщо задача ще не почалася, це значення дорівнює 0. Коли задача успішно завершиться, воно стане 100.

  • Name
    created_at
    Type
    timestamp
    Description

    Мітка часу створення задачі, у мілісекундах.

  • Name
    started_at
    Type
    timestamp
    Description

    Мітка часу початку виконання задачі, у мілісекундах.

  • Name
    finished_at
    Type
    timestamp
    Description

    Мітка часу завершення задачі, у мілісекундах.

  • Name
    expires_at
    Type
    timestamp
    Description

    Мітка часу закінчення терміну дії результату задачі, у мілісекундах.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Кількість задач, що передують цій. Має значення лише коли статус — PENDING.

  • Name
    task_error
    Type
    object
    Description

    Деталі помилки для невдалих задач. Див. Помилки для повного опису об'єкта task_error.

  • Name
    consumed_credits
    Type
    integer
    Description

    Кількість кредитів, витрачених цією задачею. Повертає 0 для задач зі статусом FAILED (кредити повертаються у разі невдачі).

  • Name
    model_urls
    Type
    object
    Description

    URL-адреси для завантаження згенерованих артефактів, з ключами за назвою артефакту. Набір ключів залежить від output.format та options.light_source_preset:

    • Name
      lamp_stl
      Type
      string
      Description

      URL для завантаження lamp.stl: абажур з відкритим низом разом з основою, що містить отвір для фурнітури, або єдиний герметичний абажур, коли options.light_source_preset було встановлено як none. Присутнє, коли output.format було stl (значення за замовчуванням).

    • Name
      base_stl
      Type
      string
      Description

      URL для завантаження base.stl, кріплення для фурнітури джерела світла. Присутнє, коли output.format було stl і options.light_source_preset не було none. Відсутнє, якщо пресет фурнітури — none.

    • Name
      bundle_zip
      Type
      string
      Description

      URL для завантаження zip-архіву з усіма артефактами, які видає процесор (lamp.stl, опціонально base.stl, а також — коли options.include_result_json дорівнює trueresult.json). Присутнє, коли output.format було zip. Коли присутній bundle_zip, lamp_stl / base_stl відсутні.

Example Lamp Build Task Object

{
  "id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb",
  "type": "creative-lab-lamp-build",
  "name": "",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1729123500000,
  "started_at": 1729123510000,
  "finished_at": 1729123535000,
  "expires_at": 1729382735000,
  "preceding_tasks": 0,
  "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=***"
  }
}