Facebook, Oculus, ZeniMax, and Nonliteral Copying of Code

Just last week, Facebook was spanked with a $500 million court judgement for non-literal infringement of software copyright. Even for Facebook, that’s a lot of money. Though less than the $4 billion that plaintiff ZeniMax had been asking for, it’s a large chunk of the $2 billion that Facebook paid for Oculus in 2014. The case was ZeniMax v. Oculus, and the jury decided that Facebook had infringed on the copyright of ZeniMax’s software source code. According to the jury, Oculus co-founder Palmer Luckey and CTO John Carmack violated a nondisclosure agreement (NDA) with ZeniMax when they all had worked together to develop the Oculus Rift, the virtual reality headset that caught the attention of Facebook.

I’ve been seeing some articles about the case from software engineers who are confused about the verdict, especially a Facebook rant by John Carmack. My consulting company specializes in software copyright infringement, my software company has created tools and procedures for determining whether software copyright occurred, and I wrote the primary textbook in the field of software forensics. In fact, I was the expert for Facebook in the famous case made into the movie The Social Network. I was able to show that Mark Zuckerberg didn’t copy Facebook code from the Winklevoss twins at Harvard. My consulting company wasn’t involved in this new case, so I cannot speak to the behind-the-scenes details, but I do think it’s important to understand nonliteral copyright infringement in case you’re thinking of taking some of your employer’s code with you to your next company.

What is Software Copyright Infringement?

Software source code, like any other form of writing, is protected by copyright. The copyright’s origins can be traced to 1557 when a royal charter for exclusive publishing rights was given by the English Crown to the Worshipful Company of Stationers of London. It can also be traced to seventeenth century Jewish law to protect publishers of prayer books. The US Constitution protects copyrights in Article I, Section 8, Clause 8: [The Congress shall have power] “[t]o promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries.” The first Copyright Act in the United States was passed in 1790 and protected “maps, charts and books.” Though copyright was generally considered to cover software source code, because it is written text, the Computer Software Copyright Act of 1980 was passed to specifically address software. So when someone tells you that software copyright is a recent concept, or that it’s “highly debatable” or there is “ample room to question its legitimacy,” that’s simply not true.

Copyright infringement occurs when someone takes one of the rights of a copyright owner without permission. For software, the key rights are to copy the code or create derivative works. In ZeniMax v. Oculus, the latter right was the one that the jury found was infringed. The code was not copied, according to them, but was used to create derivative works. In particular, the jury found what is called “nonliteral copying.”

Copyrights cover the actual “expression” of an idea, but not the idea itself. In other words, it covers the lines of code but not the functions that they perform. The functions can be protected as trade secrets, or they can be patented. Sometimes it’s difficult for someone unfamiliar with IP law to separate the functionality from the expression in source code. This so-called “dichotomy between idea and expression” is particularly confusing with respect to software, and was addressed in the case Whelan Associates v. Jaslow Dental Laboratory and then again in Computer Associates v. Altai.

Literal Copying

Literal copying is when some creative, substantial chunk of code is copied verbatim. Most code is creative because there are so many ways of writing the same code that any particular way is due to the programmer’s creativity. Variable names are creative. Function names are creative. The formatting is creative. The sequence of statements can be creative. There’s not a high bar for creativity in copyright law. It doesn’t mean that the code was so complex that only a genius could write it. It simply means that there were many equally good ways of writing the code, and the programmer wrote the code in one particular way but was not required to write it that way. A side-by-side example of literally copied code is shown in Figure 1, where lines were copied from source code file 1 to source code file 2 and then changed. This can be demonstrated by the fact that all lines are exactly the same with only cosmetic changes of 1) removing comments and 2) slightly changing variable names.

But what is meant by “substantial”? That’s where experts like me might get into debates in court. Most experts, attorneys, judges, and juries will agree when literal copying occurred, though they might not agree on whether the copying was substantial.

Evidence of Literal Copying

Nonliteral copying refers not to copying of code, but to the code’s structure, sequence, and organization or “SEO.” First, note that nonliteral copying shouldn’t be confused with evidence of literal copying. Figure 2 shows source code file 2 that contains evidence of literal copying of source code file 1. The two files have different variable names and function names, and they perform operations in different sequences, so they might initially be thought to have been independently developed, in which case there is no copyright infringement. The variable names are very similar, but further research might show that the code is similar for one of the five reasons other than copying: third-party source code, code generation tools, commonly used elements, common algorithms, or common author. However, the smoking gun is the comment at the top of each file, referring to the routine CreateArraysFromBinary. That routine doesn’t exist in source code file 2, and so there’s no logical reason for the comment except that the code must have been literally copied and then changed, but someone forgot to change the comment. Although the sequences of code are similar, this is not a case of nonliteral copying but rather a case of literal copying that was subsequently modified.

