KOJAC

These web pages are a slightly updated revival of the original KOJAC web pages, that don’t exist anymore on the web site of the Applied Optics Group of IMT (formerly at the University of Neuchâtel, now at EPFL).

KOJAC : KOJAC is Optics Java Applets Classes

Description

What Is KOJAC?

KOJAC is a set of Java classes implementing optical elements and optics laws in order to build and simulate optical systems. KOJAC is also aimed at being a demonstrator of optics for educational purposes. It has been developed at the IMT by Olivier Scherler during a training period.

How Does It Work?

Optical systems are composed of objects with defined properties that may be modified by the user through the applet’s buttons and scrollbars. Such basic devices are lenses, apertures, interfaces, and may be themselves composite sets of other elements. Figure 1 presents some of the existing objects.

Examples of optical devices.

optical devices

Do note that many optical devices can be described by the composition of simple bricks. Spherical interfaces are no more than aspherical ones where the conic coefficient is null, real lenses (“real” as opposed to “infinitely thin paraxial”) are composed of two spherical interfaces and so on. This outlines the interest of the Object Oriented conception of KOJAC. Extending KOJAC with new classes is thus simple, and creating a system is also a task that does not require advanced knowledge in optics.

Features

Among the various features of KOJAC, the main ones are:

In the future, KOJAC may be extended with new elements (GRIN lenses, fibres, cylindrical lenses, prisms, mirrors). We also plan to enhance the display routines with zoom or perspective capabilities. Finally, we plan to create more non optic devices (like the device switcher), i.e. elements that do not interact with the light but provide new capabilities to the tutorial designer.

Documentation

To start with the program’s internals, recommended readings are the semester work report of Olivier Scherler, and the slides of his presentation (PowerPoint format, zipped).
Experimenting with the existing tutorials is a good mean to learn more about the general structure of the libraries and the way an applet can be built. Writing an applet does not require much work and knowledge, and is straightforward if the author has some notions of Object Oriented Programming and Java.

Extending the sources needs more time, but the Object Orientation of Java is a guaranty of clearness of the code. “Spaghetti” code is hard to write in Java.

Examples

At present, KOJAC archive contains the applets that are presented on our tutorials page, plus a few more. These applets are:

KOJAC Used Elsewhere

KOJAC has been used by David Przewozny of Sternklar (a German amator astronomy site) to demonstrate the effect of the telescope. Its applet shows how the light is concentrated by a telescope (resulting in brighter images), and how the angles are amplified, for a good separation between the stars.

KOJAC was used by a research group of Stanford University, CA, as part of a genetic algorithm used to design optical systems:

Our examples are also reproduced on Jean-Luc Kaiser’s home page at ENST Bretagne, a French Telecommunication school.

License and Copyright

The Java source code of the framework and the source code of the tutorials are released under the General Public License (GPL). Briefly, it states you are allowed to copy, translate, modify or sell it under the following conditions:

Download and Bug Reports

You can download both the optical classes and the java applets from here.

The current maintainer is Olivier Scherler. Please contact him for patches and/or bug reports.