
    VERMONT MICROSYSTEMS, INC., Plaintiff-Counter-Defendant-Appellee-Cross-Appellant, v. AUTODESK, INC., Defendant-Counter-Claimant-Appellant-Cross-Appellee, Otto G. Berkes, Defendant-Counter-Claimant-Appellant, Peter C. Reed, Counter-Defendant-Cross-Appellee.
    Nos. 652, 653 and 654, Dockets 95-7279, 95-7281 and 95-7291.
    United States Court of Appeals, Second Circuit.
    Argued Jan. 11, 1996.
    Decided July 8, 1996.
    
      Robert D. Raehlin, Burlington, VT (Walter E. Judge, Jr., Carol L. Shea, Downs, Raehlin & Martin, Burlington, VT, of counsel), for Plaintiff-Counter-Defendant-Appellee-Cross-Appellant.
    Ronald S. Rauchberg, New York City (Proskauer, Rose, Goetz & Mendelsohn, New York City, C. Randall Bain, H. Michael Clyde, Brown & Bain, Phoenix, AZ, David M. Barkan, Fish & Richardson, P.C., Boston, MA, of counsel), for Defendant-Counter-Claimant-Appellant-Cross-Appellee, Auto-desk, Inc.
    Wynne S. Carvill, San Francisco, CA, Paul A. Winick, New York City (Thelen, Marrin, Johnson & Bridges, San Francisco, CA, of counsel), for Defendant-Counter-Claimant-Appellant, Berkes.
    Philip D. Saxer, Burlington, VT (Saxer, Anderson, Wolinsky & Sunshine, Burlington, VT, of counsel), for Counter-Defendant-Cross-Appellee, Reed.
    Before: VAN GRAAFEILAND, MINER and CABRANES, Circuit Judges.
   VAN GRAAFEILAND, Circuit Judge:

This litigation involves the alleged misappropriation of trade secrets. In a judgment of the United States District Court for the District of Vermont (Niedermeier, Magistrate J.) Autodesk, Inc. and Otto G. Berkes were held liable to Vermont Microsystems, Inc. (‘VMI”) for trade secret misappropriation, and Autodesk was assessed $25.5 million in damages.

At issue is certain computer aided design (“CAD”) software. CAD is highly sophisticated software used primarily by engineers and architects to render computer drawings. Autodesk is the largest provider of CAD software in the world. Its premier product, AutoCAD, has nearly 80 percent of the CAD market. VMI, a small company based in Winooski, Vermont, is one of many “third party developers” that create AutoCAD accessories to increase the program’s functionality. VMI initially concentrated on hardware accessories such as graphics boards, which could be added to a computer to improve the graphics resolution. In 1989, VMI realized that the hardware accessory market was limited and decided to concentrate on software accessories that could be used directly with the AutoCAD program.

Berkes began working for VMI while it was making this shift, first as a summer intern in 1988 and then as a full-time employee in 1989. As a full-time employee, Berkes signed an Invention and Nondisclosure Agreement in which he acknowledged that all trade secrets developed on VMI’s time were company property and promised not to disclose such trade secrets for the benefit of himself or others. Berkes worked as a software programmer and was assigned a variety of projects by VMI. He was a gifted programmer who made valuable contributions to VMI’s library of software.

When Berkes left VMI in the fall of 1991 and joined Autodesk, Peter Reed, the President and Chief Executive Officer of VMI, sent a letter to Autodesk advising that because Berkes was privy to VMI’s trade secrets, Autodesk should exercise caution in assigning him projects. Berkes also was given a copy of this letter. Athough Berkes initially was assigned to noncompeting projects, by the fall of 1992, VMI learned that his assignments had changed and that his new work implicated VMI trade secrets. After some unproductive discourse between the two companies, VMI sued Autodesk and Berkes alleging copyright infringement and misappropriation of trade secrets. Berkes, against whom VMI sought only injunctive relief, counterclaimed against VMI and Reed for libel and sought a declaratory judgment that he had a non-exclusive right to use the Berkes-Pilcher Shading (“BPS”) algorithm, which bears his name and that of VMI employee Steven Pilcher.

In the course of a seventeen day bench trial, VMI abandoned its copyright infringement claim. However, it was successful on its claim for trade secret misappropriation. Both of Berkes’ counterclaims were rejected. The primary trade secrets at issue are the architecture of VMI’s display list driver, and its triangle shading algorithm, which are described hereafter in the language of the untutored layman.

Display List Driver

Before a drawing can be displayed on a computer screen, AutoCAD has to generate its constituent elements: 1) vectors (straight lines of various lengths); and 2) polygons (closed objects, such as rectangles or pentagons). If the user makes a change in the drawing, AutoCAD is required to regenerate or rebuild the individual lines and vectors that make up the entire image. Regeneration also is required if the AutoCAD user wants to zoom in and work on a particular section of the drawing or pull back and pan the entire drawing. This process is cumbersome and slows down AutoCAD’s graphics speed.

A display list driver that sends the image to the computer screen can help alleviate the speed problem. Rather than the drawing being i-econstructed from scratch, the display list driver keeps a list of the constituent vectors and polygons in its memory. When AutoCAD needs to regenerate the entire drawing, it can access the necessary vectors and polygons from the list kept by the display list driver. The result is faster graphics speed.

Prior to 1993, Autodesk did not include a display list driver in AutoCAD. Instead, it relied on third party developers, such as VMI, to provide display list drivers to those users who needed enhanced graphics speed. VMI’s display list driver, called “AutoMate,” was considered one of the leading add-on, display list drivers on the market.

In early 1992, both Autodesk and VMI recognized the growing importance of Windows, a process that creates so-called “operating environments” through the display of multiple individual programs on the computer’s display screen. Prior to that time, CAD software was designed almost exclusively for MS-DOS, a traditional “Disk Operating System.” Unlike MS-DOS, Windows permits the user to run several programs at the same time by dividing the computer screen into smaller program areas. That portion of the screen to which activity is currently limited is called a “window.” See Allen L. Wyatt, COMPUTER Professional’s Dictionary, at 344 (1990). It was expected that, because of Windows’ ease of use and enhanced graphics capabilities, it would replace MS-DOS as the standard for graphics programs such as Au-toCAD and AutoMate. The anticipated market shift to a Windows operating environment meant that software manufacturers such as Autodesk and VMI had to create Windows versions of their programs.

In April 1992, Autodesk released a Windows add-on to its MS-DOS version of Auto-CAD. Because Autodesk’s then-current MS-DOS version of AutoCAD was called “Release 11,” the Windows add-on was named “Release 11 AutoCAD Extension for Windows” and abbreviated to “Rll AEW.” Rll AEW did not contain a display list driver and, consequently, was not well received by consumers who objected to its slow graphics speed. One month after Rll AEW was released, VMI offered a companion, display list driver.

By this time, Autodesk was developing a “stand alone” Windows version of AutoCAD called “Release 12 Windows” or “R12 Windows.” Autodesk’s R12 Windows development team understood that fast graphics speed would be essential to the product’s success. Berkes was working for Autodesk by then but was not assigned to the R12 Windows project. Aware of the importance of speed, Berkes lobbied his supervisors to include a display list driver in R12 Windows. In March 1992, less than three months after he arrived at Autodesk, Berkes sent an email to his colleagues detailing the technical specifications for such a display list driver. The specifications mirrored those of VMI’s AutoMate. Without being asked to do so, Berkes worked from the specifications to create a prototype display list driver, to which he gave the file name “RCVESA3D.”

The similarity between AutoMate and RCVESA3D was not accidental. As the self-described architect of AutoMate, Berkes was familiar with the program’s structure and when he left VMI in late 1991, Berkes retained the source code for AutoMate, ostensibly to enable him to act as a consultant during the two months that preceded his employment by Autodesk. Berkes worked on the display list driver as a “hobby project” and continued to lobby the R12 Windows programmers for inclusion of a display list driver. By July 1992, Autodesk agreed with Berkes and officially assigned him the task of developing a display list driver. Using RCVESA3D as a model, Berkes created the display list driver that subsequently was included in R12 Windows.