Nonliteral Copying

When it comes to nonliteral copying, there can be even stronger disagreement among experts, but once it’s been determined that nonliteral copying occurred, and what was copied was creative and substantial, there is no disagreement that a copyright was infringed. This is not a new concept in copyright law. If you write a book about a boy and girl from warring families that meet, fall in love, find strong disapproval from friends and family, and eventually kill themselves, there’s probably no copyright infringement because the plots of West Side Story and Romeo and Juliet go back even further in time to the ancient story of Pyramus and Thisbe. But if you write about a Jewish boy and an Irish-Catholic girl who fall in love and get married and their parents get angry, but after a grandchild is born they reconcile, then you risk a copyright infringement charge from the copyright holder of the story “Abie’s Irish Rose,” as the author of “The Cohens and The Kells” found out in the famous case of Nichols v. Universal Pictures Corporation.

In a similar way, nonliteral copying refers not to copying of code, but to the code’s SEO. It can be argued that Figure 1 shows nonliteral copying, in addition to literal copying, because the sequence of instructions are virtually identical in both files, but nonliteral copying is more often used to show that a program’s architecture was copied. Figure 3 shows the similarities of two software architectures that might result in a copyright infringement claim. However, it’s important that the blocks in the diagrams represent actual blocks of source code such as routines or files or directories of files, and not blocks of functionality, because copyright covers the code itself, and the organization of that code, but not how it functions.

How is Nonliteral Copying Misused by Experts?

I generally advise my plaintiff clients to avoid claiming that the defendant’s software architecture infringes their program’s copyright. It’s not that this can’t be a legitimate claim, it’s that it’s difficult to prove and difficult to demonstrate to a nontechnical judge or jury. Software architecture has no standard, quantifiable definition. That means that the argument in court comes down to which expert is more believable, without many extrinsic sources to back up the conclusion.

That also means that blocks can be drawn around any set of code to claim it’s an architecture. At some high level, all software has the same architecture: one block gets input from a user, a second block performs a calculation, and a third block presents the results to the user. If you think that’s silly, I’ve seen that kind of architecture block diagram in several plaintiff’s expert reports. Fortunately, it’s easy to find other, unrelated programs that have the same architecture to show that this high-level architecture is not unique or creative. Unfortunately, the software architecture argument can sometimes be used to achieve its actual goal, with the help of an unscrupulous, incompetent, or at least lazy software expert, which is to put significant financial and psychological pressure on the defendant until the defendant settles or, worse, goes out of business. I’ve seen that strategy work on at least one occasion.

Conclusion

So what about the ZeniMax v. Facebook case? While you read many reports that make fantastical claims, it is important to remember that software copyright has been accepted and understood by the legal community as well as any law can be. Software copyrights have been formally codified since 1980, though copyrights on written works have been accepted since the founding of our nation. Nonliteral infringement is a long-standing and universally accepted result of copyright law and a legitimate reason for finding software copyright infringement. Was the verdict in this case correct? That is a different question entirely separate from whether software can be copyrighted and whether the legal theories were sound, but without facts to the contrary, it seems perfectly reasonable to assume that the jury made a correct decision. After all, American jurisprudence is built upon the right to a trial by peers, and after hearing the evidence, they found there was infringement, although not as much in damages as ZeniMax had wanted.

