šŸ†˜ Protect our code

Erm…

Don’t you know what you wrote?

You never said the exact thing you said!

Except, you have been, the fact you don’t appear to know you are doing in this thread and everywhere else is concerning.

Maybe you are just really rude and no one has pointed it out before. You are though

I responded to your points after you were rude to others including me and taking the topic to your position and ignoring the subject.

It also isn’t available in MakerWorld for users to interact with. App,es and oranges.

Thats partly correct, you can do the same with Fusion as it also provides access to Parameters. But indeed, you need to install it and need to aquire a Hobbyist license - but itĀ“s free for that usage. The same as you can use the OpenScad client (but you don’t need to manage dependencies manually). But this is not limited to Fusion, also others provide that kind of parameterized models. In the end, itĀ“s just an interface - the difference here is the distribution of that interface. Both do not work on Mobile. I agree that the user does not need to install anything on their computer.

I have no experience on Linux support, but I trust and bet you are right on that one. Anyways you not really need to understand Fusion, for many this is the entry into learning as they can just edit the parameters and step the timeline to see how it“s done. So, yes - not as easy as hit a button to download - still even for uneducated users not a big problem.

But it would be better if they did, right?
So, we can fix their bugs? :rofl:

Sure, everything takes time, but it“s not so much as you may think. Depends on the Programmer skills and OpenScad sometimes really picky and limits itself how the code is executed. So, you have to do unnecessary work. But if the math turns out - it will be done anyways. I agree that you will propably stop the Script Kiddies.

And who validates that the uploaded code is original? My argument still stands, that also here theft is possible and copyright violations to publicly available code.

1 Like

Sure, if you think this is a problem - all others have the same problem. And you can decide to use or not to use it. If you were focused on a conversation like the others, I’ve explained it further.

Don“t get me wrong, but if we want to discuss - is it not normal to have different opinions? I disagree with the proposed solution - i agree that we need to protect the authors. So, what is the problem?

The only argument brought up to the table is that no one can copy the code easily - and that will solve all our problems, repeated over and over again.

Are my points invalid?
Are my points not worth being talked about?
Do my concerns care?

1 Like

Had you framed your posts based on this logic, you’d have had valid arguments, the problem is - you didn’t.

No one said it would solve all problems, it was a suggestion to solve one.

I have no idea what that relates to, it doesn’t relate to me correcting you when you said you didn’t say the exact thing you said and denying it.

No, but, entirely off topic. If you wish to discuss the merits of open vs closed source, create your own topic. If you wish to share your position that everyone should be treated as guilty of theft rather than innocent first, create that post.

No idea what that even means.

I did not?

You did not?

How can this discussion be off topic, when we are taking about hiding the sources or not? When was it asked for opinions for this? I am also not treating everyone with guilt. I just want to be able to check if guilty or not if necessary - and report that behavior. I am also advocating for that this is the best way to protect users, as we can determine the original authorship - to protect the authors.

Again, i answered to:

1 Like

This is so wrong that it seems like you’re discussing totally different subject. We’re talking about Parametric Model Maker. The tool available within MakerWorld. No other software necessary, no ā€œregister with Evil Incā€ necessary, no external site, no tricky licence… totally different thing.

Next couple paragraphs in that reply were mentioning Fusion so total Off-topic.

Similarly to theft of models, theft of generators is possible, so what?

In case of stolen generator, if it’s deterministic, then with same input the output will also be the same. It’s more fool-proof than relying on identical code since code can be obfuscated and diffing code itself is not good.

If the code uploaded is properly protected then making copy of it is nearly impossible (and as I argued - making similar thing isn’t the same as copying).

You seem to argue here against copyright violation by forcing publication of the code, while there are creators who would love to allow people to generate their own version of their parametric models, based on their generators, but not publish the code for it, precisely protecting themselves from theft!

Yes he is, but both sides of this are legitimate arguments. For creators that have published code the best way to protect it is to make the creator code auditable. For new creators who have unpublished code, the best way to protect it is to keep it secret.

I ask you to consider how difficult it would be to police model theft if instead of supplying 3mfs or STLs, Makerworld simply opened a secure connection to your printer and sent it an encrypted payload. (And as absurd as this sounds, I think it is on their roadmap.)

Not only was this off topic, you only stipulated protection if the code is readable.

If the code is readable, it isn’t protected is it.

That is your problem in a nutshell, you don’t even know how to read what you write and still you think it is the basis for an argument.

The original topic discusses how to protect code and you say the only way to protect code is to start with the theory the designer stole the code and to prove they are innocent, they must hand over their calculations to everyone. Innocence be damned.

And still, you can still do the same parameter editing in fusion, as i stated.
And please also note I’ve agreed with the installation of external tools. So, what’s the point undermine the parts I’ve agreed to? Still the difference is the distribution of that interface.

Please see this as an example:

Please provide more details for the stolen generator part as i may misunderstand you, as the quote is about where code was originating from that was used within the generator.

Yes, you got it correct. I am arguing that the best theft protection is publication of the code. As thieves also can be forced to proof origin and share their sources if doubt.

