Yesterday the multi billion dollar Zenimax vs Oculus case came to a close with the former being awarded $500 million USD. While both parties naturally weren’t happy with the outcome – Oculus had to pay damages and Zenimax didn’t get anywhere near what it wanted – one of the men at the centre of the proceedings, John Carmack, has vented some of his frustrations in a Facebook post.
He starts by addressing some media stories written about him, stating that he ‘never tried to hide or wipe any evidence’. For the majority of the post he vents at the expert’s Zenimax brought in to try and prove he’d stolen secrets from the company whilst working at subsidiary Id Software. “The authors at Oculus never had access to the Id C++ VR code, only a tiny bit of plaintext shader code from the demo,” wrote Carmack. “I was genuinely interested in hearing how the paid expert would spin a web of code DNA between completely unrelated codebases.”
The outcome of the case found Oculus not guilty of misappropriating trade secrets, but the jury decided that Oculus founder Palmer Luckey had broken a non-disclosure agreement (NDA).
Carmack’s entire post can be read below, and for any further updates, keep reading VRFocus.
“The Zenimax vs Oculus trial is over. I disagreed with their characterization, misdirection, and selective omissions. I never tried to hide or wipe any evidence, and all of my data is accounted for, contrary to some stories being spread.
Being sued sucks. For the most part, the process went as I expected.
The exception was the plaintiff’s expert that said Oculus’s implementations of the techniques at issue were “non-literally copied” from the source code I wrote while at Id Software.
This is just not true. The authors at Oculus never had access to the Id C++ VR code, only a tiny bit of plaintext shader code from the demo. I was genuinely interested in hearing how the paid expert would spin a web of code DNA between completely unrelated codebases.
Early on in his testimony, I wanted to stand up say “Sir! As a man of (computer) science, I challenge you to defend the efficacy of your methodology with data, including false positive and negative rates.” After he had said he was “Absolutely certain there was non-literal copying” in several cases, I just wanted to shout “You lie!”. By the end, after seven cases of “absolutely certain”, I was wondering if gangsters had kidnapped his grandchildren and were holding them for ransom.
If he had said “this supports a determination of”, or dozens of other possible phrases, then it would have fit in with everything else, but I am offended that a distinguished academic would say that his ad-hoc textual analysis makes him “absolutely certain” of anything. That isn’t the language of scientific inquiry.
The notion of non-literal copying is probably delicious to many lawyers, since a sufficient application of abstraction and filtering can show that just about everything is related. There are certainly some cases where it is true, such as when you translate a book into another language, but copyright explicitly does not apply to concepts or algorithms, so you can’t abstract very far from literal copying before comparing. As with many legal questions, there isn’t a bright clear line where you need to stop.
The analogy that the expert gave to the jury was that if someone wrote a book that was basically Harry Potter with the names changed, it would still be copyright infringement. I agree; that is the literary equivalent of changing the variable names when you copy source code. However, if you abstract Harry Potter up a notch or two, you get Campbell’s Hero’s Journey, which also maps well onto Star Wars and hundreds of other stories. These are not copyright infringement.
There are objective measures of code similarity that can be quoted, like the edit distance between abstract syntax trees, but here the expert hand identified the abstract steps that the code fragments were performing, made slides that nobody in the courtroom could actually read, filled with colored boxes outlining the purportedly analogous code in each case. In some cases, the abstractions he came up with were longer than the actual code they were supposed to be abstracting.
It was ridiculous. Even without being able to read the code on the slides, you could tell the steps varied widely in operation count, were often split up and in different order, and just looked different.
The following week, our side’s code expert basically just took the same slides their expert produced (the judge had to order them to be turned over) and blew each of them up across several slides so you could actually read them. I had hoped that would have demolished the credibility of the testimony, but I guess I overestimated the impact.
Notably, I wasn’t allowed to read the full expert report, only listen to him in trial, and even his expert testimony in trial is under seal, rather than in the public record. This is surely intentional — if the code examples were released publicly, the internet would have viciously mocked the analysis. I still have a level of morbid curiosity about the several hundred-page report.
The expert witness circuit is surely tempting for many academics, since a distinguished expert can get paid $600+ an hour to prepare a weighty report that supports a lawyer’s case. I don’t have any issue with that, but testifying in court as an expert should be as much a part of your permanent public record as the journal papers you publish. In many cases, the consequences are significant. There should be a danger to your reputation if you are imprudent.”