References

  1. Brian Solomon, “Facebook Buys Oculus, Virtual Reality Gaming Startup, For $2 Billion,” Forbes, http://www.forbes.com/sites/briansolomon/2014/03/25/facebook-buys-oculus-virtual-reality-gaming-startup-for-2-billion/#4d1aec264222, Mar 25, 2014
  2. Brian Sommer, “$4 Billion ZeniMax v. Oculus Verdict Could Come as Early as Today, Here’s What You Need to Know,” http://www.roadtovr.com/zenimax-vs-oculus-facebook-vr-lawsuit-court-case-summary-verdict, January 30, 2017.
  3. Bob Zeidman, The Software IP Detective’s Handbook: Measurement, Comparison, and Infringement Detection, Prentice-Hall, Upper Saddle River, NJ, 2011, 450pp.
  4. Andy Chalk, “John Carmack posts angry response to ZeniMax lawsuit loss on Facebook,” http://www.pcgamer.com/john-carmack-posts-angry-response-to-zenimax-lawsuit-loss-on-facebook/, February 2, 2017.
  5. Leigh Beadon, “How Is ‘Non-Literally Copying’ Code Still Copyright Infringement?” https://www.techdirt.com/articles/20170202/11372736614/how-is-non-literally-copying-code-still-copyright-infringement.shtml, February 3, 2017.
  6. Lee Hollar, “Legal Protection of Digital Information, Chapter 2: Copyright of Computer Programs,” http://digital-law-online.info/lpdi1.0/treatise21.html, copyright 2002.
  7. Bob Zeidman, “The Software IP Detective: Infringement Detection in a Nutshell,” IP Watchdog, https://ipwatchdog.com/2011/11/20/the-software-ip-detective-infringement-detection-in-a-nutshell, November 20, 2011.
  8. Suzanne R. Jones, “Whelan Associates v. Jaslow Dental Laboratory: Copyright Protection for the Structure and Sequence of Computer Programs,” Digital Commons at Loyola Marymount University and Loyola Law School, http://digitalcommons.lmu.edu/cgi/viewcontent.cgi?article=1554&context=llr, November 1, 1987.
  9. “Computer Associates International v. Altai, Inc,” Bloomberg Law, http://www.casebriefs.com/blog/law/intellectual-property-law/intellectual-property-keyed-to-merges/copyright-law/computer-associates-international-v-altai-inc, retrieved February 5, 2017.
  10. “Nichols v. Universal Pictures Corporation,” Bloomberg Law, http://www.casebriefs.com/blog/law/intellectual-property-law/intellectual-property-keyed-to-merges/copyright-law/nichols-v-universal-pictures-corporation, retrieved February 5, 2017.

Share

Warning & Disclaimer: The pages, articles and comments on IPWatchdog.com do not constitute legal advice, nor do they create any attorney-client relationship. The articles published express the personal opinion and views of the author as of the time of publication and should not be attributed to the author’s employer, clients or the sponsors of IPWatchdog.com.

Join the Discussion

