Model interactions performances issues

Hello everyone!

we’re facing some issues with the ShapeDiver viewer that are impacting mainly our phone/tablet users but also some desktop ones.

On a phone/tablet when the model is getting rendered it happen very often that the whole browser tab is fully reloading without any alert or warning. It seems that the device memory or processor are not able to handle the processes triggered by the Viewer.

On Desktop we never had this reload but it happen sometimes to see these kinds of errors in the console :

index-c4294c62.js:52 Uncaught RangeError: Array buffer allocation failed
    at arrayBufferConstructor_DoNotInitialize (<anonymous>)
    at new Uint16Array (<anonymous>)
    at qr.copy (index-c4294c62.js:52:99605)
    at qr.clone (index-c4294c62.js:52:102272)
    at Nn.copy (index-c4294c62.js:52:113819)
    at Nn.clone (index-c4294c62.js:52:113609)
    at index-c4294c62.js:6312:24823
    at TLe.load (index-c4294c62.js:6312:24961)
    at mze.updateData (index-c4294c62.js:6355:46924)
    at mze.updateNode (index-c4294c62.js:6355:50605)
index-c4294c62.js:30 Uncaught TypeError: Cannot read properties of null (reading '3')
    at Module.fme [as transformMat4] (index-c4294c62.js:30:87940)
    at PJ.unproject (index-c4294c62.js:39:237338)
    at JLe.pointerEventToRay (index-c4294c62.js:6355:41711)
    at zze.pointerEventToRay (index-c4294c62.js:6467:19776)
    at zFe.pointerEventToRay (index-c4294c62.js:6540:65105)
    at BVe.onPointerOut (index-c4294c62.js:6540:155540)
    at index-c4294c62.js:30:131978
    at Array.forEach (<anonymous>)
    at Wve.onPointerOut (index-c4294c62.js:30:131965)

or

Processing: image.png…

When facing those, the model disappear from the Viewer and we need to close the tab or sometimes the whole browser in order to be able to reload correctly the model. It seems that some objects are stored in the browser local storage or cache.

In our app we’re manipulating quite often the model materials to do these things:

  • mouse hover on some object by updating the object material
  • object selection by manipulating the object material
  • object visibility by manipulating the material opacity

To do those things we use the updateVersion method on the parent node of the object we want to update

This is our model : pr-02-vp-20240829-var143-sd-upload
You should be able to access our app with this model already loaded from this private link : The Wooder - Configurateur

After hours spent on tracking every method processing time and optimizing everything we can on our code we’re a bit stuck and can’t see where the issue comes from.

Any help would be really appreciated!

Thanks.

Reviewing the application’s source code will be essential to identifying this problem. Please register for an onboarding session here, during which we will be able to do this with you.

Hello @snabela
I’ve booked a session for next Tuesday.

I’ll be with our front end developer.
Thanks.

1 Like