To rephrase the question: how would you all maximally protect art assets in your babylon projects? What techniques would you use to limit/protect from download or watermark? Perhaps replicating what Unity web player might do (not sure what unity web player actually does, but assume there’s some asset protection thinking going on there).
I think that as soon that it is on the web or event rendered on your machine, the asset is out there There are no 3d DRMs so it is impossible to prevent copy. You can make it harder and more confusing but not really much more
Unfortunately, nothing can be 100% safe.
However, if your assets are stored and downloaded encrypted, with the decryption key download using a public & private key pair (so also encrypted) that decrypts your assets on a 2nd thread, with the key stored in private class memory on that 2nd thread , then it would make it much more difficult to access the asset.
Still hackable, but not easy for a user to simply access from the dev tools
As soon as you ask the client hardware to render the 3D asset, then it’s a raw string of vertices and texture data going to the GPU. And therefore interceptable. There are various tools out there for sponging up that data if you’re interested.
If you want your 3d assets to be secure, the best way is probably to render on your own server GPU farm, and stream a video feed to the client. There’s a bit of delay, but you can get really nice quality rendering since you control the hardware. And the client never directly has access to the vertex stream. An example: Car Configurator | 3D Vehicle Visualization | PureWeb
Absolutely, but in truth the same could be said about intercepting calls to DirectX or OpenGL in any games running locally. So in that sense pretty much any game you have bought contains 2d and 3d assets that are hackable in this way.
If you were to make an effort to encrypt the Babylonjs data being downloaded and stored, making it impossible to get directly from the network tab and local storage, would it really be that different?