Obfuscating / hiding 3D Tiles data

Hi all,

I’m using Cesium for visualising 3D Tiles datasets of buildings as b3dms. I’m wondering how others are handling trying to keep the data secure and prevent the extraction of the geometry in the tilesets (for anything other than rendering in my Cesium app!). My building geometry is based on copyrighted data which legally can’t be shared in a way such that it could be extracted and re-used by others.

If a user wants to scrape the data from a Cesium application, they could locate the tileset location on the server and download the files fairly easily. However, getting hold of the geometry out of the tiles is then a bit more difficult due to needing to do some reverse engineering of the binary of the b3dm. But I guess it might be fairly straightforward given some familiarity of the 3D tiles spec.

What are my options for minimising this risk? I can obfuscate my js to make resources a bit more difficult to find, but is there anything else?

Hi Maptopixel,

One thing you could do would be to apply a hash to the binary, and un-hash it in your application before loading the resulting file. While it’s not foolproof (someone could always look for the hash in your code or spy on the GPU calls, which you can’t avoid if you want to render any geometry), it’ll provide an extra layer of obfuscation.

Thanks,

Gabby