Reputation: 26637
Some years ago I bought a 3D model at turbosquid and included it in my 3D scenario. Then I released the 3D scenario as a runnable jar file (Java).
The 3D model is likely copyrighted and the 3D artist could (but most likely won't) claim copyright. He got paid and never stated anything.
Now I wonder, hypothetically, if it's possible to "protect" the 3D model from being extracted since it is now technically possible to find the 3D model at turbosquid and if you want it you could just download my jar file and extract the model and get it free of charge which would be infringement.
Is there a way? (I don't have a legal problem and I'm mostly just wondering if it's impossible and how these cases usually are solved.)
Upvotes: 1
Views: 183
Reputation: 1003
The commonly accepted way (since this is a problem for almost anyone buying game-ready models) is to use a binary format when distributing. The clause is usually there to avoid people repackaging and selling the artists work. If it's in a binary format it's much harder to reverse-engineer.
If you use pure java, here are some options:
Make a converter for the format, serialize the model and save it as a java object. I've used this method for collada. Saves a lot of time reading the file too.
If you use launch4j, I think there's an option to include the .jar in the .exe file?
I suppose that you technically adhere to the license below if you use a password-protected and possibly encrypted zip file and hide the password in the code (since it would require reverse engineering to extract the password).
From the Royalty Free License of TurboSquid (bold my emphasis):
If you are redistributing something that includes actual 3D product files, the TurboSquid files must be part of a larger creation and not in an open format that others can be downloaded. Most game engines, such as Unity and Unreal, handle this automatically. In general, to prevent your end-users from obtaining TurboSquid products, you should use proprietary formats that cannot be extracted, exported, or decompiled without reverse engineering.
Upvotes: 3
Reputation: 8064
If your program needs to extract the model, then anyone can.
Now perhaps the jar could somehow be password protected (zip's can) and you could convince the class loader to use a password for that JAR, it would still not help you as the password would have to be part of your program.
Of course you can make it harder, but if someone really wants that model, they can get it. The only way to really prevent this would be to offload all calculations involving the model to a server and only return derived information (some games do this with part of their code to prevent illegal copies).
Upvotes: 1