Software for Visual Science

          There is a certain particularity of software for scientific projects. Unlike the business applications, it is more Math intensive and usually not so huge. That software may be and should be designed following certain academic rather than empirical methodology and style.

          Also, typical enough for scientific environment are small problems and projects appearing now and then, for which no formal specifications were thoroughly written in advance. The implementation should be designed on flight, but it must be very robust and functional, allowing further development and changes as necessary. Also, in the modern graphical and multitasking operating environment, the Graphical User Interface (GUI), event-driven logic and sophisticated display of scientific data should meet high standards established in this field. Programming and debugging in such complex environment normally is much more challenging in comparison with the very simplistic sequence driven user interface and display in the "good old days". It would drain a lot of efforts away from programming the essentials of the scientific problems, unless the concept and metaphor of the Rapid Application Development (RAD) was introduced and implemented in a new line of Borland's products, which revolutionized the process of software development.

            Continuing its much earlier developed concept, Borland created a powerful uniform integrated environment for the major programming languages Pascal, C++ and Java, which comfortably allowed developers to edit source code, to run and debug it all together. In addition, the most complex, annoying and unforgiving part of designing process – event driven structure of the code and GUI, was completely automated via the library of the high level meaningful Visual Components (VCL), covering entire Windows Application Interface (API). The components of the VCL are integrated into the developer environment so that they allow the so called two-way design: either visually by dragging and dropping the components from the palette (while the system adds the supporting code automatically), or by adding the code manually.

          The first in the line of such products was Delphi-1 – a modified Pascal appearing in 1995 and now evolving into Delphi-6-8. Soon after Delphi, Borland introduced the similar integrated environments and VCL for developers of C++ and Java called respectively C++ Builder and Java Builder. Borland ported that whole line of RAD products also into Linux realm.

            My work in the Smith-Kettlewell Eye Research Institute began in June 1995, I have developed a large variety of projects in Delphi.

          The recent one (since 2005 and still in progress) conducted under supervision of Dr. M. MacKeben, is development of sophisticated software for experiments and tests performed with a Scanning Laser Ophthalmoscope (SLO) built by Rodenstock (Germany). The software grabs NTSC video stream of human retina generated by the SLO, and simultaneously sends stimuli back to the SLO transmitted via RGB-to-NTSC converter CorioScan. (CorioScan transmission is controlled via Serial Com Port).

          The goal of the first stage of the project was to record the movies of eye movements, to perform their Off-Line frame tracking using the advance Matrox Image Processing Library (MIL-7), and with the obtained offsets for each frame to develop advanced graphical analysis of the eye movement. This graphical analysis includes procedures and graphs such as saccades analysis, x(t), y(t) curves, real time trajectory animation, and the dwelling time histograms (exportable in MS Excel for isometric 3D graphing).  

          The challenge of the second stage was to develop an advanced version of the micro-perimetry test with the goal of achieving a gaze-contingent delivery of the stimuli based on real time frame tracking of the eye movements. This goal was reached due to enhancements of the MIL's Pattern Matching routine, and optimizing the data processing at all steps. Having the gaze-contingency achieved, we developed several other tests such as real time measurement of accuracy of fixation, or accuracy of pursuit of a target moving along given trajectories.

          The current stage of this project is published in a special issue of JOSA, May 2007.

Other projects developed under supervision of Dr. M. MacKeben were:

Under supervision of Dr. C. Tyler was developed

Some auxiliary projects performed on my own were: