Talk:RepRap and Open Source
I am reorganizing the page RepRap and Open Source in the wiki, because I believe it is very important for the RepRap movement to firmly assert its basic principles and clarify the various questions that arise from the concept of Open Source and how it applies to hardware replication i.e. RepRap.
Now, the question of RepRap and Open Source can be examined from various angles and I am trying to bring all the previously available points of view into this single page.
The page is still very much work in progress right now and apparently there is not a single coherent, unifying view (which may be a good or a bad thing, depending on how you look at it) on this somewhat vast and controversial subject. So feel free to voice your opinion, either in the RepRap and Open Source page itself, in the Discussion tab here, or in a newly created page and add a link to it.
There was an interesting discussion about the use of Open Source 3D printable designs in the forum which surprisingly demonstrated that the subject was more controversial than what I would have expected, given that the RepRap movement is entirely based on the idea of open source hardware. The thread can be found here: Use of Open Source designs
The subject is still surprisingly controversial from what I've seen, what some developers think opensource is can get quite twisted sometimes,
I would have thought that given the length of time that this project has gone on for there would have been a standard of sorts universally accepted by everyone , which there is to a limited point...
the closest we've come so far to even defining what we consider opensource is in this community "Sources sufficient to make a copy" and pretty much what some of us admins have been trying to enforce with limited success.
As i see it we have three types of opensource hardware developers:
1 - the developers who publish everything in the format the source code is in and use services like GitHub to make contributions by others easier and actively accept contributions eg Smoothieboard, Ramps , many others
2 - the developers who publish a limited and cut down version of the sources often in formats you cannot import into any software (a jpeg of a schematic) and usually missing half the information however it's usually just enough to be allowed to use wiki pages and forums for advertising where you can buy the hardware, eg Azsmz.
3 - claim the project is opensource however don't publish anything or promise to publish sources after a kickstarter
Imho 2 and 3 are really unacceptable in our community we only really tolerate them because there is a train of thought out there that says because it cheap and they claim to at least be opensource they should be allowed to abuse the wiki and forums however it's wearing thin with a lot of people.
A while ago we started using a "tag" system to mark pages which existed for either advertising purposes and falsly claimed to be opensource or pages which just didn't have any sources at all, in almost all cases this was successful in getting authors to cough up sources however there were a couple we ended up removing entirely as there was no communication and/or it was clear through communication they had no intention of publishing anything.
at the risk of being called a Nazi , a dictator and other things I've been called in the past over this topic i'm of the opinion that we can get around the controversy by looking at the issue factually and literally:
the term "opensource" consists of two words "open" and "source":
the context being:
"open" as in visible to all, accessible to all , anyone can come and go/contribute and take...
"source" as in the original material, the data from which everything is made from ...
yet there is a lot of argument on what we call "sources" to me sources are the files that you do the design in and contain all the information required to build a complete working copy.
in terms on what we allow on the wiki i think (and i would be very much in favor of), requiring every project that claims to be opensource to:
- publish and maintain proper sources on GitHub
- if they are selling the results of the project provide one link to the sales page on the project wiki page and every other link on the wiki relating to the "product" must link to the wiki page not the third party site
- publish the sources immediately, not in 6-12 months time after a kickstarter
- if they have a username on the forum the signature should bear the link to the wiki page and/or sales page for the project , that way users can see any bias in recommendations for certain boards by particular users.
At the end of the day, this is a wiki here for the purpose of providing information in the spirit of opensource collaboration on a machine that produces copies of itself (or as much of itself as it can), it's not a marketplace for those who's only real intention is to make money out of it and not really help t grow.
We loose nothing at all as a community if we removed every project that is not truly opensource in the simplest form.
I'd like to chime in here.
«Open-Source» is not «Source that is opened». What I mean by this is that the term Open-Source means more than just "opening" ( ie. render visible ) the source.
Open-Source is not about what is rendered visible. It is all about the license. It is about what rights are given regarding the design.
What is Open-Source
Imagine a design for which the blueprints are given, but the copyright holder for that design does not allow any kind of use for the design : no use allowed, no modification allowed, no redistribution allowed. ( Those actually exist ).
While in this case, "the source is visible", the design is most definitely not Open-Source ( or if it is, it is under a useless definition of Open-Source ). This means that what defines if something is Open-Source or not, is what rights are given to the user ( the visibility of the source being a given, there can't be any rights without visibility : you can't share or modify something you don't have ). Open-Source is more than visibility.
This is Open-Source 101. It's not that complicated ...
This is the reason why the second line here says «Open source doesn't just mean access to the source code.»
What rights ?
The definitions of both "Open-Source" and "Libre/Free" are sensibly the same in the rights they guarantee to the user. The difference between the two is just that one is about usefulness, the other is about ethics.
The requirements for a license to be "Open-Source" include ( non-exhaustive list, I'm using the Open-Hardware definition here as it's the most relevant to Reprap ) :
- The hardware must be released with documentation including design files, and must allow modification and distribution of the design files.
- The documentation for the hardware must clearly specify what portion of the design, if not all, is being released under the license.
- The license shall allow modifications and derived works, and shall allow them to be distributed under the same terms as the license of the original work.
- The license shall not restrict any party from selling or giving away the project documentation.
- The license may require derived documents, and copyright notices associated with devices, to provide attribution to the licensors when distributing design files, manufactured products, and/or derivatives thereof.
- The license must not discriminate against any person or group of persons.
- The license must not restrict anyone from making use of the work (including manufactured hardware) in a specific field of endeavor. For example, it must not restrict the hardware from being used in a business, or from being used in nuclear research.
- The rights granted by the license must apply to all to whom the work is redistributed without the need for execution of an additional license by those parties.
- The rights granted by the license must not depend on the licensed work being part of a particular product.
All of these, are to ensure the rights and freedom of the person using the design, as well as to ensure those rights are preserved for derived works.
This is what is meant by Open-Source.
In the context of Reprap
The Reprap project is all about Open-Source Hardware.
Reprap ( and ideally as many as their components as possible ) is about self-replicating, evolving machines :
- Users make a machine, and print parts for other machines with it. Some do it for free, others do it as a paid service, and both have helped the project advance.
- Users also modify the design, and create new designs. Because the project is Open-Source, they do those modifications under the same Open-Source licenses, meaning others can then further modify the design, and so on.
What I'm trying to say here is : Reprap is what it is because the fundamental rights of the user regarding the design are protected.
Simplifying a bit here but :
- Imagine Reprap was originally released under a license that did not allow for redistribution of the design. There would be no self-replication.
- Imagine Reprap was originally released under a license that did not allow modifications of the design. It would never have had the history it has. There would be no evolution, and self-replication would be limited to a single model.
- Imagine Reprap was originally released under a license that did not allow for commercial use of the design. Evolution of the design would be seriously reduced, and self-replication would be seriously limited.
You can have the same reflection and replace "Reprap" by "Linux", "Gnu", "Firefox", "Arduino", "Wikipedia" or any succesful Open-Source/Libre project, and it still works.
Reprap would not exist as it does today if it did not protect the rights of it's users/contributors. "Visibility of the source" alone would not have had nearly close to the same result.
Reprap, and it's other friends in the Open-Source world, are what they are because they protect the rights of their users, via their license. This is objectively a very important part of what Reprap is.
Reprap started the Open-Source 3D printer revolution. Reprap is what it is because it is Open-Source in the sense that it protects it's user's rights, not because it's Open-Source in the sense that it lets you look at the source code.
Let's be clear : when you sell a DIY, part-DIY, hobbyist, amateur, semi-pro or pro-for-hackers product, being Open-Source ( or claiming to be ) will result in increased revenue ( most of the time ).
There are several reasons to this, here are a few :
- Customers want to encourage projects that share their Open-Source enthusiasm.
- Customers believe an Open-Source project will get more community ( support ) and contributions ( evolution ).
- Customers believe the product will be more reasonably priced due to the ease with which it can have competing products.
- Customers believe the product will be supported for longer due to it's open nature
- Customers like their rights to be protected
- Customers might want to modify the product, and it's design
For this reason, there is a certain incentive to claim one's product is Open-Source, even if it does not actually give the user the rights the user thinks the Open-Source label entails.
This results ( and this is very well documented, at least in the ( less recent ) Open-Source software world ) in what is often called "Open-Washing" :
Claiming that a product is "Open-Source", when it does not actually give the user the rights that the user thinks they are getting.
When this is done, the definition of "Open-Source" that is used is pretty much the one that is now used on the Reprap Wiki to define Open-Source, I quote :
From this page : « RepRap's lowest common denominator about what Open Source is: Comes with sources sufficient to make a copy. »
This means that now, on the Reprap Wiki, anything, no matter the license, no matter the rights granted to the user, no matter how easy or hard making such a copy is, is considered Open-Source.
This results in sellers posting their products with files that could enable the user to make a copy, with quite a bit of added work, and not granting the user any rights to use, modify, redistribute or sell.
How is this anything but a ridiculous travesty of what Open-Source Hardware is ?
For your own enlightenment, you can do a bit of research on who mainly is pushing/defending such a definition to be used on the wiki, and whether or not they are the author of a design that is published under a license that does not provide users with the rights Open-Source entails. I am not here talking about bad intentions, or even malicious profit-making, but about who should be making such decisions, and whether or not some people are objective and uninterested enough on a given subject to be able so take a sensible decision with enough hindsight. There is a reason why we don't allow sellers to modify the buyer's guide, would the same reason say something about who can redefine what Open-Source is ? Impartiality is important for any system to function properly.
The world is not just full of products that have no license and allow no rights to the user, and projects that have a valid Open-Source license.
There is something in the middle : projects under a license that restricts the user's rights in a way that makes it incompatible with Open-Source, but still provide some ( or even most ) rights.
Two famous examples :
- CC BY-NC : NoDerivatives — If you remix, transform, or build upon the material, you may not distribute the modified material.
- CC BY-ND : NonCommercial — You may not use the material for commercial purposes.
While these two license grant some rights to the user, they do not grant the full range of rights required to qualify as Open-Source.
They exist because they are useful to people that want to release their designs under such conditions, but they are not Open-Source. Even Creative Commons says so, in agreement with the definition chosen and accepted by the Open-Source community.
The "lowest common denominator" fallacy
So, the Reprap wiki nowadays says : « RepRap's lowest common denominator about what Open Source is: Comes with sources sufficient to make a copy. », and flags for deletion pages that do not fit this definition.
This is great because it means the Reprap wiki shouldn't contain things that are not Open-Source. It's horrible however, in it's definition of what Open-Source is.
Imagine a meeting in which a group of people tries to figure out what the definition of Open-Source is. Instead of just using the definition that is commonly accepted, the definition that allowed the project to become what it is, the definition that protects the rights of it's users, they decide, for whatever reason, to try to figure out what is "the lowest common denominator" of a definition of Open-Source amongst them.
First somebody proposes, as a baseline, the ubiquitously used OSHWA definition.
Somebody else steps up, and says they consider projects released under the CC-BY-ND license to still be Open-Source. This is now the lowest common denominator.
Somebody notes that CC-BY-NC is not much different, and they consider it Open-Source. And as -ND is now considered Open-Source, then CC-BY-NC-ND should be as well. This is now the lowest common denominator.
Somebody else says they publish the files of their project under the CC-BY-NC-ND license, with a special clause forbidding Finnish people from using the files. This is now the lowest common denominator.
Somebody notes they might as well follow the definition they use for their own project, which does not allow any use of the files, has a strict copyright clause, sues anybody that tries to use the files, but still provides them in a proprietary format for documentation. The definition is now "Comes with sources sufficient to make a copy ( but does not necessarily allow to make a copy )". This is now the lowest common denominator.
Somebody in the back of the room stands up and says their product is Open-Source, but only provides the files for a $1 million fee, with no right to modify, use or distribute the files. This is now the lowest common denominator.
Somebody else, finally, says they will never show their sources to anyone, but still want to call themselves "Open-Source" as it sounds cool, and it is their first amendment right to call their project whatever they want. This is now the lowest common denominator.
Using a "lowest common denominator" means that anyone can come in, and lower the bar as they please. It is not in any way a useful definition. The bar only got as low as "Comes with sources sufficient to make a copy." in the Reprap community because on the random set of people present at the moment of the discution that decided this. It could have gone higher, or lower, without any specific reason other than the fact it was decided to use the least open-source definition somebody could come up with. The game was rigged from the beginning to end with a definition that restricts user's rights.
So, should we really choose "the lowest common denominator" as the criteria for what is acceptable in the Reprap community ? How can such a random, rigged and unfair criteria be considered any close to good ?
Why is the lowest common denominator ( a dumb solution ) what should be used ? Why not rather "what is best for the community" ( if you can figure that out ) or "what most of the community considers Open-Source" ( what angers the least people ), or "what is considered a useful definition" ( what the term actually means ), or some other criteria ?
A proposed solution
Bellow is my opinion on how to address the problem of what should be considered Open-Source, and how projects under different licenses should be treated on the Wiki, and in the Reprap community at large :
Over the years, quite a few projects have started in and around the Reprap community, under non-Open-Source licenses. I think if there had been stricter control on what should be considered a part of the Reprap projects, and better explanations had been provided on what Open-Source is ( which is often necessary ), user's rights would today be better protected overall, and at least part of those projects would have chosen to go Open-Source.
In the Reprap community overall, Open-Source projects tend to grow faster and bigger than projects that are not. However, non-Open-Source projects that are still documented, do provide some inspiration that can help the project grow.
My personal opinion on this, is that Reprap is an Open-Source project, and products/project that are not Open-Source should be considered the same way we consider threaded rods, hobbed bolts, and endstops :
- They are not Open-Source, and therefore should be clearly distinguished from projects within Reprap that are.
- They should only be able to advertise the same way we allow sellers to advertise hobbed bolts and threaded rod ( vitamins ) : in limited places, with a-priori moderation.
- They should not be documented on the wiki. Documentation for a non-Open-Source product on the wiki is advertising ( documentation for an Open-Source project is advertising too, but it is acceptable, inside-the-project advertising ). We wouldn't allow a full page advert for a non-open-source hobbed bolt or thermistor on the wiki, why do we allow it for non-open-source hotends, electronics and 3D printers ?
I believe while this might not seem obvious right now, as more and more non-open-source sellers try, and will keep to try, to use the wiki to advertise products that do not share Reprap's Open-Source values, it will become by their examples, more obvious what can and can not be accepted, and where the line must be drawn.
This solution above however really only makes sense if I proposed it 10 years ago. The wiki is now full of pages about non-Open-Source products/projects. Removing them after allowing them in the first place for so long is unfair to the person that created them in the first place.
So my proposed solution is :
- Do not allow new non-Open-Source projects/products on the wiki. They can have their own wiki, and advertise in the few places where this is allowed and moderated a-priori.
- Remove those projects that do not provide any source and/or do not give the user any right, as those are just pollution.
- Add a banner to the top of pages about projects that are not Open-Source but still give some rights to the user, explaining that Reprap is Open-Source, that this project is not, and is restricting the user's right, explaining why it is not open-source, and linking to a longer explanation of the difference ( Which is not obvious to all. We all have to look things up before understanding them ).
- In lists of projects and products, clearly separate projects/products that are Open-Source from projects/producs that are not, putting the Open-Source projects list on top, and adding the banner described above to the second list. You'll note this is already being done, but some products/projects get special privilege.
( As an aside, and as this is just my personal opinion, I would like to add that I believe that while convenient for users, the buyer's guides should not be on the wiki, they are way too much work for the admins, get outdated fast, and are way too mis-used. There shouldn't be a single link to a shop on the wiki, only links to Open-Source projects' websites. Again, something it'd be difficult to go back on ... )
There you go, this is my ideas on this this subject, I'd be happy to discuss this with anyone.