Skip to main content

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

PropertyValue
Pipeline IDsvntana-model-ops-to-usdz, vntana-model-ops-to-glb, vntana-model-ops-to-gltf
Configuration flagapp.pipelines.useModelOps.enabled
Execution typeLambda (asynchronous with callback)
ComputeAmazon 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
Timeout5 hours
Licensed product

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:

  1. constructPipeline Lambda -- Builds the pipeline definition with input and output Amazon S3 paths and container commands.
  2. Amazon ECS RunTask -- Runs the VNTANA container as an AWS Fargate task in private subnets with internet egress for AWS Marketplace metering.
  3. 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
}
}
}
}
OptionDefaultDescription
enabledfalseEnable or disable the pipeline deployment.
ecrContainerImageURI(required)The Amazon ECR container image URI for the VNTANA ModelOps container.
autoRegisterWithVAMStrueAutomatically 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 ecrContainerImageURI must point to a valid container image.
Verify where your container writes its output before running a same-format conversion

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 IDOutput formatDescription
vntana-model-ops-to-usdz.usdzOptimize and convert 3D models to USDZ for Apple AR Quick Look and other USD-based viewers
vntana-model-ops-to-glb.glbOptimize and convert 3D models to GLB for web viewing and real-time applications
vntana-model-ops-to-gltf.gltfOptimize 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.
Template-based configuration

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.

Partition availability

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.