VMI quickly learned that Berkes was developing a display list driver for Autodesk, thus possibly jeopardizing its trade secrets, and notified Autodesk of its concerns in writing on August 25, 1992. In fact, Autodesk already was sensitive to the issue. An e-mail message sent the day before by the R12 Windows project manager suggested that Berkes’ role in the product’s development not be mentioned “lest his ex-cohorts at VMI turn apoplectic.” After VMI’s expression of concern, Autodesk conducted an internal investigation, described by the district court as “superficial and inadequate,” which raised questions about whether Berkes did make wrongful use of VMI trade secrets in developing the display list driver. During the investigation, Berkes suggested that Auto-desk remove the display list driver from R12 Windows. Also, two Autodesk employees, after comparing the source code that Berkes wrote for the display list driver with the source code provided by VMI, suggested that Berkes’ efforts may not have been from scratch.

In October 1992, Autodesk met with VMI in an effort to resolve the parties’ differences. In that meeting, VMI proposed that it transfer all of its basic technology to Auto-desk for $25.5 million paid out over five years. The figure approximated a $25 licensing fee for each AutoCAD program expected to be sold during that period, whether a Windows or MS-DOS version. After receiving VMI’s proposal, Autodesk solicited proposals from other developers for an alternative display list driver. Given the tight time frame (R12 Windows was scheduled to be released in January 1993), the solicited proposals were seen primarily as a tool for negotiating with VMI. A proposal from Artist Graphics, priced at $260,000, was considered by Autodesk but rejected as unsuitable and untimely.

Despite the questions raised by its own investigation and the consequent litigation risk, Autodesk decided to go ahead with the display list driver programmed by Berkes. The R12 Windows product manager, Cary Fulbright, advised his superiors that without a display list driver, R12 Windows was “not a viable, stand-alone product,” and further, that it was “CRITICAL THAT WE INCLUDE A DISPLAY LIST DRIVER IN R12 FOR WINDOWS.” Although the possibility of a substitute display list driver was considered, Fulbright opined that “if we make major changes to [Berkes’] code at this point, we can kiss January volume shipments good-bye.” Ultimately, the decision to ship R12 Windows with the display list driver developed by Berkes was based on economic, not legal, considerations.

Released in March 1993, R12 Windows was a great success, due in large part to the increased graphics speed afforded by the display list driver. As might be expected, Auto-desk’s inclusion of a display list driver in R12 Windows virtually eliminated the aftermarket for add-on display list drivers. VMI, which had pinned its financial hopes on AutoMate, was “substantially hurt” by the inclusion of the Berkes-developed display list driver in R12 Windows.

Triangle Shading Algorithm,

VMI also developed a variation of a common technique known as “Gouraud Shading” for coloring a three-dimensional object displayed on a computer screen. VMI’s variation is referred to as the triangle shading algorithm because the image surface is broken down into triangles that are individually colored.

Shortly after Berkes left VMI, he authored a substantially similar version of VMI’s triangle shading algorithm. It was used in a then-current MS-DOS version of AutoCAD, which was called “Release 12 MS-DOS” or “R12 MS-DOS.” To encourage third party developers to provide accessories for R12 MS-DOS, Autodesk published materials detailing the program’s technical specifications. Included in those materials was the source code for the triangle shading algorithm.

BPS Algorithm

In his counterclaim, Berkes sought a declaratory judgment that both he and VMI had the right to use the BPS algorithm. Autodesk, which never has used this algorithm and has no plans to use it in the future, was not a party to this dispute.

Named after its creators, Berkes and Stephen Pilcher, another VMI software engineer, the algorithm is designed to eliminate the “banding” phenomenon that occurs on certain computers when the displayed object is filled in with color. Berkes first developed the BPS algorithm as a hardware project while working as a summer intern for VMI in 1988. To demonstrate its capabilities, Berkes adapted a two-dimensional software program he had developed at school which consisted of a spinning, wireframe teapot. As the teapot spun around, the BPS algorithm smoothly shaded in the wireframe figure with color rendering it three dimensional. VMI incorporated the BPS algorithm into its hardware graphics boards under the name “RenderReady” and copyrighted the three-dimensional, teapot software program that demonstrated its capabilities. An hourly VMI employee at the time, Berkes claims that he was not compensated for his work on the software implementation of the BPS algorithm, only for his work on the hardware implementation.