If you really want ā€œbestā€ possible protection, @krellboy is on point here. Denying access to STL/3MF/Sources files in general and directly talk to the printer with a secured encrypted connection. Only better would be to have it send to a secured print farm and the customer only received the finished object.

While i personally hope it’s not on their roadmap :sweat_smile:.

Yup, it would be great protection for new, unpublished models. But it would be a nightmare for proving that an encrypted model was stolen from an existing open model elsewhere. It’s the same trade-off as the one being debated.

So I changed my vote from ā€œnoā€ to ā€œdon’t careā€ since there are persuasive arguments for both sides.

How many times do I need to repeat that we’re not talking about fusion or any other external tool?

You know, the thing that appears after clicking this button:

obraz

and appears like this (and the OP suggests to hide the thing circled in red):

Which is silly, because it misses the point of the suggestion: the theft would be (nearly) impossible if the code was not available in the first place!

And there’s very easy way to detect theft of the generator (the generator in this case being an openscad script): In case of deterministic generator, with same inputs, same output is generated. Compare outputs from suspected generator with the original - that’s more foolproof than comparing possibly obfuscated code.

2 Likes

Not sure if i was unclear, i am aware what we are talking about - and i see no difference in the availability of the sources. As mentioned, same purpose different interface. A parameterized model, that can be customized within the boundaries of the Author. The same way i can compare fusion (insert whatever) sources, i can read code of openscad - i even can tell you if it was being generated by AI-Prompts.

Im also aware of the codebase the parameter editor is based on (GPL 2.0)

Another implementation coming closer to what MakerWorld uses (GPL 3.0)

They at least are based the editor on the WASM Port, or even IF they did their own WASM Port, they need to have it also under the GPL-2.0 License, because it“s a port of OpenScad. But my WASM experience is limited, so not sure what the origin is based on.

Thx for your guide, but you also need to remove the files from the Download section. Just to ensure we have the full circle, hiding the code view in the editor is not enough. Otherwise, it will be pretty easy to grab the sources.

Ah you can simply grab the objects from the request, no need to download it. Check for Parametric_Model_Maker.obj in your requests (Network Tab in developer tools)

If we take this scenario. I would be too lazy to do this, better is a simple automation attached to my Etsy Shop that builds the customized version for me on order.

  1. Read order details
  2. Send order to worker to download customized files, prepare print
  3. Add it to the queue
  4. Print it

Would probably do the picking from the printer manually, also boxing and shipping.

You would also not know that i do this, because MakerWorld still does not provide raw numbers.

So, we now have a closed system, and no benefits, except script kiddies that only want to copy, and tinker and learn are excluded. Anyone with little to no skills can build such an automation. YouTube. (Also how to bypass captchas, there are even services for that).

The only thing we lost is to validate the origin of the code. :+1:
This solution protects no one.

I am quitting this discussion here, feels not like a discussion about pro and cons.

But would like to see the estimate in hours to get the necessary lockdown, also a simple writeup about the technical solution, challenges and implications would be nice. Always nice to read how it“s being made.

benjaminkott, I see your point and I love that open source exists, actually I prefer using open source software (Linux, Libre Office, OpenSCAD,.VLC and a couple of others; if I ever try other CAD software it’d be FreeCAD).

I do see the similarity between Parametric Model Maker and parametric Fusion360/FreeCAD/… files: In my opinion there is a difference in ease of access, but not in the basic principle. There are OpenSCAD models on Printables, and users need to install OpenSCAD, which I’d count as an inconvenience but not a major difference; same goes for Fusion, where the package is bigger and the installation and license and ease of use is just a bit more inconvenient, still, a matter of minutes.

I also understand how open source protects original work, because all code can be checked for plagiarism. However for us amateur designers checking all code might be difficult, and handling infringements like ā€œthose 42 lines are from my code, just some variables and functions renamed and differently formattedā€ might be over the head for MW to verify. They already struggle with simpler infringements.

I myself however tend to publish only a small fraction of my projects with source code, which is indeed hypocritical, and I’m not proud of it. In the essence I especially do not want others to earn money with my work.

So in the end, what’s my opinion about private code? I’m not sure. I’d probably publish a few more customizable models with private code to hide my little coding secrets (again, hypocritical, I know), but on the other hand, other people can steal my (or other people’s) already published code and hide it behind that private setting and I can not check that, and MW won’t.

However, looking at the christmas models, where a couple of people used abekabakoff’s Christmas Tree OpenSCAD script and just published some generated trees (sometimes with modifications) as their own original work, and at how copyright infringement reports failed because the STLs look different, my current conclusion is to only publish OpenSCAD/parametric model maker models I don’t care much about. MW is an environment with high incentives, which lures shady people, fosters rivalry and thus comes with a certain toxicity.

In an ideal world things would be so much better, but we can’t have an ideal world, because of… humans (me included).

2 Likes

I’ve said twice in this discussion how that can be verified without access to code. There are other ways possible and worth discussing however…

