on stolen models / very crazy idea

Discussion started by Mantas-Talmantas

so, time to time some people here find stolen models.

its an exam time for me and i happen to detect ~4 student works that presented me with 3d models that they calmed are theirs but i found them here in on other 3d sites.

So for written student work (or any scientific work) there are sites that detect bad citation / quotation etc. so i was thinking how to do it for 3d models.

I started with backwards image search with texture maps - that proved very unreliable (0 results)

So i was thinking how can we make a search that detects "same" models. and my crazy idea is this. 3d model is (mostly) made of list of vertices with their coordinate 0,0,0,

Now model can be scaled and numbers change. but the relation between numbers stays the same. so would it be possible to make a format that lists not positions of vets but rather relations between them.

So say vertex that position is x-2.y-1.z-100. so we could say x-4. y-2. z-200 is "a same vertex" as long as all other verts. in a matrix has same "transformation". iam very bad in math so i am not really certain it makes sens. does it? or might be we dont even need such format its enough to have obj fbx etc - cos we have vertex position data anyways. all we need is an algorithm to compare 1000000 of models.

if so we could compare models. Next question would be if ts, sf and cgtrader would agree to open up thrugh some API of whatever but thats another question. Is it possible in theory?

ye, just a thought.

Answers

Posted over 4 years ago
2

It could be possible for certain file formats like OBJ where vertex order is recorded as text, but I'm not sure how that might work in a native binary file format, like .max or something else. What about models which were created from parametric primitives in the same software package. Let's assume theoretically that a bunch of people are selling a doughnut created from a simple torus primitive in 3dsmax. The only distinguishing factor between those products is the texture maps. The vertex order on all those models "could" theoretically match up perfectly. So it would need to consider more than just vertex position and UV coordinates. All models created with parametric primitives could contain the exact same vertex order and UV coordinates. I'm not saying those are good products, but I'm sure they are out there.

Mantas-Talmantas wrote
Mantas-Talmantas
absolutely, this would not work in your described situations. even in obj if u add subd on it- this method would not work anymore. but might be it could help find most lazy thieves in somewhat automated way.
Posted over 4 years ago
1

Actually in topology, the size or position of the object does not matter. Two cubes of different sizes, with 8 vertices each, placed at different spatial coordinates, are topologically identical. Nor does the shape of the object matter. If we take the upper face of one of the cubes and make it smaller, to form a truncated pyramid, they will continue to be topologically identical, even if geometrically they are different figures. And the opposite also happens, we can have 2 cubes exactly the same geometrically and positioned in the same space, but be different topologically, if one of them has been subdivided.

Regardless of normals, what identifies a mesh is the number of vertices, faces, and which vertices are part of each face. If you rotate an edge, the number of vertices and faces remains the same, but in 2 faces one of the vertices that the shape has changed, would no longer be topologically identical, although the degree of coincidence would be high and it could be said that one comes from the other. There are many models with messy meshes, in which some edges have been removed or added here and there to try to hide coincidences with the original model. Another thing that can help identify a mesh is the poles. They also rig them (in the models that have it), because it is something that many people do not master and do not usually modify it. You could analyze the mesh information from the obj file, but it would be neither simple nor fast. Not all exporters order vertices in the same way. Maybe it would be easier to analyze the UVs (there is one less dimension to analyze) and the textures, but being realistic, I see that it is very unlikely that nobody would bother to do anything. The only ones that I can think of that could do something are the Blender developer team, some addons have been made at the request of users.

Something simpler, than CGT if I could do, is to force to display clear images of the mesh, the UVmap, the textures and the rig. Or at least the model information (number of vertices, faces ...), which is often left blank, for the same reason (hide the evidence).

Mantas-Talmantas wrote
Mantas-Talmantas
ye, i guess that's what happens with proposals from people "not from the field" of math? or whatever. if it where easy it would have been done ages ago. Just one point about your example with two cubes where u scale down one polygon of 2 cubes. so u say its same topology. correct. but the relation of distances from vertex to vertex change and if its possible to get relations between verts then this would not count as same in this case. rotation - that's above me tbh. about scalability / usability of such tool. i think it would only be realistic (assuming it works) that when modeler exports say fbx 2030 (or whatever 3d model format) clicks "generate relations" or smth. it would not be realistic to expect that suddenly we can inspect all libraries of old fbx obj in the marketplace.
Posted over 4 years ago
6

