# Setting Texture Options (Beta)

In addition to applying a particular material, you can also modify some of the material's properties. These modifications only affect the instance of the material you are specifying, not the material overall, so you can apply LEATHER to CHAIR with one texture scale, and LEATHER to FOOTSTOOL with a different texture scale.

```javascript
{      
    tag: 'LEATHER',
    meshTag: 'CHAIR',
    "baseColorTexture": {
        "uri": "https://picsum.photos/200/300.jpg",
        "scale": [10,10],
        "offset": [0.5,0],
        "rotation": 90
    }
}
```

### Dynamic Textures

Setting the `uri` key on `baseColorTexture` to a valid URL allows you to change the main color texture used for the material. &#x20;

The URL must be:

* A valid https\:// URL&#x20;
* Publicly accessible
* A PNG or JPG file
* Less than 4096 pixels in both height and width

{% hint style="danger" %}
Loading multiple high-resolution external textures can potentially cause users devices to run out of memory and crash (on iOS this will appear as a 'an error occurred on this page' warning).
{% endhint %}

It is also important to use a fast CDN-backed server for your images, as the retrieval time will be added to the overall variant-generation time.

### Transforming Color Textures

You can also scale, offset and rotate textures to create new variants.

Setting `scale` to a two-number array will scale the x and y size of the UV maps. For example if you set a scale of `[10,10]`, the image will appear 10x in the same space it would normally appear once.

Setting `rotation` will rotate the texture by the number of degrees specified, with 360 being a full rotation.

Setting `offset` will offset the texture's UV by the amount specified with 0.5 being a 50% offset, and 1 being 100% offset.&#x20;

{% hint style="info" %}
Most models will have their textures set up to repeat, so a 100% offset will look the same as a 0% offset.
{% endhint %}
