Remix.run Logo
gmueckl 12 hours ago

How? The printer only ever retrieves G code for individual parts without any knowledge of what they are going to be assembled into. There is no viable way to solve this classification problem on this kind of incomplete data, is there?

Mashimo 5 hours ago | parent | next [-]

Btw, AFAIK they also want to lock down the slicer.

fsloth 2 hours ago | parent [-]

How the hell can you do that.

GCODE is mostly about pure maths and geometry (well, there's other stuff but in principle). They would forbid math? "Euclid is illegal."

Mashimo 30 minutes ago | parent [-]

If I remember correctly, they want the gcode to be watermarked. Or signed?

Maybe gcode watermarked and slicer signed? I can't remember. Something silly, that is for sure.

le-mark 12 hours ago | parent | prev [-]

It’s not nearly that hard of a problem. There are n gun files on internet, so validate the hash of those n files (g code whatever). These people aren’t cadding their own designs.

snailmailman 8 hours ago | parent | next [-]

One big part of this is that gcode isnt really a 3d model its a set of instructions on how to move the printhead around. You don't download the gcode directly, because that varies by printer. You download a model, and then a slicing program turns that into a set of printer-specific gcode. Any subtle settings changes would change the hash of this gcode.

And the printer doesn't really know what the model is. It would have to reverse the gcode instructions back into a model somehow. The printer isn't really the place to detect and prevent this sort of thing imo. Especially with how cheap some 3d printers are getting, they often don't really have much compute power in them. They just move things around as instructed by the g-code. If the g-code is malformed it can even break the printer in some instances, or at least really screw up your print.

There are even scripts that modify the gcode to do weird things the printer really isn't designed for, like print something and then have the printer move in such a way to crash into and push the printed object off the plate, and then start over and print another print. The printer will just follow these instructions blindly.

WillAdams 2 hours ago | parent [-]

Given that quite simple G-code, say a pair of nested circles with code for tool changes/accessory activation, can make two wildly different parts depending on which machine it is run on:

- a washer if run on a small machine in metric w/ flood coolant

- a lamp base if run on a larger router in Imperial w/ a tool changer

and that deriving what will be made by a given G-code file in 3D is a problem which the industry hasn't solved in decades, the solution of which would be worthy of a Turing Award _and_ a Fields Medal, I don't see this happening.

A further question, just attempting it will require collecting a set of 3D models for making firearms --- who will persuade every firearms manufacturer to submit said parts, where/how will they be stored, and how will they be secured so that they are not used/available as a resource for making firearms?

A more reasonable bit of legislation would be that persons legally barred from owning firearms are barred from owning 3D printers and CNC equipment unless there is a mechanism to submit parts to their parole officer for approval before manufacturing, since that's the only class of folks which the 2nd Amendment doesn't apply to, and a reasonable argument is:

1st Amendment + 2nd Amendment == The Right to 3D Print and Bear Arms

throw3e98 8 hours ago | parent | prev | next [-]

Guns can be made out of simple geometric shapes like tubes, blocks, and simple machines like levers and springs. There is mathematically no way to distinguish a gun part from a part used in home plumbing - in fact you can go to the plumbing section of your local hardware store and buy everything you need to build a fully functional shotgun.

satiric 8 hours ago | parent | prev | next [-]

The g-code is not being distributed, because it's specific to each printer, filament, etc. G-code is not the same thing as a STP or STL file.

mediaman 10 hours ago | parent | prev | next [-]

Seems trivial to create an infinite number of inconsequentially (but hash defeating) different variants.

beeflet 8 hours ago | parent | prev [-]

In 3D modeling, there are parametric files where the end user is expected to modify the input parameters to fit their needs. So for example, if you have multiple parts that need to fit together, you may need to adjust the tolerances for that fit, because the physical shape will vary depending on your printer settings and material.

Making tiny modifications isn't just a method of circumvention, it's like part of the main workflow of using a 3d model.