18 comments so far.

  • [Avatar for Anon]
    Anon
    February 12, 2017 01:41 pm

    Mr. Zeidman, you are absolutely correct – my apologies.

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 12, 2017 11:18 am

    Hey everyone. I’d like to suggest we stay focused on the issue rather than call each other out about why they’re writing something. These have been good questions and comments up until now.

  • [Avatar for Anon]
    Anon
    February 12, 2017 07:02 am

    Maybe because Inventor Woes is not really interested in the issues behind why angry dude is angry…

    A phrase like “letting him vent” without even the hint of wanting to understand the “why” comes across as worse that condescending.

  • [Avatar for angry dude]
    angry dude
    February 11, 2017 09:45 pm

    @Inventor Woes

    go away, troll

  • [Avatar for Inventor Woes]
    Inventor Woes
    February 11, 2017 08:34 pm

    angry dude appears quite bitter over what happened 10 years ago, I think we should let him vent. Otherwise we might have a mass shooting.

  • [Avatar for angry dude]
    angry dude
    February 10, 2017 07:10 pm

    Bob Zeidman @11

    “If you want to protect software from reverse engineering, you need to patent it”

    Already did – 10 years ago… Why do you think I’m so angry ???

    Copyright is not perfect but it’s infinitely better than patent nowadays.

    Trust me on this

  • [Avatar for Andy S.]
    Andy S.
    February 10, 2017 05:59 pm

    This is good information

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 10, 2017 01:38 pm

    angry dude, copyright law is intended to encourage access to materials and encourage reverse engineering to understand its functionality. Just like novels are copyrighted but people are encouraged to read them. Then someone can read Romeo and Juliet and then write West Side Story and not be infringing, as long as you don’t copy the text or the organization of the book. If it’s not chapter-for-chapter the same then it’s probably OK, but nonliteral copying is a gray area.

    So if someone decompiles binary code, studies it, they can then sets up a clean room to have “clean” engineers write something similar who have never personally examined the decompiled code. This is all legal.

    There is the Digital Millennium Copyright Act (DMCA) that allows you to encrypt your binary and makes it a crime for someone to decrypt it. But that can have technological problems for programs.

    If you want to protect software from reverse engineering, you need to patent it. That’s why those who say copyright is good enough for software and we don’t need patents are wrong.

  • [Avatar for angry dude]
    angry dude
    February 10, 2017 10:38 am

    Bob Zeidman @9

    But then every piece of consumer software running on e.g. Windows PC falls into “accessible binary” category – and that includes all softwares from Oculus and Vive other than (maybe) some firmware
    The only way to prevent access to binary is to use hardware-enabled encryption/decryption on a processor itself or better yet to make it a dedicated ASIC
    In this early stage of VR tech hardwiring code (and thus removing possibility of future software patches and upgrades) is a losing economic proposition

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 10, 2017 02:16 am

    angry dude, that would still be access to binary code, which is a derivative of the source code. If George Harrison were still alive he might have an opinion on that. He claimed to not have copied “He’s So Fine” when he wrote “My Sweet Lord” but the verdict in the suit was that he subconsciously copied it.

  • [Avatar for angry dude]
    angry dude
    February 9, 2017 10:03 pm

    @6
    there can’t be any requirement to prove access to source code – a binary extracted from consumer product and then decompiled and modified a little bit or even rewritten in a different programming language is still non-literal copying

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 9, 2017 09:00 pm

    Paul, there was no question about access in this case because John Carmack was employed by ZeniMax before leaving for Oculus, and he admitted taking code with him.

  • [Avatar for Paul F. Morgan]
    Paul F. Morgan
    February 8, 2017 06:11 pm

    I did not note any discussion of the often difficult to prove requirement tof access to copying?

  • [Avatar for Bob Zeidman]
    Bob Zeidman
    February 8, 2017 05:43 pm

    Hi Ternary,

    Thank you. My answers are:

    1. Yes, definitely register a copy of your source code with the US Copyright Office. You can put source code in a patent, and that can make for a stronger patent, but it’s not often done because it reveals trade secrets. You can register a software copyright but leave out anything in the code that is a trade secret. This link is to a Copyright Office document that explains how to register software: https://www.copyright.gov/circs/circ61.pdf

    2. I don’t think it’s necessary to describe the program’s functionality in the copyright registration because the copyright won’t protect the functionality.

    3. The registered code must be the exact code in the actual program. Pseudocode is often used in patents so that 1) it doesn’t imply that the patent covers only one implementation in a specific language and 2) it’s easier to read by a non-programmer.

  • [Avatar for Ternary]
    Ternary
    February 8, 2017 11:10 am

    Very interesting and useful article Bob. I have the following questions:

    1) do you recommend that an inventor of a software based invention register a copy of source code or program with the US Copyright Office in addition to filing a patent application? Patent applications, in general, do not contain source code, but rather descriptions and block or flow diagrams, which covers what you call the architecture. The filing costs are minimal. Does one affect the other?

    2) should an inventor include a description of what the program does in the copyright registration, besides in source comments?

    3) is there any benefit in using a particular programming language? Or perhaps use pseudo-code? Or must the registered code be executable? My intuition says that an executable program that provides the same or similar results as an infringing (plagiarizing?) product on a working computer makes a stronger case. But who knows in the current atmosphere? It may all be an abstract idea anyway.

    Probably like many inventors who rely (relied!) on patents, I assumed (clearly incorrectly) that copyrights mainly affect literal infringement. I believe it to be worthwhile to spend another post on this subject, explaining to independent inventors what their avenue of protecting IP for software is through registering source code. In any case, thanks for this enlightening article. I made sure to bookmark your website.

  • [Avatar for angry dude]
    angry dude
    February 7, 2017 12:32 pm

    John White @2

    I am starting to really like the concept of “non-literal copying” as applied to patented algorithms, for example, DSP algorithms

    For some heavy computational algos (e.g. Fast Fourier Transform) the pattern of code is the same in all efficient implementations (sort of “butterfly” diagram)

    Or take that fictional “middle-out” compression algo from HBOs “Silicon Valley”…

    Tea leaf reading by copyright “experts” is not even needed

    Great news indeed !

  • [Avatar for John White]
    John White
    February 7, 2017 10:41 am

    The rich, rich, irony here is that had they patented what they were up to, the PTAB would have dispatched their rights instantly into oblivion. A solution Facebook, and their ilk, have lobbied and paid their political puppets to obtain. But, Copyright (and Trade Secrets) are a different animal in terms of enforcement. Good luck software rip-off folks. You got what you paid for ….. undilutable longlived rights that cannot really be challenged. What Disney paid for, will now be used to track and stop the theft of software. Non-literal copying…vague and jury friendly….go get em contingency lawyer bar. Deep pockets as far as the horizon.

  • [Avatar for angry dude]
    angry dude
    February 7, 2017 09:35 am

    So Oculus/Facebook with all their money were lazy or greedy enough NOT to perform “clean room” engineering – writing code from scratch based on functional design documents and not looking at the original code ?
    They got what they deserved then…