The main goal of the development of the OPI was to remove barriers that were preventing researchers from using commercial perimetric instruments for scientific experiments. These barriers include cost, knowledge, and availability. As such, the OPI is designed according to the following guiding principles.
Implementations of the OPI should be open source and free for all to use. In an ideal world, implementations of the OPI should be readily and freely available; however, there are possible legal ramifications if the OPI is misused for clinical rather than scientific objectives. As such, the model we have adopted is that manufacturers remain gatekeepers of specific software libraries that are required for the OPI to run on their instrument. OPI code that makes use of these libraries is all open source under the GNU General Public License (GPL,
2012).
Every attempt will be made to support the OPI in the open source tradition with an active web site that includes FAQs, forums and an active user community (OPI,
2012).
The OPI should be comprehensible by vision scientists. As vision scientists will most likely be the end users of OPI implementations, we have endeavored to hide many of the engineering and computing decisions that must take place in order to control perimeters. The OPI is a simple, and hopefully intuitive, set of functions that should be accessible to a wide range of users.
The OPI should allow all programming of current and proposed perimetric techniques, and allow incorporation of new developments. Naturally it is difficult to foresee how perimeters may be used for experimentation in the future. To allow for future developments, the OPI is small and low-level, specifying a minimum set of functions for stimulus production and response gathering. Open source libraries can easily be built on top of the OPI and shared publicly.
Code that uses the OPI should be easily transferable between different platforms. Current practice in perimetric research is to simulate methods before implementing them in instruments for clinical testing (Bengtsson, Olsson, Heijl, & Rootzen,
1997; Glass, Schaumberger, & Lachenmayr,
1995; King-Smith, Grigsby, Vingrys, Benes, & Supowit,
1994; Turpin, McKendrick, Johnson, & Vingrys,
2002]. Ideally, the simulation code can be written using the OPI, and then the exact code transferred to hardware with minimal change to prevent recoding errors. Furthermore, the code should run on any platform that implements the OPI with minimal changes.