Liability

Display List Driver

With the parties in agreement, the district court applied California law of trade secret misappropriation. Cal. Civ.Code §§ 3426.1-3426.11. To assert a cause of action for trade secret misappropriation under California law, VMI was required to “identify the trade secret with reasonable particularity.” Cal.Civ.Proc.Code § 2019(d). VMI complied with this directive by submitting to the court a list of eleven trade secrets that Autodesk allegedly misappropriated. The first of these trade secrets was the “architecture” of the display list driver. The next eight trade secrets listed were component trade secrets which contributed to VMI’s display list driver. Since they were largely subsumed by the scope of the first secret, the district court directed its attention primarily to the latter. Secrets ten and eleven were the triangle shading and BPS algorithms which are discussed separately infra. With reference to the first trade secret, VMI claimed that it “has been able to attain higher performance AutoCAD graphics and create AutoMate ‘tools’ via its unique display list architecture, which comprises its data format and organization, its collection of associated display list data processing algorithms, and its software code implementation.”

The parties agree that this “combination” trade secret qualifies as a trade secret under California law. “ ‘[A] trade secret can exist in a combination of characteristics and components, each of which, by itself, is in the public domain, but the unified process, design and operation of which, in unique combination, affords a competitive advantage and is a protectable secret.’” Integrated Cash Management Servs., Inc. v. Digital Transactions, Inc., 920 F.2d 171, 174 (2d Cir.1990) (quoting Imperial Chem. Indus. Ltd. v. National Distillers & Chem. Corp., 342 F.2d 737, 742 (2d Cir.1965)); see Cybertek Computer Prods., Inc. v. Whitfield, 203 U.S.P.Q. 1020, 1024 (Cal.Super.Ct.1977).

The parties disagree, however, on whether VMI has carried its burden of demonstrating misappropriation. Under California law, the onus was on VMI to show that the display list driver incorporated in R12 Windows was substantially derived from the architecture of its AutoMate display list driver. See Forro Precision, Inc. v. International Business Machs. Corp., 673 F.2d 1045, 1056-57 (9th Cir.1982), opinion following remand, 745 F.2d 1283 (9th Cir.1984), cert. denied, 471 U.S. 1130, 105 S.Ct. 2664, 86 L.Ed.2d 280 (1985). VMI did not, however, have to prove that the display list drivers were identical. Our review of the record satisfies us that the district court’s findings of fact concerning substantial derivation are fully supported by the evidence. Because the district court’s decision has not been officially reported, we deem it the best course to simply record the following pertinent findings of that court, omitting record citations contained therein:

The technology of the AutoMate and R12 Windows display list drivers is virtually the same.
The overall architecture of the two software programs is similar and in some cases identical.... The same structures and parameters are found in both. The algorithms, the constraints in which the algorithms work, the display list structure, and the implementation of the management functions are identical or very similar.
While at VMI Berkes was the chief architect of its display list driver for its AutoMate add-on software which accelerated the graphics performance of AutoCAD. [Berkes’] display list driver for R12 Windows performed the same function and even had the same tools, such as Magnifying Glass and Bird’s-eye View, as AutoMate ....
VMI’s particular display list driver architecture and implementation, including its management of bounding boxes;[] the handling of entities to be placed in the display list; the location of entities in, and their deletion from, the display list; the concept of an update display list for use in implementing a Bird’s-eye View, etc., was not known outside of VMI and is a trade secret.
VMI’s designation of the specific maximum number of entities to be included in a bounding box (30 vectors or 1 polygon) was unique to VMI and contributed to faster drawing than other alternative designations. These numbers were not common knowledge. Berkes would not have arrived at the same number of elements per bounding box starting “from scratch” at Autodesk because the significance of VMI’s designation of the maximum number of one polygon per bounding box was that it was initially based on the specifics of VMI’s hardware. This was not a necessary consideration for Berkes at Autodesk; but retention of the same specific maximum numbers of entities in the R12 Windows driver was required to avoid “re-architecting” the VMI display list he was using as a template.
VMI’s incorporation of the code for the color of a given endpoint (e.g., blue line) into that endpoint’s operation code (i.e., where that entity is to be drawn on the screen) simplifies and compacts the display list data, resulting in faster drawing.
VMI also employs a secondary flag, in the code that defines an entity, to identify whether that entity has been erased from the drawing by the user, so that the display list can “skip” that entity in performing a redraw operation, resulting in faster drawing. These are VMI’s trade secrets, and they are duplicated in Berkes’ driver for R12 Windows.
VMI uses variously-sized temporal bounding boxes (30 lines or 1 polygon per bounding box) scattered throughout the CAD drawing to partition groups of entities for easier location and faster drawing on the screen, and facilitates faster and better quality implementation of features such as AutoMate’s Magnifying Glass. This implementation is unique to VMI. The same implementation is present in Berkes’ driver for R12 Windows.
VMI uses an unique display list pruning search algorithm (the TrueClean pruning algorithm developed by Berkes) that allows the display list driver to search the display list for erased entities very quickly, using bounding boxes and the principle of locality. VMI’s implementation eliminates the traditional “flashing” or “ghosting” of erased entities when the screen is redrawn. This searching and erasing technology is unique to VMI, is extremely efficient, and is duplicated in Berkes’ driver for R12 Windows with minor modifications. AutoMate/PRO uses an “update display list” and an off-screen bitmap to match what appears on the screen with what appears in the Bird’s-eye View box. These technologies update the image that appears in the Bird’s-eye View so that it continuously conforms with the image that appears on the screen as the user changes the drawing. This process is unique to VMI and is duplicated in Berkes’ driver for R12 Windows.
AutoMate/PRO employs what is known as “BITBLTing” to produce smooth real-time cursor tracking and panning and to increase drawing speed at higher magnification levels, such as in the Magnifying Glass feature. It relies on VMI’s unique bounding box implementation, display list architecture, and TrueClean and is unique to VMI. This technology is duplicated exactly in Berkes’ RCVESA3D and is the basis for his R12 Windows implementation.

(Footnote omitted.)

Viewing the above findings in the light of the established law that “trade secrets need not be exactly copied in order to impose liability,” see Cybertek, 203 U.S.P.Q. at 1025, we find them amply supported by the record, and we discern no error in the district court’s conclusions resulting therefrom.

Triangle Shading Algorithm

Autodesk also was held to have misappropriated the triangle shading algorithm developed by VMI. On appeal, Autodesk does not deny the similarity between the two algorithms. That argument was foreclosed by the overwhelming evidence of the algorithms’ correspondence. Indeed, one expert witness reported that “[t]he resemblance goes right down to the names of variables, names of macros, and even many of the comments.” Another pronounced the algorithms “identical.”

Instead, Autodesk takes issue with the district court’s implicit finding that the triangle shading algorithm qualifies as a trade secret under California law. California law affords protection only to those trade secrets which meet a two-part definition. In addition to being subject to reasonable measures to insure their secrecy, trade secrets also must “[d]erive[] independent economic value, actual or potential, from not being generally known to the public or to other persons who can obtain economic value from [their] disclosure or use.” Cal.Civ.Code § 3426.1(d)(1); see also Religious Technology Ctr. v. Wollersheim, 796 F.2d 1076, 1090 (9th Cir.1986), cert. denied, 479 U.S. 1103, 107 S.Ct. 1336, 94 L.Ed.2d 187 (1987). Auto-desk concedes that VMI diligently protected its trade secrets. Its argument on appeal is that, since VMI’s triangle shading technique is simply a variation of the well-known Gouraud Shading technique, the algorithm had no “independent economic value.” See id. at 1091; Scott v. Snelling & Snelling, Inc., 732 F.Supp. 1034, 1045 (N.D.Cal.1990).

