Hide or block the download of source 3D object

No matter how you encrypt your code or 3D model files, you can not protect your content, and you probably shouldn’t do that.

As long as the modern GPU is still used to display something on the monitor, you can not stop user to get your content.

Ninja Ripper and many GPU Analysis softwares can directly rip 3D Models from the display card.

Here is an old but great article talking about this topic, by Brandon Jones

Some practical suggestions are:

  1. Split your 3D model files into pieces and do not use the entire formatted file like *.glb or *.gltf. Try to split them into vertex data level, loading encrypt or compressed content from a data base instead of files, for JSON format you can use MongoDB.

  2. Use HTTP software on your back-end server to control the permission.

  3. Uglify your Javascript code or use source-closed Webassembly module to deal your data.

  4. If you don’t care performance losing, do not use any usual image format (jpg, png, dds, crunch…) as texture, try to pass typed array directly to gpu or decompress texture just before drawing.

  5. Pray, the viewers don’t know any ripper software.

2 Likes