openapi: 3.1.0 info: description: REST API for Adobe Substance 3D - Firefly Services title: Adobe Substance 3D API - Firefly Services version: 1.0.0 servers: - url: 'https://s3d.adobe.io' paths: /v1/composites/compose: post: operationId: composeImage_v1 summary: Generate 3D Object Composite description: Generate a 3D Object Composite with the Substance 3D API. requestBody: content: application/json: schema: $ref: '#/components/schemas/ComposeSceneRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/ComposeSceneResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/FFAPIError' tags: - Composites /v1/scenes/assemble: post: operationId: assembleScene_v1 summary: Create 3D Scene description: Assemble a 3D Scene with the Substance 3D API. requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSceneRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/CreateSceneResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/FFAPIError' tags: - Scenes /v1/scenes/convert: post: operationId: convertScene_v1 summary: Convert 3D Files description: Convert a 3D file into another 3D format with the Substance 3D API. requestBody: content: application/json: schema: $ref: '#/components/schemas/ModelConvertRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/ModelConvertResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/FFAPIError' tags: - Scenes /v1/scenes/describe: post: operationId: describeScene_v1 summary: Describe 3D Scene description: Describe a 3D scene. requestBody: content: application/json: schema: $ref: '#/components/schemas/SceneDescRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/SceneDescResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/FFAPIError' tags: - Scenes /v1/scenes/render: post: operationId: renderScene_v1 summary: Render 3D Object description: Render a 3D Object with the Substance 3D API. requestBody: content: application/json: schema: $ref: '#/components/schemas/RenderSceneRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/RenderSceneResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/FFAPIError' tags: - Scenes /v1/scenes/render-basic: post: operationId: renderSceneBasic_v1 summary: Render 3D Object (basic version) description: Render a 3D Object (basic version) with the Substance 3D API. requestBody: content: application/json: schema: $ref: '#/components/schemas/RenderModelRequest' responses: '202': description: Accepted headers: Retry-After: schema: type: string content: application/json: schema: $ref: '#/components/schemas/RenderModelResponse' '400': description: Bad Request content: application/json: examples: empty_input_body: value: error_code: empty_input_body message: '' invalid_json: value: error_code: invalid_json message: '' schema: $ref: '#/components/schemas/FFAPIError' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '415': description: Unsupported Media Type content: application/json: examples: invalid_content_type: value: error_code: invalid_content_type message: '' schema: $ref: '#/components/schemas/FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/FFAPIError' tags: - Scenes /v1/spaces: post: operationId: createSpace_v1 summary: Create Space description: Create a Space from 3D files. requestBody: required: true content: multipart/form-data: schema: type: object properties: filename: description: filename of the file being uploaded type: string format: binary contentMediaType: application/octet-stream name: description: general purpose name for multipart form value type: string responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Space' '403': description: Forbidden content: application/json: examples: access_error: value: error_code: access_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '408': description: Request Timeout content: application/json: examples: timeout_error: value: error_code: timeout_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '413': description: Request Entity Too Large content: application/json: examples: entity_too_large: value: error_code: entity_too_large message: '' schema: $ref: '#/components/schemas/FFAPIError' '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: error_code: validation_error message: '' schema: $ref: '#/components/schemas/FFAPIError' '429': description: Too Many Requests content: application/json: examples: rate_limited: value: error_code: rate_limited message: '' schema: $ref: '#/components/schemas/FFAPIError' '500': description: Internal Server Error content: application/json: examples: runtime_error: value: error_code: runtime_error message: '' schema: $ref: '#/components/schemas/FFAPIError' tags: - Spaces components: schemas: AutoFramingOptions: type: object properties: zoomFactor: description: A value of 1 indicates tight framing. Less than 1 is a zoom-out. Greater than 1 is a zoom-in. type: number format: double default: 0.8 maximum: 100 minimum: 0.001 additionalProperties: false AzimuthAltitude: type: object properties: altitude: description: 'altitude, in degrees, from -90 to 90 degrees' type: number format: double maximum: 90 minimum: -90 azimuth: description: 'rotation around the vertical axis, in degrees' type: number format: double lookAt: type: - array - 'null' items: format: double type: number maxItems: 3 minItems: 3 radius: description: distance to the lookAt point type: number format: double minimum: 0 additionalProperties: false required: - azimuth - altitude - lookAt - radius BackgroundOptions: type: object properties: backgroundColor: description: 'RGBA background color. Has an effect only if `showEnvironment` is `false`. Each component has to be in the [0,1] range.' type: - array - 'null' items: format: double type: number default: - 0 - 0 - 0 - 0 examples: - - 0 - 0 - 0 - 0 maxItems: 4 minItems: 4 backgroundImage: description: 'Path to a background image. If set, will be used as the background.' type: string showEnvironment: description: Show the environment map as the background. type: boolean default: false additionalProperties: false ComposeOutput: type: object properties: image: $ref: '#/components/schemas/ComposeOutputImage' seed: type: integer format: int64 additionalProperties: false required: - seed - image ComposeOutputImage: type: object properties: url: type: string additionalProperties: false required: - url ComposeSceneJobResult: type: object properties: outputSpace: $ref: '#/components/schemas/Space' outputs: type: - array - 'null' items: $ref: '#/components/schemas/ComposeOutput' promptHasBlockedArtists: type: boolean promptHasDeniedWords: type: boolean additionalProperties: false required: - outputs - promptHasDeniedWords - promptHasBlockedArtists ComposeSceneRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/ComposeSceneRequest.json' readOnly: true cameraName: description: Name of an existing camera in the source 3D scene. The camera has to be defined in the scene. type: string contentClass: description: Class of content to generate. type: string default: photo enum: - art - photo enableGroundPlane: description: 'Enable the auto-generated ground plane under the hero asset. This is useful if the 3D scene contains only a hero asset, without additional elements.' type: boolean default: false heroAsset: description: Name of an existing 'hero asset' in the source 3D scene. The asset has to be defined in the scene. type: string modelVersion: description: Model version to be used to generate the background image with Adobe Firefly. type: string default: image3_fast enum: - image3_fast - image4_standard - image4_ultra numVariations: description: 'The number of variations to generate. `numVariations` will default to the number of seeds, or to 1 if `seeds` is not specified.' type: integer format: int64 maximum: 4 minimum: 1 prompt: description: Prompt to be used to generate the background image with Adobe Firefly. type: string sceneFile: description: 'The path of the scene file in `sources`. If value is null, the first found scene file will be used.' type: string seeds: description: 'Optional seed value to be used to generate the background image with Adobe Firefly. A seed ensures consistent background image generation. If `seed` is not set, a random seed will be used. Retrieve the seed used for the generation in the output details of the job. If specified with `numVariations`, the number of seeds must be the equal to `numVariations`.' type: array items: format: int64 type: integer size: description: |- The size of the image generations. The supported dimensions for image generations are: | Dimensions | Description | | -----------| ----- | | { "width": 2048, "height": 2048} | Square (1:1) | | { "width": 2304, "height": 1792 } | Landscape (4:3) | | { "width": 1792, "height": 2304 } | Portrait (3:4) | | { "width": 2688, "height": 1536 } | Widescreen (16:9) | | { "width": 1344, "height": 768 } |(7:4) | |{ "width": 1152, "height": 896 } |(9:7) | |{ "width": 896, "height": 1152 } |(7:9) | | { "width": 1024, "height": 1024} | Square (1:1) | $ref: '#/components/schemas/OutputSize' sources: description: List of sources to aggregate and run the job against. type: - array - 'null' items: $ref: '#/components/schemas/MountedSource' maxItems: 16 minItems: 1 styleImage: description: Optional 'style image' to be used to generate the background. The style image has to be present in `sources`. type: string additionalProperties: false examples: - cameraName: main_camera heroAsset: bottle prompt: french style kitchen with empty wooden table window on the left focal length 50mm sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/compositing_table_bottle.glb' - cameraName: main_camera heroAsset: bottle prompt: french style kitchen with empty wooden table window on the left focal length 50mm sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/compositing_table_bottle.glb' required: - sources - prompt - heroAsset - cameraName ComposeSceneResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/ComposeSceneResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/ComposeSceneJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: URL to fetch/poll for job result in case the job is not finished yet. type: string additionalProperties: false required: - url - id - status - bugReportUrl CreateSceneJobResult: type: object properties: outputSpace: $ref: '#/components/schemas/Space' sceneUrl: description: URL for the created scene. type: string additionalProperties: false required: - sceneUrl CreateSceneRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/CreateSceneRequest.json' readOnly: true encoding: description: Encoding output format. type: string fileBaseName: description: Output filename. type: string scene: $ref: '#/components/schemas/SceneDescription' sources: description: List of sources to aggregate and run the job against. type: - array - 'null' items: $ref: '#/components/schemas/MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - encoding: usdz fileBaseName: scene scene: models: imports: - file: WaterBottle.glb - file: WaterBottle.glb transform: trs: rotation: euler: - 30 - 0 - 0 scale: - 1 - 1 - 1 translation: - 0.15 - 0 - 0 sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' - encoding: usdz fileBaseName: scene scene: models: imports: - file: WaterBottle.glb - file: WaterBottle.glb transform: trs: rotation: euler: - 30 - 0 - 0 scale: - 1 - 1 - 1 translation: - 0.15 - 0 - 0 sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' required: - scene - sources - encoding - fileBaseName CreateSceneResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/CreateSceneResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/CreateSceneJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl FFAPIError: description: The error within the error response. type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/FFAPIError.json' readOnly: true error_code: description: Associated error code. type: string error_details: description: Optional list of individual error details. type: array items: type: object message: description: Error message. type: string additionalProperties: false required: - error_code title: ApiError FFAPIErrorDetail: type: object properties: error_code: description: Error code. type: string error_context: description: Additional context for the error. loc: description: 'Where the error occurred, indicated in dot notation (e.g., body.items[3].tags or path.thing-id).' type: string msg: description: Error message text. type: string additionalProperties: false required: - loc - msg - error_code FormatOptions: type: object properties: usd: description: USD format options. $ref: '#/components/schemas/UsdOptions' additionalProperties: false required: - usd GroundPlaneOptions: type: object properties: autoGroundScene: description: Automatically position the scene on the ground plane. Moves the scene along the vertical axis. type: boolean default: true enable: description: Enable/disable the ground plane. type: boolean default: true reflections: description: Enable/disable reflections onto the ground plane. type: boolean default: false reflectionsOpacity: description: Controls the opacity of the reflections. Useful for compositing purposes. type: number format: double default: 1 maximum: 1 minimum: 0 reflectionsRoughness: description: Controls the roughness of the reflections. Useful for compositing purposes. type: number format: double default: 0 maximum: 1 minimum: 0 shadows: description: Controls whether the ground plane catches shadows or not. type: boolean default: true shadowsOpacity: description: Controls the opacity of catched shadows. Only has effect if shadows are enabled. type: number format: double default: 1 maximum: 1 minimum: 0 additionalProperties: false MaterialOverride: type: object properties: TranslucencyTexture: type: - string - 'null' absorptionColorFactor: description: 'RGB floating point color such as white is [1.0,1.0,1.0]' type: array items: format: double type: number default: - 0 - 0 - 0 maxItems: 3 minItems: 3 absorptionColorTexture: type: string absorptionDistanceFactor: type: number format: double minimum: 0 absorptionDistanceTexture: type: string baseColorFactor: description: 'RGB floating point color such as white is [1.0,1.0,1.0]' type: array items: format: double type: number default: - 0 - 0 - 0 maxItems: 3 minItems: 3 baseColorTexture: type: string coatColorFactor: description: 'RGB floating point color such as white is [1.0,1.0,1.0]' type: array items: format: double type: number default: - 0 - 0 - 0 maxItems: 3 minItems: 3 coatColorTexture: type: string coatOpacityFactor: type: number format: double maximum: 1 minimum: 0 coatOpacityTexture: type: string coatRoughnessFactor: type: number format: double maximum: 1 minimum: 0 coatRoughnessTexture: type: string materialName: type: string metallicFactor: type: number format: double maximum: 1 minimum: 0 metallicTexture: type: string normalFactor: type: array items: format: double type: number maxItems: 3 minItems: 3 normalTexture: type: string opacityFactor: type: number format: double minimum: 0 opacityTexture: type: string pbrMaterial: $ref: '#/components/schemas/SbsMaterial' roughnessFactor: type: number format: double maximum: 1 minimum: 0 roughnessTexture: type: string translucencyFactor: type: number format: double maximum: 1 minimum: 0 volumeThicknessFactor: type: number format: double minimum: 0 volumeThicknessTexture: type: string additionalProperties: false required: - materialName - TranslucencyTexture ModelConvertJobResult: type: object properties: outputSpace: $ref: '#/components/schemas/Space' additionalProperties: false ModelConvertRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/ModelConvertRequest.json' readOnly: true format: description: Output format. type: string enum: - glb - gltf - fbx - usdz - usda - usdc - obj examples: - glb modelEntrypoint: description: Conversion usually takes the first file that's considered a valid 3D model. Define this entry point to disambiguate when there are multiple options. type: string sources: description: List of sources to aggregate and run the job against. type: - array - 'null' items: $ref: '#/components/schemas/MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - format: glb sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' - format: glb sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' required: - format - sources ModelConvertResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/ModelConvertResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/ModelConvertJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl MountedSource: type: object properties: frame.io: description: Fetch content from a Frame.io folder. ⚠️ All sources are exclusive. $ref: '#/components/schemas/SourceFrameIO' mountPoint: description: Where to mount the content of the source in the virtual job working directory. type: string default: / space: description: 'Read content from an existing space (can be another job''s output, or uploaded manually with the space API). ⚠️ All sources are exclusive.''' $ref: '#/components/schemas/SourceSpace' url: description: Fetch content from a URL. ⚠️ All sources are exclusive. $ref: '#/components/schemas/SourceURL' additionalProperties: false OutputSize: type: object properties: height: type: integer format: int64 default: 1536 maximum: 2688 minimum: 1 width: type: integer format: int64 default: 2688 maximum: 2688 minimum: 1 additionalProperties: false required: - width - height RenderModelRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/RenderModelRequest.json' readOnly: true autoFraming: description: Options related to auto-framing. $ref: '#/components/schemas/AutoFramingOptions' background: description: Options related to the background. $ref: '#/components/schemas/BackgroundOptions' cameraName: description: 'If set, this camera is used to perform the render. The camera has to be defined in the scene.' type: string groundPlane: description: Options related to the ground plane. $ref: '#/components/schemas/GroundPlaneOptions' scene: description: Define rendering scene primitives. $ref: '#/components/schemas/SimpleSceneDescription' size: description: Options related to the render size. $ref: '#/components/schemas/SizeOptions' sources: description: List of sources to aggregate and run the job against. type: - array - 'null' items: $ref: '#/components/schemas/MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - scene: modelFile: WaterBottle.glb sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' - scene: modelFile: WaterBottle.glb sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' required: - scene - sources RenderModelResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/RenderModelResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/RenderSceneJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl RenderSceneJobResult: type: object properties: outputSpace: $ref: '#/components/schemas/Space' renderUrl: description: URL to the rendered scene. type: string additionalProperties: false required: - renderUrl RenderSceneRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/RenderSceneRequest.json' readOnly: true autoFraming: description: Auto-framing related options. $ref: '#/components/schemas/AutoFramingOptions' background: description: Background related options. $ref: '#/components/schemas/BackgroundOptions' cameraName: description: 'If set, this camera is used to perform the render. The camera has to be defined in the scene.' type: string groundPlane: description: Options related to the ground plane. $ref: '#/components/schemas/GroundPlaneOptions' scene: description: Define rendering scene primitives. $ref: '#/components/schemas/SceneDescription' size: description: Render size related options. $ref: '#/components/schemas/SizeOptions' sources: description: List of sources to aggregate and run the job against. type: - array - 'null' items: $ref: '#/components/schemas/MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - scene: models: imports: - file: WaterBottle.glb sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' - scene: models: imports: - file: WaterBottle.glb sources: - url: url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/WaterBottle/glTF-Binary/WaterBottle.glb' required: - scene - sources RenderSceneResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/RenderSceneResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/RenderSceneJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl Rotation: type: object properties: euler: description: euler angles in degrees type: array items: format: double type: number examples: - - 0 - 0 - 0 maxItems: 3 minItems: 3 quaternion: description: 'in W,X,Y,Z order' type: array items: format: double type: number examples: - - 1 - 0 - 0 - 0 maxItems: 4 minItems: 4 additionalProperties: false SbsMaterial: type: object properties: preset: description: select a preset to be used for the substance material rendering type: string resolution: description: 'substance material render resolution, should be a power of two' type: integer format: int64 enum: - 16 - 32 - 64 - 128 - 256 - 512 - 1024 - 2048 - 4096 maximum: 4096 minimum: 16 rotation: description: texture space rotation type: number format: double sbsar: description: 'path to a substance material; if not set, the first substance 3D material found in sources will be used' type: string scale: description: texture space scale type: array items: format: double type: number maxItems: 2 minItems: 2 translation: description: texture space translation type: array items: format: double type: number maxItems: 2 minItems: 2 additionalProperties: false SceneBaseFile: type: object properties: file: description: Path to the scene file in `sources`. type: string modelsRootNodeName: description: 'Define root node for models in scene graph. If not found, the node which are parent of all models in the scene will be used. If this node doesn''t exists, a new node will be created under global root.' type: string additionalProperties: false required: - file SceneCamera: type: object properties: focal: description: 'Camera focal length, in mm.' type: number format: double default: 50 maximum: 1000 minimum: 10 sensorWidth: description: 'Camera sensor width, in mm.' type: number format: double default: 36 maximum: 100 minimum: 1 transform: description: Controls the position and angle of the camera. $ref: '#/components/schemas/Transform' additionalProperties: false SceneDescJobResult: type: object properties: stats: $ref: '#/components/schemas/SceneStatsInfo' additionalProperties: false required: - stats SceneDescRequest: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/SceneDescRequest.json' readOnly: true sceneFile: description: 'Path to the scene file in `sources`. If the value is `null`, the first found scene file will be used.' type: string sources: description: List of sources to aggregate and run the job against. type: - array - 'null' items: $ref: '#/components/schemas/MountedSource' maxItems: 16 minItems: 1 additionalProperties: false examples: - sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' - sources: - url: url: 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' required: - sources SceneDescResponse: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/SceneDescResponse.json' readOnly: true bugReportUrl: description: URL to report a bug about this job. type: string error: description: Potential error that happened during the job processing. type: string id: description: Unique identifier of the job. type: string result: description: Result when the job is successfully finished. $ref: '#/components/schemas/SceneDescJobResult' status: description: 'Status of the job. Can be `not_started`, `running`, `succeeded`, or `failed`.' type: string url: description: 'URL to fetch/poll for the job result, in case the job is not finished yet.' type: string additionalProperties: false required: - url - id - status - bugReportUrl SceneDescription: type: object properties: baseFile: description: 'Define a scene from a file. If value is `null`, an empty scene will be created.' $ref: '#/components/schemas/SceneBaseFile' camera: description: Define a new camera for the scene. $ref: '#/components/schemas/SceneCamera' environment: description: Define the environment for the scene. Override the previous existing environment. $ref: '#/components/schemas/SceneEnvironment' metersPerUnit: description: 'Length of a scene unit, in meters. Defaults to `baseFile` meters per unit if any, or 0.01 (centimeters) otherwise.' type: number format: double exclusiveMinimum: 0 models: description: Define additional models for the scene. $ref: '#/components/schemas/SceneModels' additionalProperties: false SceneEnvironment: type: object properties: exposure: description: 'Exposure, in EV (0=neutral).' type: number format: double default: 0 file: description: 'Path to the environment file in `sources`. If the value is `null`, the first found environment file will be used.' type: string preserveLights: description: 'A scene may contain 3D lights, like area lights or spot lights. By default, all those lights are removed when a new environment is set. Set this option to `true` to preserve the scene 3D lights.' type: boolean default: false rotation: description: Controls the orientation of the environment map. $ref: '#/components/schemas/Rotation' additionalProperties: false SceneModel: type: object properties: anchorName: description: 'Node name in scene graph which used as parent for the model. If anchor is not found, a node with the anchor name will be generated under models root node. And If value is `null`, a node will be generated under models root node.' type: string file: description: 'Path to the model file in `sources`. If the value is `null`, the first found model file will be used.' type: string formatOptions: description: Define options specific for the model file format. $ref: '#/components/schemas/FormatOptions' materialOverrides: description: Define material overrides. type: - array - 'null' items: $ref: '#/components/schemas/MaterialOverride' transform: description: 'Transform applied on the anchor node. Overrides the previous value, if it exists.' $ref: '#/components/schemas/Transform' additionalProperties: false SceneModels: type: object properties: imports: description: List of model import definitions. type: - array - 'null' items: $ref: '#/components/schemas/SceneModel' modelsRootNodeTransform: description: 'Global transformation applied on the models root node defined in the scene. Overrides the previous value, if it exists.' $ref: '#/components/schemas/Transform' additionalProperties: false SceneStatsBoundingBox: type: object properties: max: type: - array - 'null' items: format: double type: number min: type: - array - 'null' items: format: double type: number additionalProperties: false required: - min - max SceneStatsInfo: type: object properties: cameraNames: type: - array - 'null' items: type: string materialNames: type: - array - 'null' items: type: string metersPerSceneUnit: type: number format: double nodesHierarchy: $ref: '#/components/schemas/SceneStatsNode' numFaces: type: integer format: int64 numMeshes: type: integer format: int64 numQuads: type: integer format: int64 numSubMeshes: type: integer format: int64 numTriangles: type: integer format: int64 numVertices: type: integer format: int64 sceneUpAxis: type: string additionalProperties: false required: - metersPerSceneUnit - sceneUpAxis - numVertices - numTriangles - numQuads - numFaces - numMeshes - numSubMeshes - cameraNames - materialNames - nodesHierarchy SceneStatsNode: type: object properties: assignedMaterialName: type: string items: $ref: '#/components/schemas/SceneStatsNode' children: type: - array - 'null' items: $ref: '#/components/schemas/SceneStatsNode' name: type: string type: type: string items: $ref: '#/components/schemas/SceneStatsNodeVariant' variants: type: - array - 'null' items: $ref: '#/components/schemas/SceneStatsNodeVariant' worldSpaceBoundingBox: $ref: '#/components/schemas/SceneStatsBoundingBox' additionalProperties: false required: - name - type SceneStatsNodeVariant: type: object properties: currentValue: type: string name: type: string values: type: - array - 'null' items: type: string additionalProperties: false required: - name - values - currentValue SimpleSceneDescription: type: object properties: camera: description: Define a new camera for the scene. $ref: '#/components/schemas/SceneCamera' environment: description: Define the environment for the scene. Override the previous existing environment. $ref: '#/components/schemas/SceneEnvironment' formatOptions: description: Define options specific for the model file format. $ref: '#/components/schemas/FormatOptions' materialOverrides: description: Define material overrides. type: - array - 'null' items: $ref: '#/components/schemas/MaterialOverride' metersPerUnit: description: 'Length of a scene unit, in meters. Defaults to 0.01 (centimeters).' type: number format: double exclusiveMinimum: 0 modelFile: description: 'Path to the model file in `sources`. If the value is `null`, the first found model file will be used.' type: string modelTransform: description: Transform applied on the model. $ref: '#/components/schemas/Transform' additionalProperties: false SizeOptions: type: object properties: height: description: Render height. type: integer format: int64 maximum: 2304 minimum: 16 width: description: Render width. type: integer format: int64 maximum: 3840 minimum: 16 additionalProperties: false required: - width - height SourceFrameIO: type: object properties: accessToken: type: string folderId: type: string additionalProperties: false required: - folderId - accessToken SourceSpace: type: object properties: id: description: A space ID. type: string additionalProperties: false required: - id SourceURL: type: object properties: url: type: string examples: - 'https://cdn.substance3d.com/v2/files/public/stepladder.usdz' additionalProperties: false required: - url Space: type: object properties: $schema: description: A URL to the JSON schema for this object. type: string format: uri examples: - 'https://s3d.adobe.io/schemas/Space.json' readOnly: true archiveUrl: description: URL to fetch the whole space as an archive (usually a ZIP file). type: string files: description: 'List of all files contained in space, ordered by name.' type: - array - 'null' items: $ref: '#/components/schemas/SpaceFile' id: description: Unique identifier of this space. type: string url: description: URL to the full description of this space. type: string additionalProperties: false required: - url - id - archiveUrl - files SpaceFile: type: object properties: name: type: string size: type: integer format: int64 minimum: 0 url: type: string additionalProperties: false required: - url - name - size TRS: type: object properties: rotation: $ref: '#/components/schemas/Rotation' scale: type: - array - 'null' items: format: double type: number maxItems: 3 minItems: 3 translation: type: - array - 'null' items: format: double type: number examples: - - 0 - 0 - 0 maxItems: 3 minItems: 3 additionalProperties: false required: - translation - rotation - scale Transform: type: object properties: azimuthAltitude: description: 'transform is defined by azimuth, altitude and radius terms (if set, do not set matrix nor trs)' $ref: '#/components/schemas/AzimuthAltitude' matrix: description: 'transform is defined as a matrix (if set, do not set trs nor azimuthAltitude)' type: array items: format: double type: number maxItems: 16 minItems: 16 trs: description: 'transform is defined by translation, rotation and scale terms (if set, do not set matrix nor azimuthAltitude)' $ref: '#/components/schemas/TRS' additionalProperties: false UsdOptions: type: object properties: variants: description: List of USD variants definition applied on usd primitives. type: - array - 'null' items: $ref: '#/components/schemas/UsdVariant' additionalProperties: false required: - variants UsdVariant: type: object properties: primName: type: string variant: type: string variantSet: type: string additionalProperties: false required: - primName - variantSet - variant securitySchemes: bearerAuth: bearerFormat: JWT description: Adobe IMS bearer token scheme: bearer type: http security: - bearerAuth: []