This argument is unavailing here. The economic value of VMI’s triangle shading algorithm is readily apparent. The inclusion of this algorithm in AutoMate contributed, if only in small part, to its commercial attractiveness. One witness indicated that acquisition of this algorithm “would save any developer a great deal of time and would provide them with an efficient, polished, and proven fill algorithm.” That is exactly what occurred here when, within weeks of signing on with Autodesk, Berkes created a nearly identical triangle shading algorithm for inclusion in AutoCAD Release 12 for MS-DOS. While alternative triangle shading algorithms might have been acceptable to Autodesk, it nonetheless received value from Berkes’ infringement of VMI’s version. Simply because other developers might independently create their own version of a triangle shading routine does not deprive VMI’s version of its trade secret status. See Gates Rubber Co. v. Bando Chem. Indus., Ltd., 9 F.3d 823, 848 (10th Cir.1993) (“Although there is some evidence that some of the constants might be ‘reverse engineered’ through mathematical trial and error, that fact alone does not deprive the constants of their status as trade secrets.”). In sum, the district court did not err in concluding that VMI’s triangle shading algorithm constituted a trade secret.

The Legality of the Agreement

Berkes makes a separate argument against the district court’s findings of liability. He contends that, by failing to specify which trade secrets it considered proprietary under the Invention and Nondisclosure Agreement, VMI was seeking to transform the agreement into a de facto noncompetition agreement that would unfairly foreclose his future employment options. According to Berkes, the broad language of the Invention and Nondisclosure Agreement, which prohibited disclosure of “any and all inventions, discoveries, trade secrets and improvements,” gave VMI greater protection than it could have received under a noncompetition agreement. Noncompetition agreements generally are construed narrowly by courts, and must contain time, geographic and/or industry limitations. See, e.g., Deringer v. Strough, 918 F.Supp. 129, 132-33 (D.Vt.1996); Fine Foods, Inc. v. Dahlin, 147 Vt. 599, 523 A.2d 1228 (1986). Berkes argues that, if VMI was concerned about his future competitive threat, the company should have sought a noncompetition agreement, not an Invention and Nondisclosure Agreement.

Trade secret cases often balance an employer’s right to proprietary information against an employee’s right to use his or her knowledge, training, and experience to gain a livelihood. Milgrim, 1 MilgriM on Trade Seorets § 5.01 (1994). Courts must weigh “the policy which strives to extend some protection to an employer from the breach of confidence of a former employee in taking away and utilizing trade secrets with the policy of the law which protects an employee in his right to carry on his trade or profession after he leaves his employer.” Cybertek, 203 U.S.P.Q. at 1024. Where that balance is struck in individual cases depends largely upon the facts and circumstances surrounding the employer-employee relationship. See Integrated Cash Management Servs., Inc. v. Digital Transactions, Inc., 732 F.Supp. 370, 377 (S.D.N.Y.1989), aff'd, 920 F.2d 171 (2d Cir.1990). Here, we perceive no injustice to Berkes in upholding VMI’s proprietary rights under the Invention and Nondisclosure Agreement.

As VMI’s key software programmer, Berkes was well aware of the value of the main trade secret at issue—the architecture of the display list driver. He was proud of his many contributions to the product and even referred to himself in his resume as the “chief architect of AutoMate.” In two separate exit interviews with YMI, Berkes was reminded of his confidentiality obligations under the Invention and Nondisclosure Agreement. He also was given a copy of the letter that Reed sent Autodesk warning against an inadvertent technology transfer. In view of these oral and written warnings, the district court did not err in finding that “Berkes understood the concept of intellectual property ownership rights when he left VMI and had every reason to know what VMI considered its proprietary technology.”

