ModelOps (VNTANA) Pipeline
The ModelOps pipeline integrates the VNTANA Intelligent 3D Optimization Engine for automated 3D model optimization, conversion, and preparation for web viewing. It is a licensed third-party product that runs as a container on Amazon Elastic Container Service (Amazon ECS) with AWS Fargate, orchestrated by AWS Step Functions.
Overview
| Property | Value |
|---|---|
| Pipeline IDs | vntana-model-ops-to-usdz, vntana-model-ops-to-glb, vntana-model-ops-to-gltf |
| Configuration flag | app.pipelines.useModelOps.enabled |
| Execution type | Lambda (asynchronous with callback) |
| Compute | Amazon ECS on AWS Fargate (2 vCPU, 16 GB memory) |
| Supported input formats | .glb, .gltf, .fbx, .obj, .stl, .ply, .usd, .usdz, .dae, .abc |
| Supported output formats | .usdz, .glb, .gltf |
| Timeout | 5 hours |
VNTANA ModelOps is a commercial product that requires a valid subscription. The container image must be provided as an Amazon ECR image URI. Contact VNTANA for licensing information.
Architecture
The pipeline follows the standard VAMS container pipeline pattern:
- constructPipeline Lambda -- Builds the pipeline definition with input and output Amazon S3 paths and container commands.
- Amazon ECS RunTask -- Runs the VNTANA container as an AWS Fargate task in private subnets with internet egress for AWS Marketplace metering.
- pipelineEnd Lambda -- Closes the pipeline and sends the callback to the VAMS workflow.
Configuration
Add the following to your config.json under app.pipelines:
{
"app": {
"pipelines": {
"useModelOps": {
"enabled": true,
"ecrContainerImageURI": "your-ecr-image-uri",
"autoRegisterWithVAMS": true
}
}
}
}
| Option | Default | Description |
|---|---|---|
enabled | false | Enable or disable the pipeline deployment. |
ecrContainerImageURI | (required) | The Amazon ECR container image URI for the VNTANA ModelOps container. |
autoRegisterWithVAMS | true | Automatically register conversion pipelines and workflows with VAMS at deploy time. |
Prerequisites
- VNTANA license -- A valid VNTANA subscription is required. The container image must be accessible from your AWS account.
- Internet access -- The container requires internet access for AWS Marketplace metering API communication. The ECS cluster deploys in private subnets with a NAT Gateway.
- VPC with private subnets -- When using an external VPC, provide private subnet IDs in the VPC configuration for the ECS cluster.
- Container image -- The
ecrContainerImageURImust point to a valid container image.
VAMS supplies the container two configuration blocks: state, which describes the input file and
carries that file's own directory, and output, which carries the destination — the workflow's output
prefix plus an optimized folder for a conversion whose output format matches its input.
Which block a given VNTANA container build reads is part of that container's contract, and VAMS cannot
determine it. The distinction only matters in one case, and it matters a great deal there: for a
conversion whose output format equals its input format, a container that derives its destination from
state resolves onto the source object itself, adding a new version of the operator's own file rather
than writing a separate artifact. A container that reads output writes to the optimized folder and
leaves the source untouched.
Before running a same-format conversion (for example vntana-model-ops-to-glb on a .glb input) on
assets you care about, determine your container's behaviour on data you do not. The check in
tools/smoketest/v260/suite_deploy_residuals.py, section modelops-container-output-contract, does this
on a purpose-created disposable asset and reports which block your build honours. Conversions between
different formats are unaffected, because the output object has a different key from its source
whichever block is used.
Registered workflows
When autoRegisterWithVAMS is true, the following pipelines and workflows are automatically registered at deploy time:
| Pipeline ID | Output format | Description |
|---|---|---|
vntana-model-ops-to-usdz | .usdz | Optimize and convert 3D models to USDZ for Apple AR Quick Look and other USD-based viewers |
vntana-model-ops-to-glb | .glb | Optimize and convert 3D models to GLB for web viewing and real-time applications |
vntana-model-ops-to-gltf | .gltf | Optimize and convert 3D models to GLTF with separate binary and texture files |
All registered pipelines accept any supported input file format (.all) and operate as asynchronous pipelines with callback enabled. The task timeout is set to 4 hours per conversion job.
VNTANA optimization capabilities
The VNTANA engine provides the following optimization modules, configured through the template configuration body the run uses:
- Mesh decimation -- Reduces polygon count while preserving visual quality.
- Texture optimization -- Compresses and resizes textures for target delivery platforms.
- LOD generation -- Creates multiple levels of detail for progressive loading.
- Surface smoothing -- Smooths mesh surfaces after decimation.
- Normal generation -- Generates vertex normals for models that lack them.
- Animation preservation -- Maintains skeletal and morph target animations during conversion.
VNTANA supports its own optimization templates, supplied in the configuration body of the VAMS pipeline template the run uses. A VNTANA template defines a sequence of optimization and conversion modules with per-module settings. Refer to the VNTANA documentation for the full template schema and available options.
Deployment registers one VAMS pipeline template per output format (model-ops-to-glb, model-ops-to-gltf, model-ops-to-usdz), each carrying only its outputType. Selecting a template is mandatory for this pipeline (systemConfig.requireTemplate is true). To supply a VNTANA optimization template, either register a pipeline template whose configuration body carries it, or override the selected template's body for a single run -- the pipeline permits a per-run override (systemConfig.allowCustomTemplateOverride is true).
AWS Marketplace integration
The ModelOps container integrates with AWS Marketplace for usage tracking. The container IAM roles include permissions for aws-marketplace:RegisterUsage and aws-marketplace:MeterUsage. Ensure the AWS Marketplace subscription is active in the deployment account before running the pipeline.
AWS Marketplace product availability differs by partition. A subscription is bought and metered in the partition it is offered in, and a container obtained through AWS Marketplace in the commercial partition is not automatically available in AWS GovCloud (US) or the AWS European Sovereign Cloud — the Marketplace listing, the metering API, and the vendor's own distribution all have to support the target partition. Confirm availability with the vendor before enabling this pipeline in a restricted partition. VAMS does not block the configuration, because whether a given subscription is available is a fact about the listing rather than about the deployment: with no reachable image or metering endpoint the pipeline deploys and then fails when a job runs.