That’s because your only offered ā€œsolutionā€ is ā€œno to OP’s propā€ and the reason is ā€œwouldn’t be able to read code in order to compare with others for theftā€ but haven’t actually interacted with other proposals and their pros and cons. And you haven’t even acknowledged possibility of code obfuscation which makes human-based comparison of code impractical.

I can see another ā€œproā€ of hiding the code: the situation @DrJones descirbed - if the code for generator was hidden and the author implemented a fingerprint in the generated geometry, the models obtained via generator would be fingerprinted and possible to spot.

side topic - online model generators

Another possibility, especially for online model generators, that would help in the above situation: add header or some data to the generated file indicating that the file was generated and using what script… Then the upload could verify that data and force proper attribution :slight_smile: Sure, humans be humans and there’s noting non-workaroundable but it’s anothr hoop thiefs would have to go through.

You know… Now that I’m looking through your replies and the OP’s request, you haven’t even addressed good idea @Oxooxo had which beats script kiddies and people who don’t know OpenSCAD: It’s not even necessary to hide the code of the generator script if the user would be able to create own private library of funcions/modules and then reference them in their own code. Just imagine atop the file:

use <userprivatelibs/mymodules.scad>

then the code is ā€œopenā€, can be verified by humans, can’t be stolen so easily… and if somebody does a drop-in of somebody else’s openscad into their private modules, I doubt they have enough skills to take advantage of that (so far I haven’t seen any model thief that was actually skilled enough to make their own model, I bet the situation is the same with openscad scripts)

Was just reading about this someplace. Apparently whether copyright extends to the output of a computer program is a bit fuzzy. In the case of tree generator, probably, but that’s not a universal rule you can just assume.

As John Lennon sang, ā€œThere’s nothing you can do that can’t be done… ….Nothing that you can make that can’t be madeā€¦ā€ Realistically what does one expect when publishing 3D models that others can download and print for free, created using a free program? In fact a good way to learn about things like 3D modeling is to dissect the work of others. Does not the creative community benefit from incorporating the ideas of others? I had a career in R&D, seen a lot of cross pollination of ideas.

Did not the 3D printing community grow out of the open source community? Is that not why so many favor Linux which is essentially a remix of Unix. The failure, or perhaps the lack of success from the open source community is that it relies on the creativity of a few that many can then claim credit for and profit from.

As the story goes, a couple of engineers from the Netherlands had discovered that by feeding stepper motors sine waves instead of square waves that they could get stepper motors to operate quieter with greater positional accuracy at higher speeds. The next generation of 3D printers incorporated the new stepper motor drivers. The marketing touted the improvements to the printers, yet ignored where it came from.

Yet, abekabakoff remixed the model from elsewhere. I’m sure the idea is in the public domain. That particular tree type can also be seen on the Bambu Lab store’s PLA basic page. In the picture just below the filament listings.

I first got the idea after seeing pictures of failed prints, thinking that if the failure was controlled, the spaghetti could be used to create interesting shapes. My thoughts at the time was the creation of 3D printed flora to accompany the miniature buildings that I have been developing. This demonstrates the difference between using OpenSCAD and Autodesk’s fusion. I’ve looked closely at the Christmas contest trees. It is something that I can easily create in fusion but with much greater form and complexity.

One does not have to limit oneself to simple cone shapes. By using the basic technique of controlled spaghetti generation combined with the organic shaping capabilities of fusion forms, one can create all manner of shapes that can mimic just about every tree shape. Sure the trees in question, the cones, look like Christmas trees, but give it a more globular shape, print it in pink in conjunction with an adequate brown trunk and it looks a bit like a cherry tree in full bloom.

1 Like

Hi, first of all I would like to thank you for your active participation in the discussion.

Even if I don’t share all the points of view, I think it’s very good that we are actively discussing ideas for the design of Makerworld. At the end of the day
MakerWorld / Bambulab decides what will actually be realised.

So far, it has mainly been the designersā€˜/developers’ point of view that has been highlighted.

The fact that Makerworld could have a unique selling point as a platform for parameterizable models is somewhat overlooked in this context. Makerworld could offer something that (as far as I know) no other 3D modelling platform has.

Do you see it the same way?
@MakerWorld would you like to comment?

2 Likes

This topic is also gaining traction outside of MakerWorld:

https://www.reddit.com/r/3Dprinting/comments/n0ckto/drm_for_3d_printing/

coming from the software development world, I can guarantee that licenses have no effect. It was the same with the video game industry in the 90s and early 2000s: almost everyone pirated.

The most effective way to prevent theft is to implement technology that prevents unauthorized use. This can take many forms:

  • embedded DRM
  • blockchain
  • encryption/decryption (think license keys like when you buy software)
  • slicer integration
  • others?

There are downsides to all these avenues, I’m sure we can rattle off several for each of these items. I believe the eventual solution needs to become an open source standard that can be opted in to. Not all files should need to be protected. However, if you want to license your files, the license should be able to be baked into the file itself. If we approach this from a new file format view, this means that slicers will relatively quickly adopt the new format and integrate functionality to process these protected files in addition to the standard files we use now.

2 Likes