The Invention and Nondisclosure Agreement included within its scope the component trade secrets contained in AutoMate. Contrary to Berkes’ assertions, VMI was under no obligation to provide him with an itemized list of AutoMate’s component trade secrets upon his departure from the company. To enforce its rights under the Invention and Nondisclosure Agreement, VMI must demonstrate that it took reasonable steps to guard its trade secrets. See Balboa Ins. Co. v. Trans Global Equities, 218 Cal.App.3d 1327, 267 Cal.Rptr. 787, 798 n. 22, cert. denied, 498 U.S. 940, 111 S.Ct. 347, 112 L.Ed.2d 311 (1990). There was ample testimony at trial describing the security precautions that VMI had in place during Berkes’ employment. In addition to having employees sign an Invention and Nondisclosure Agreement, VMI management periodically issued reminders about the need to keep developments confidential. On those occasions when VMI provided proprietary information to outsiders, as it did with Autodesk in the early stages of this case, appropriate confidentiality assurances were sought and obtained. VMI also maintained a secure workplace as a precaution against burglary. Berkes’ contention that VMI should have provided him with a list of the specific component trade secrets it considered proprietary upon his resignation from VMI is unpersuasive inasmuch as such a practice could have jeopardized VMI’s security. We conclude that VMI took reasonable steps to protect its trade secrets. Moreover, in so doing, VMI did not unfairly preclude Berkes from pursuing his profession. Berkes himself acknowledged that he could have created a display list driver for Autodesk without using any VMI trade secrets.

BPS Algorithm

The final liability issue concerns the BPS algorithm. The dispute over the algorithm is between Berkes and VMI, and is totally separate from the monetary liability issues involving Autodesk. Berkes unsuccessfully counterclaimed in the district court for a declaratory judgment that he was entitled to use the BPS algorithm notwithstanding any right that VMI also might have in the same technology.

The district court found that Berkes had no individual claim to the BPS algorithm since it was developed for VMI. Berkes “tested his program at VMI and discussed its implementation with Pilcher while ... being paid by VMI. Berkes knew that this shading technique was intended to be implemented in VMI hardware.” In making this finding, the district court rejected Berkes’ assertion that he had developed the software version of the BPS algorithm on his own time and thus was entitled to use it as he pleased. Credibility determinations by the district court after a bench trial are entitled to great deference and will not be overturned on appeal unless clearly erroneous. Anderson v. City of Bessemer City, 470 U.S. 564, 575, 105 S.Ct. 1504, 1512, 84 L.Ed.2d 518 (1985). The district court’s findings were well supported by the record. Berkes’ participation in company discussions on whether to patent the algorithm demonstrates his awareness that VMI considered its proprietary interest exclusive. Furthermore, he did not claim any rights to the algorithm upon joining Autodesk although given the opportunity to do so.

Damages

Although the deference owed by an appellate court to a trial court’s factual findings is a well established principle of law, see, e.g., Rochester Ropes, Inc. v. Danielson Mfg. Co., 217 F.2d 300, 301 (2d Cir.1954); Fed.R.Civ.P. 52(a), in few areas of the law is this rule so generously applied as it is in the field of damages. “The determination of a damage award is not an exact science, and ‘the amount need not be proven with unerring precision.’ ” Del Mar Avionics, Inc. v. Quinton Instrument Co., 836 F.2d 1320, 1327 (Fed.Cir.1987) (citations omitted); see Story Parchment Co. v. Paterson Parchment Paper Co., 282 U.S. 555, 562-63, 51 S.Ct. 248, 250-51, 75 L.Ed. 544 (1931); Eastman Kodak Co. v. Southern Photo Materials Co., 273 U.S. 359, 378-79, 47 S.Ct. 400, 405, 71 L.Ed. 684 (1927). Uncertainty as to the amount of damages, in and of itself, does not preclude recovery. University Computing Co. v. Lykes-Youngstown Corp., 504 F.2d 518, 539 (5th Cir.1974); Compania Pelineon De Navegacion, S.A. v. Texas Petroleum Co., 540 F.2d 53, 56 (2d Cir.1976), cert. denied, 429 U.S. 1041, 97 S.Ct. 741, 50 L.Ed.2d 753 (1977).

The district court found, however, that the evidence before it was “too imprecise and speculative as well as based on opinion and survey results which rely on assumptions and hypotheticals” to permit it to make a finding as to either lost profits or unjust enrichment and concluded:

