Details of the WebAR Asset API SDK

 

These are the functions, methods, and classes that we use to create the WebAR SDK.

MxtWebArOptions

MxtWebArOptions

Defines an interface for the options passed into the constructor of MxtWebArPregenerated

Properties

  • apiKey: string - required - client’s access key to WebAR

  • clientId: string - required - client’s id

  • serviceEnvironment: MxtAssetEnvironment - optional - the service endpoint state. Defaults to Production if not provided.

  • assetEnvironment: MxtAssetEnvironment - optional - the asset state. Defaults to Production if not provided.

 

MxtWebArPregenerated

MxtWebArPregenerated

Class for retrieving URLs of pregenerated WebAR assets

Constructor

new MxtWebArPregenerated(options: MxtWebArOptions): MxtWebArPregenerated

Properties

Methods

async getWebArPregeneratedUrl(sku:string, lod?:LOD, title?:string, enableScaling?:boolean): Promise<string>

Get a URL to the Web AR asset. Will automatically tack on anything to the URL required to auto open the web AR asset in the browser as an href. If you want to determine if an asset exists before making this call, use getAssetTypesAvailable

Parameters

  • sku: string - The sku of the product to get the web AR asset for

  • Optional - lod: LOD - level of depth (texture size). Acceptable values are 128, 256, 512, 1024, or 2048

  • Optional - title: string - is the title of the Web AR asset to display on android (ios does not allow a title). If no title is provided, will use sku as title

  • Optional - enableScaling: boolean - If you want to turn on scaling (currently only available for usdz). Off by default

Returns a promise to a formatted string that can be href’ed to open the web AR asset in a browser. Note that for iOS, you may need to specially format the HTML elements that href this URL: see TODO


async getAssetTypesAvailable(sku:string): Promise<WebArType[]>

Check if a web AR asset exists for the given sku and type. Checks the client’s json manifest to determine this. This is a fast check, use this rather than getWebArPregeneratedUrl to determine if you should show AR-related UI on the page.

Parameters

  • sku: string - The sku of the product to get the web AR asset for

Returns a promise to an WebArType[] of the WebArTypes that we have assets for this particular sku


async getGlb(sku:string, lod?:LOD): Promise<string>

Get the raw GLB file path for the given SKU. If you want to link to it for someone to view the AR asset, use getWebArPregeneratedUrl as it will add the necessary data to view in browser.

Parameters

  • sku: string - The sku of the product to get the GLB asset for

  • Optional - lod: LOD - level of depth (texture size). Acceptable values are 128, 256, 512, 1024, or 2048

Returns a promise to the GLB file path

MxtWebArHelpers

MxtWebArHelpers

Class with static helper functions for retrieving AR assets

Methods

static browserArSupport(): WebArType

Get the type of web AR asset that the current browser supports.

Returns ‘glb' or 'usdz’ or null if WebAR cannot be viewed in this browser


static isWebARAvailable(): boolean

Check if the current browser allows WebAR.

Returns true if current browser allows WebAR

MxtAssetEnvironment

MxtAssetEnvironment

Defines an enum for the different asset environments available

Values

  • TEST: In development phase. This is mostly used for Marxent internal testing.

  • STAGING: In client review phase. Use this asset environment in your testing site.

  • PRODUCTION: Live in production.

LOD

LOD

Defines an enum for the LODs (level of detail) available. Defines the pixel size of the textures used. The lower the value, the smaller the Web AR file (faster download), but also the less realistic it will look. A nice happy medium between download speed and realism tends to be _512 or _1024

Values

  • _128: 128px x 128px textures

  • _256: 256px x 256px textures

  • _512: 512px x 512px textures

  • _1024: 1024px x 1024px textures

  • _2048: 2048px x 2048px textures

WebArType

WebArType

Defines an enum for the type of web ar assets available, dependent on browser.

Values

  • USDZ - apple’s webAR format

  • GLB - rest of world’s webAR format