Remix.run Logo
anonymous_user9 a day ago

> commercial printers will refuse to print anything that looks like counterfeit currency

They will refuse to print images that contain the EURion constellation, a cluster of points with specific distances between them. (https://en.wikipedia.org/wiki/EURion_constellation)

More generally, "Does this image represent US currency?" and "Does this 3D mesh represent a dangerous gun part?" are different kinds of questions.

Checking if an image is US currency is simple. Not only can an image similarity hash be used, but the design of the currency can be changed to make checking easier. The checking program just has to run a textbook algorithm and compare the result with a handful of hashes (we only have a few denominations of bills).

We can be confident that the checking program will always see substantial portions of the bill, so it can always see the pattern. If someone chopped the bill into tiny pieces, it would look fake when glued together. Looking like a real bill is the thing we want to control, and that's something we can reliably measure with simple algorithms.

Checking if a 3D shape is a gun part is an unsolvable problem. (It would be equivalent to making a program that can detect hidden "subversive" meanings in text.) The checker would have to understand how the piece could operate in the hands of a skilled person. Parts could be printed in multiple pieces, or have material removed after printing, so it'd have to anticipate all possible post-processing steps.

Even if the problem is limited to "match against these known gun part hashes", gun parts are not defined by their overall appearance. The files can be mutated until they no longer trip the detector, yet can be easily post-processed into functional components. (Also, a similarity hash for 3D toolpaths may not exist.)

(Such a hashing regime would be useless to stop "3D-printed guns" as a concept, because the design could be changed to not match the hash at all, without post-processing.)