2021.22.0 - October 27, 2021




Array option for Part References has been added to support configuration of modular products, like closets and sectional furniture, where users can select multiple options, arrange them, and see them in that order in physical space.

An `Array` option has been added to the existing `Asset - Global Attribute`. When it's turned on, you can set the maximum number of value, the corresponding Asset type, and the available values (using Item names or tags).

Add the new attribute to your Catalog Item as you normally would. The configurator preview will display the new Array component where you can select from any of the available options:

You are able to add as many options as the Max. Items allows:

You are able to sort the options using drag-and-drop:

Using Catalog Item Rules, you can add validation and constraints using the Array index. For example, if the first seat (0) is `Green seat`, the second seat (1) must be `Red Seat`. The configurator will automatically set the value based on this rule:

The `Asset` setup for the item is similar to a typical setup except that you will have multiple model placeholders or nulls, enough for the array size. Position them where they should be.

The Logic setup is also similar - add the Array attribute and use the `Set Model` action targeting each model placeholder or null using the index numbers:

Product configurations can be saved and restored using the player's built-in Share functionality or the configuration API:


Update Assets easily from the new, right-click menu option, which is especially useful if you've searched for an asset and want to update it directly:

You can also update an asset directly from the View Assets page using the new header button:


Flip options have been added to the `Canvas Composite` operator on `Texture` assets to allow for flipping along the X and/or Y axis. These options can be set explicitly or driven by a product configurator using attributes.

Tiling has also been added to the `Canvas Composite` operator using the `Repeat` option in `Windowed` mode:


Retrieve images from `Texture` assets with operators applied to them using:

  • playerApi.scene.getImage('f667272a-4781-49c0-8e59-99c819c1d594') .toDataURL()

  • playerApi.scene.getImage('f667272a-4781-49c0-8e59-99c819c1d594', {rect: {x: 100, y: 200, width: 100, height: 200}}) .toDataURL()

Canvas content bounding box measurements can be retrieved using:

  • playerApi.scene.get(['f667272a-4781-49c0-8e59-99c819c1d594', 'eval', 'Image', 1]).destRect

  • playerApi.scene.get([<ASSET ID>, 'eval', 'Image', <OPERATOR INDEX>]).destRect

Wildcard subdomains are now supported in Tokens. For example, you can create a token for `*.threekit.com`.


  • GL4721 - Open In Editor from the 3D Editor Asset Library window is broken

  • GL7387 - Datatable does not keep the row order of the input CSV file

  • GL7459 - CanvasText has hidden padding causing sizing/alignment issues

  • GL7544 - Annotations do not reposition themselves in the player but they do in the editor.

  • GL7551 - Logging api to console breaks webgl render

  • GL7606 - The AR model doesn't have the image

  • GL7650 - Multiple Catalog items not loading

  • GL7661 - Set active camera gets reset

  • GL7662 - Users who do not have SuperAdmin privileges are not able to use the "invite support to org" feature

  • GL7664 - Image flashes when resize the 2D player

  • GL7677 - Disable Drag and drop update

Last updated