JSFiddle - React, Tailwind, and code Playground
HTML
<div style="min-width:250px;height:450px;">
<sayduck-viewer product="d9d023a0-cd3f-013b-dfef-3ae422ad63d9" mode="variants"></sayduck-viewer>
<button id="painting1">
Painting 1
</button>
<button id="painting2">
Painting 2
</button>
</div>
<script src="https://viewer.sayduck.com" type="module" async></script>
<script>
window.addEventListener(
"sayduck.api-ready",
(event) => {
const api = event.detail.instance;
console.log(api.scene.getAllNodeUuids());
console.log(api.scene.getAllMaterialUuids());
const nodeUuid = "d9d22160-cd3f-013b-bb53-3ae422ad63d9";
const nodeUuid2 = "d9d359c0-cd3f-013b-3619-3ae422ad63d9";
const materialUuid = "d9db14a0-cd3f-013b-a035-3ae422ad63d9";
document.querySelector("#painting1").onclick = () => {
api.scene.updateNode(nodeUuid, {
scale: {
x: 1.5,
y: 1,
z: 1
}
}),
api.scene.updateNode(nodeUuid2, {
scale: {
x: 1.5,
y: 1,
z: 1
}
}),
api.scene.updateMaterial(materialUuid, {
albedoTexture: "https://cdn.sayduck.io/a/shared_assets/files/006/953/473/f4a3e72b298664ddfabd63ca76c5f6fc26a16da0ff959eec2964e2f59d52d987-original.jpg"
})
}
document.querySelector("#painting2").onclick = () => {
api.scene.updateNode(nodeUuid, {
scale: {
x: 1,
y: 1.3,
z: 1
}
}),
api.scene.updateNode(nodeUuid2, {
scale: {
x: 1,
y: 1.3,
z: 1
}
}),
api.scene.updateMaterial(materialUuid, {
albedoTexture: "https://cdn.sayduck.io/a/shared_assets/files/006/953/472/c0416e7554d2a74b68c7116a65ab6c034905cb30af7e6b04d42819dca2559f6e-original.png"
})
}
})
</script>