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 URI: data:image/jpeg;base64,<your base64-encoded image data>.
  • Name
    image_subject
    Type
    string
    по умолчанию character
    Description

    Подсказка категории объекта, которая выбирает prompt стилизации. Доступные значения:

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

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

  • Name
    remove_background
    Type
    boolean
    по умолчанию false
    Description

    Если установлено значение true, изображение прототипа возвращается в виде прозрачного PNG в формате RGBA с удалённым фоном, чтобы вы могли скомпоновать объект с любым фоном.

Возвращаемое значение

Свойство 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 некорректно сформирована.
    • Контент отмечен модерацией: входное изображение было отмечено модерацией 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"
}
Prototype example
Start with a source photo; the prototype returns the concept image and a hollow 3D model that the build stage processes.
Source cat photo used as the Creative Lab Lamp input
Prototype input
Creative Lab Lamp prototype output generated from the source photo
Prototype output

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-модель.

    Задачи прототипов, созданные через веб-приложение, не принимаются — эндпоинт сборки принимает только задачи прототипов, созданные через 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_preset ≠ none. Диапазон: [-80, 80].

  • Name
    fixture_offset_z_mm
    Type
    number
    по умолчанию 0
    Description

    Смещение отверстия крепления на базовой пластине по оси Z (глубина) относительно центра абажура, в миллиметрах. Имеет значение только когда light_source_preset ≠ none. Диапазон: [-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_preset ≠ none.
    • 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"
}
Build example
The build task turns the prototype's 3D model into printable lampshade parts.
Creative Lab Lamp build model preview
Build model preview

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

Получение задачи Lamp

Получите задачу prototype или build по действительному id задачи. Путь URL должен соответствовать стадии задачи — если задача build запрашивается через /prototype/:id, возвращается 404, и наоборот.

Обратитесь к разделам The Lamp Prototype Task Object и The Lamp Build Task Object, чтобы узнать формат ответа.

Параметры

  • 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

Delete a Lamp Task

Отменяет задачу лампы. Если задача всё ещё находится в статусе 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.

Request

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}"

Response

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

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

Стриминг задачи Lamp

Транслирует обновления в реальном времени для задачи лампы через 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. Каждый кадр содержит полный объект задачи для данной стадии — в том же виде, что возвращает эндпоинт Get, — поэтому пока задача находится в статусе PENDING или IN_PROGRESS, выходные поля просто ещё не заполнены (null, [] или {}), а finished_at равно null.

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.
// 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: 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

    Ограничение размера страницы. Максимально допустимое значение — 100 элементов.

  • 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) — это единица работы, которую 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

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

    • Name
      glb
      Type
      string
      Description

      Ссылка для скачивания полой матово-белой модели плафона лампы в формате GLB. Это модель, которую обрабатывает этап сборки.

  • Name
    thumbnail_url
    Type
    string
    Description

    Ссылка для скачивания отрендеренного превью 3D-модели. Пустая строка, пока задача не завершится успешно.

  • Name
    image_urls
    Type
    array of strings
    Description

    Ссылки для скачивания кандидатов концептуального изображения, сгенерированных этой задачей прототипа. В настоящее время 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

    Количество кредитов, израсходованных на выполнение этой задачи. Для задач со статусом FAILED возвращает 0 (кредиты возвращаются при неудаче).

  • Name
    model_urls
    Type
    object
    Description

    Ссылки для скачивания сгенерированных артефактов, с ключами по названию артефакта. Набор ключей зависит от output.format и options.light_source_preset:

    • Name
      lamp_stl
      Type
      string
      Description

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

    • Name
      base_stl
      Type
      string
      Description

      Ссылка для скачивания base.stl — крепления для патрона источника света. Присутствует, если output.format было stl и options.light_source_preset было отличным от none. Отсутствует, если пресет крепления был none.

    • Name
      bundle_zip
      Type
      string
      Description

      Ссылка для скачивания zip-архива со всеми артефактами, создаваемыми обработчиком (lamp.stl, опционально base.stl и — если options.include_result_json равно true — result.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=***"
  }
}