I think its worth thinking about if we really do want a purist perfect binary definition, or even a 95% perfect definition?
My two cents is that doing open source hardware properly is hard. To me, in an ideal world you should:
- Have all your original design files openly available
- Use an open source license that allows reuse, modification, sale, etc
- Do the design in open source software
- Have complete assembly instructions
- Have complete usage instructions
- Do the design work and project management openly so others can understand the design process and contribute
- Many other things that don’t immediately spring to mind but I’ll be annoyed I didn’t say as soon as I post this
There are a few approaches to the binary definition.
- The “Vegetarian” - we take the lowest definition standard which I think is bullets 1 and 2. And this is open, and everything else doesn’t matter
- The “Vegan” - You must do every thing on this list
Do any projects in this community meet the Vegan definition as I have it? I think OpenFlexure falls down on incomplete usage instructions.
What about a hypothetical project that has everything on that list except one complex component where they have the STEP/STL but lost the source? This is a bit like a Vegan that has turkey on thanksgiving. Should we deny them their status as Open(/vegan) entirely?
I think if we make the barrier to being considered open source too high, then we are discouraging people from joining the community. If we set it to low we don’t reward those who go the extra mile.
I really like the approach of openness scores. Obviously fixing the weightings, and partial compliances with bullet points is difficult, but it is a way to reward progress towards an ideal, rather than have an arbitrary cutt-off from closed to open.