3

In ThreeJS can we load a 3D model without it getting exposed on the web page or browser logs (network/script/DOM) so that nobody knows the exact source of the 3D model and hence will not be able to download it.

Or can we stream the 3D model like a segmented or multi-part video asset?

Anything that can protect the 3D model from reaching the user using the web page.

Temp O'rary
  • 5,366
  • 13
  • 49
  • 109
  • This is _probably_ in a gray area of the SO rules of seeking "opinion-based" or "external resource" answers, but it's a good question, so I'm not going to flag it. – TheJim01 Apr 06 '20 at 13:05
  • Check this answer: https://discourse.threejs.org/t/is-there-a-way-to-not-allow-the-user-to-publicly-download-the-3d-model-and-texture-files-that-im-showing/434 – Alex Khoroshylov Apr 07 '20 at 06:04

2 Answers2

0

I'm going to mostly dodge your primary question, because there are many ways to protect your original file, like sending buffer data via a service or web socket. But this only protects the source file.

Once the buffers are in the browser, you can only try your best to camouflage them through minification/uglification/source-mangling. Any properly-industrious person could use a packet sniffer, or debuger to gain access to your geometry buffers and material information.

I see you have also tagged babylonjs, but I would apply the same assertion to any framework, or really any kind of data communicated to the browser in general.

TheJim01
  • 8,411
  • 1
  • 30
  • 54
0

You could send the 3d object encrypted, and then decrypt it on the front end in some minified code and provide some confusing method to pass the decryption key. With enough redirection and slicing things it could make it difficult for an adversary to obtain it. You could also send it over in a non-standard format, or as you suggested, chunking the file to be reassembled on the frontend.

None of these would be perfect, but would significantly reduce the number of people capable of cracking it and make it so the effort isn't worth the result. Most people's 3d models are not worth the effort to steal when there is a mountain of free ones available, and even if they get away with it, selling or using the model would violate copyright.

So, if you would like to keep some security, follow any of the steps that are easy enough to implement in your workflow, and know the risks of your assets being taken. Even compiled games from major studios have their assessed copied out of their games (and amusingly sometimes replaced). Once something is on someone's computer, and it is something their computer has to represent to them, there will usually be a way of prying it out of there if someone is tenacious and skilled enough.

RobKohr
  • 6,611
  • 7
  • 48
  • 69