gradientspace / geometry3Sharp

C# library for 2D/3D geometric computation, mesh algorithms, and so on. Boost license.
http://www.gradientspace.com
Boost Software License 1.0
1.69k stars 379 forks source link

License / Patent worries ? #103

Open Smiley3D opened 5 years ago

Smiley3D commented 5 years ago

Hi Ryan,

thanks for creating this project and releasing it under an open source license :) It is impressive & looks very interesting. I read a lot of information on your websites / tutorials, where I also found your "Patents" section at rms80.com/research .

For me, it looks like some of the algorithms in these patents are used in your software here at GitHub. And it looks like as some of these patents were granted to a very big US company (AD) in the meantime. (e.g. the Adaptive mesh refinement patent .)

I am not a lawyer (!) and might completely misunderstand the situation (!), but doesn't that mean that everybody that develops & uses / releases software based on those patented algorithms is at risk to get sued by that company (if one does not license these patents first from that company) ?

Can you please clarify that subject a bit ? Hope I am wrong here, but I am currently very worried about this, thanks :)

rms80 commented 5 years ago

Sorry, I am not a lawyer either, so nothing below constitutes legal advice, just my non-expert opinion, posted on the internet.

Software patents are written in a very convoluted way, and you really need to learn how to read them to be able to interpret them with any accuracy. The title is not the patent, it's just a title. What the patent actually covers is in the claims. But you need to understand independent vs dependent claims, etc. Ultimately what a patent covers is only decided in court. You can pay a lawyer for an opinion but you get an opinion, not facts - only a judge/jury decides the facts (patents are horrible).

I did not write any of these patents, they were written by lawyers based on things I described to them at a conceptual level, and then the patents were filed with the USPTO, which then might reject certain claims as being not-an-invention, then the lawyers rewrite it, etc, etc. I had zero involvement in any of that. So, I have no idea what any of these patents actually ended up covering/claiming. It could easily be complete nonsense (the lawyers are mostly not geometers). Or only cover a tiny little implementation detail, or a very specific version of an algorithm, or be incredibly broad (if the patent examiner did a bad job of finding prior art). I can't comment on any of that, I have no idea.

What I can say, is that the remeshing implementation in g3Sharp, is nearly a stock implementation of this 2004 paper: http://graphics.uni-bielefeld.de/publications/sgp04.pdf. This paper pre-dates my time at Autodesk, and hence any of these patents. It is not "adaptive" in the sense that it tries to achieve a uniform mesh, not an adaptive mesh.

But "adaptive" remeshing was also known before 2013. Here is a paper (which was published in 2013) that cites various prior works in adaptive remeshing that pre-date that patent application: http://graphics.uni-bielefeld.de/publications/eg13-remeshing.pdf

So, what precisely does this patent cover? I really have no idea. I implemented a very specific adaptive remeshing strategy in Meshmixer (not related to that 2013 paper). Maybe that's what the patent covers. Maybe not.

In general, "willfully" infringing a patent means any damages are tripled in a court case, where "willful" means you know about the patent and infringe anyway. Since I am listed as the inventor of these patents, I could not possibly claim non-knowledge, and so it would be crazy for me to willfully infringe on them in the commercial apps I was building. So, I specifically implemented things in different ways than I did at Autodesk (better ways, in most cases).

I believe that none of the g3Sharp implementations would infringe on anything I "invented" at Autodesk. But, a court could disagree. There are no guarantees. Sorry!

Smiley3D commented 5 years ago

Thanks a lot for your detailed answer and comments. Your background information helped to understand the context much better. I am also not happy about the legal insecurities & uncertainties software patents might cause. As you said... no guarantees - Thanks again for the clarification.