Due to the difficulty in determining VMI’s actual loss or Autodesk’s actual gain, the Court in its discretion finds that, in the circumstances of this case, the amount VMI would have charged for the technology is a reasonable measure of damages.

Assuming, without deciding, that the established facts were insufficiently precise to justify a damage award based upon either lost profits or unjust enrichment, the $25.5 million figure that the district court arrived at by applying this alternative test was warranted by neither the facts nor the law. Apparently, the district court equated “the amount VMI would have charged” with “reasonable royalty,” a common form of award in trade secret cases. See Taco Cabana Int’l, Inc. v. Two Pesos, Inc., 932 F.2d 1113, 1128 (5th Cir.1991), aff'd, 505 U.S. 763, 112 S.Ct. 2753, 120 L.Ed.2d 615 (1992). This was error. A reasonable royalty award attempts to measure a hypothetically agreed value of what the defendant wrongfully obtained from the plaintiff. By means of a “suppositious meeting” between the parties, the court calculates what the parties would have agreed to as a fair licensing price at the time that the misappropriation occurred. Georgia-Pacific Corp. v. U.S. Plywood-Champion Papers Inc., 446 F.2d 295, 296-97 (2d Cir.), cert. denied, 404 U.S. 870, 92 S.Ct. 105, 30 L.Ed.2d 114 (1971); see also University Computing, 504 F.2d at 539; Vitro Corp. of Am. v. Hall Chem. Co., 292 F.2d 678, 682-83 (6th Cir.1961).

In fashioning a reasonable royalty, “most courts adjust the measure of damages to accord with the commercial setting of the injury, the likely future consequences of the misappropriation, and the nature and extent of the use the defendant put the trade secret to after misappropriation.” University Computing, 504 F.2d at 538. To approximate the parties’ agreement, had they bargained in good faith at the time of the misappropriation,

the trier of fact should consider such factors as the resulting and foreseeable changes in the parties’ competitive posture; the prices past purchasers or licensees may have paid; the total value of the secret to the plaintiff, including the plaintiffs development costs and the importance of the secret to the plaintiffs business; the nature and extent of the use the defendant intended for the secret; and finally whatever other unique factors in the particular case which might have affected the parties’ agreement, such as the ready availability of alternative processes.

Id. at 539. This is not how the $25.5 million figure was arrived at. This offer was simply the opening gambit in anticipated settlement negotiations. In short, the amount that VMI “would have charged” is not the proper test for damages based on the theory of reasonable royalty. Moreover, the $25.5 million figure was intended to cover more than just the display list driver. As the district court found, VMI’s Chief Executive Officer was requested by Autodesk’s Vice President to “send Autodesk a proposal to give Autodesk freedom to use Berkes for anything and to absolve Berkes from any responsibilities under his invention and nondisclosure agreement with VMI.” In response, VMI proposed the transfer to Auto-desk of “all technologies developed or worked on by Otto Berkes during his employment with VMI” and the release of Berkes from his confidentiality obligation to VMI.

Because the district court used an improper standard in awarding VMI $25.5 million in damages, the award cannot stand. See United States v. Singer Mfg. Co., 374 U.S. 174, 194 n. 9, 83 S.Ct. 1773, 1784 n. 9, 10 L.Ed.2d 823 (1963).

Conclusion

The amended judgment of the district court is affirmed in all respects except as to the $25.5 million damage award. That portion of the judgment is vacated and the matter is remanded to the district court with instructions to recalculate the damage award. 
      
      . An algorithm is a formula, series of steps, or well-defined set of rules for solving a problem. See Computer Professional’s Dictionary, at 14.
     
      
      . Bounding boxes are rectangles that overlay a drawing, each box displaying a collection of vectors and polygons. Whenever the drawing needs to be redrawn, say because the program user has made a change, the display list driver tests each bounding box to determine whether the area within the box contains vectors or polygons requiring changes. If no changes are needed, the display list driver can bypass that particular area thereby saving precious processing time. The process of scanning bounding boxes, each of which contains many vectors and polygons, is faster than scanning the display list which separately lists each vector and polygon making up the drawing.
     