If marketplaces would want to show initiative on identifying thieves, they could easily catch 80% of them in no time. Simple hash sum check would help to identify majority of stolen models. It's trivial task, yet it could be very effective. The problem is that no single marketplace would want to implement strict and effective measures against illegally sold content, because that would put them in disadvantage against their rivals. Effective fight against thieves would only be possible as coordinated effort. Not sure if that's ever possible though.

3D-Singh wrote
3D-Singh
Hash check would a simple yet good idea to catch all the lazy thieves, or at least give seller some tools to search by hash so we can detect if our content is stolen.
Posted over 4 years ago
0

As far as I can tell, eventually 3D models will get part of smart contracts in blockchain technology, everything will be stored in the blockchain and be part of every transaction/smart contract.

Posted over 4 years ago
0

Considering how many years it takes for TS to make just a new publisher page and how much time it takes for CGT to fix the site bugs, I don't think we will be alive to see that blockchain dream... I hope I am wrong..

Posted over 4 years ago
1

As a stolen car may change its color, number etc, The same with stolen 3dmodel - retopology (many programs have autoretopo tools) will change relation between vertices...

trimitek wrote
trimitek
Yeah, retopo changes everything, but it will at least require some skill and work from the thief. I'm not sure how well autoretopo works, but I suspect it's not perfect and if it requires some more work to fix, that will mean more wasted time. If the original model is well made and already in the market it will (most likely) be hardly worth the time of the thief to go through all this, just to put a worse looking model that will hardly sell.
luxxeon wrote
luxxeon
I use autoretopo on many of my own models. For example, I might design a 3d printable asset in Zbrush which has 2 million polygons, but I want to offer the client with a low poly version that can be subdivided. The only answer to this is retopology. However, some models are impossible to retopologize by hand. Especially complex mathematical art models. So Autoretopology makes that process much easier. The resulting edge flow is not perfect, as trimitek has indicated. Even with the most advanced autoretopology algorithms, edge flow may not be as clean as it would by hand, unless the model is rather simple. So in some cases, retopology by hand could take more time than actual subdivision surface modeling, depending on the complexity of the surface. In the case of the models we see here, however, the surfaces are very simple when you break them down, and they are often symmetrical in at least once axis, which makes automatic retopology much easier. The question becomes, what constitutes actual model theft if the topology has been completely redone and the textures or unwrapping are different from the original? There would need to be something about the "ripoff" or allegedly stolen asset which is exact to the original in order to constitute copyright infringement. I'm not sure what could legally be done otherwise.
Posted over 4 years ago
2

Just compare checksum or SHA1 hash of the model's files, and see what's the same, or do an FC (file compare) from the command line which will spit out the differences (warning, FC is best used for files less than 1~3mb, otherwise you'll be in for a lot of beeping and pain).
Checksum or hashes are mathematical computations that are basically the sum of the entire file's digits added into one giant number. It's used by many industry leaders to let folks know they got a valid file in all it's pieces downloaded without anything 'extra' unwanted stuff getting it either.
IF a user changes the file, even a little bit, it'll look way different number-wise. There is no way to 100% guarantee success using this method, or it would have already been implemented, but it will stop a lot of automated scamming right out of the gate.

luxxeon wrote
luxxeon
Yes, this would at least put an end to the massive amount of "grab and resell" scams we see around the marketplaces. People will steal models, change the names or whatever, then reupload them to their own accounts for sale, and try to undercut the original. That's really an epidemic lately and makes up the majority of the worst offenders.
Posted over 4 years ago
2

A few weird ideas that come to my mind.. in order of complexity.

I know that it's possible to autoconvert Maya, Blender and 3DS Max files automatically to other formats. "The other marketplace" does it, directly from the uploaded files. They are called "Generated gLTF". It can be done "under the hood" without making the 3d data public. At this point something could be implemented to compare the geometry of the new uploads to an internal database of the models that are already on Cgtrader, containing some sort of description of the model, maybe a convex hull or a voxel cage, to compare the general shape and proportions? At this point if they are found to be too close to other models they could be "flagged" for review before they are allowed to be released. Or the percentage of similarity could be shown in the model description.
It would involve a mixture of automatic calculation (to skim the amount of models to be checked) and then some manual work from moderators. Or in case the percentage it's shown in the model description, the community could spot the thieves more quickly.
Of course it's not an easy thing to do but it is possible. And of course it would only work on the files that are uploaded on Gctrader but it would be better than nothing...

Alternatively, the auto-conversion could be just used to "force" a render of the wireframes.

Or, since a 3D modeller with a minimum of experience should be able to export a model to obj or other formats, make this mandatory and again, implement an auto-render of the wireframe.

Your answer

In order to post an answer, you need to sign in.

Help
Chat