Welcome to Engineering Calculations

Our teem has over 80 years of combined experience. We sell and support the great Optical System Design Software (KDP-2)


We provide comprehensive Optical and Optical/Mechanical System Design and Analysis Services at reasonable and competitive prices.

The optical design software, KDP-2 (Klein’s Design Program, version 2)

FULL SOURCE CODE as well as fast and friendly user support from:

Engineering Calculations

James E. Klein

Optical Design and Analysis Software

P.O. BOX 287 (275 North, 300 West)
Escalante, Utah 84726-0287
1-(435)-826-4847 (9am-7pm) Mountain Time


Email: ecalculations@ecalculations.com

Now partnering with:

Allied Optical

Graham Brewis

Optical and Opto-Mechanical Systems Design and Analysis

Oceanside, California 92056
1-(760)-967-9357 (9am-7pm) Pacific Time

Email: graham.h.brewis@gmail.com

Optical Design and Analysis and Opto-Mechamical Design and Analysis Services

Graham Brewis has over 30 years experience designing and analyzing a vast range of optical and opto-mechanical systems. He has access to a wide range of optical and opto-mechanical design and analysis tools, including ZEMAX, KDP-2, FRED and a wide range of mechanical design and analysis tools. He also has full access to the source code of KDP-2 and is a KDP-2 vendor.

James Klein, as the creator of KDP-2, began writing KDP and then KDP-2 in 1987 and began selling it in 1995.

The current 32-bit version of KDP-2 is 5.0 and is a free download from this site. Version 5.0 is built on Windows XP with the Intel Fortran Compiler 9.1, Visual Studio 2005 and I.S.S. Winteracter 7.10. With these software tools running on any Intel-based computer (including 32-bit dual boot Macs) the user should have no trouble modifying this program, renaming it, so as not to confuse it with the original KDP-2 version 5.0, and sharing it with anyone. Users are allowed to add features, change features and in so doing so, give themselves or their institutions, an optical design and analysis tool which can provide a distinct competitive advantage over those using any other optical design and analysis tool in existence (in this quadrant of the galaxy at least) which is not provided with full source code.

Optical System and Opto-Mechanical System Design and Analysis

Engineering Calculations is now partnering with Graham Brewis and his company Allied Optical. Allied Optical provides custom design and analysis of optical and opto-mechanical systems as well a being a second vendor of KDP-2 user support as described below. He is an extremely energetic and superior level optical design engineer in the optical design community.


The KDP-2 Optical Design and Analysis Software

KPD stands for Klein’s Design Program

KDP-2(32-bit) is a 100% free program download, full featured, professional grade optical design and analysis program/tool set.

The self-extraction password used after the download is : avon1 typed in the prompted location and all in lower case.

System Requirements:
All versions of KDP-2(32-bit) run under Windows NT 4.0, Windows 2000, Windows XP and Windows 7.  There are NO hardware or software keys required.

Personal Requirements:
KDP-2 was written to do professional grade optical design and analysis.  KDP-2 has both a command interface and  a GUI interface. The command interface has far more capability than the GUI interface. To build a GUI interface which included every feature of any version of KDP-2 would make that GUI interface so deep and complex as to be a Rabbit Hole which even the Door Mose could not navigate. A command interface is necessary for any serious optical design since KDP-2 is not just an optical design program but is also an optical design programming language via its flexible and powerful macro programming language. Essentially every command (in the command mode) of KDP-2 may be used in a user-written macro to produce other, user defined, commands. These macros are created of modified via a built-in full screen editor with a help feature.
Once written, user defined commands created this way (macros) are indistinguishable from  hard wired commands built into KDP-2. Literacy in Technical English is recommended. A background in Optical Physics, Optics or Optical Engineering is recommended though it is by no means necessary.

KDP-2 incorporates many features similar to those in other optical design codes such as HEXAGON (Hughes Aircraft/Raytheon), ZEMAX, OSLO ( the late-Douglas Sinclair), ACCOS-V and CODE-V (Optical Research Organization). KDP-2 is the way it is since the first optical design code I learned was an ACCOS-V variant called HEXAGON and used at Hughes Aircraft/Raytheon. That code gave that organization its copetative advantage over many companies who only had early versions of CODE-V. Any  KDP-2 user who wants a new feature added to KDP-2 must be currently paying us for user support at $1500.00/year. This paid user support is optional for any designer working at a company of fewer than 5 employees but is required of each designer working at a company of 5 or more employees. We support our free users but do not add custom features for the free users. Bug reports are appreciated from any user and will be fixed as soon as is possible.


Look here at the README file for installation instructions

Should you need a great PDF reader, download Adobe Acrobat Here Reader Now!

KDP-2 Download

Military Handbook 141 FREE download section
This is a great text on the technical aspects of optical design and analysis.

Download Mil 141 (part 1)

Download Mil 141 (part 2)

Download Mil 141 (part 3)

Download Mil 141 (part 4)

Download Mil 141 (part 5)

Download Mil 141 (part 6)

This came off an IBM 360 in 1987. If may help any Fortran programmer, take it for free.

IBM 360 Scientific Subroutine Package


To learn more about Gaussian Beam Decomposition, download the following document in PDF format.

Gaussian Beam Decomposition Document


IMMEDIATE MODE, INTERACTIVE INPUT AND ANALYSIS: Input and output in an interactive, scrolling environment. Input from the keyboard or from data files. Output to printer or disk in a range of formats. Keep a running record of a program session. Set up user defaults in a file to customize your program environment. Have full control over graphics. Execute OPERATING SYSTEM level commands without exiting the program. Use the full screen editor to write macros and enter lens data. Use a large selection of mathematical commands to manipulate program data. Store and recall numeric and string data in the many storage registers available. Set internal program operating conditions which control ray tracing and optimization. Calculate and display paraxial, 3rd, 5th and 7th order and chromatic aberrations. Model lens systems with up to 500 surfaces. Trace real single rays and output the results in many forms. Capture ray data for further calculation. Explicitly trace differential rays and display the results. Trace fans of rays, ray spot diagrams, create line spread functions, radial energy distributions, ensquared energy distributions, complex aperture functions, wave front maps and wave front Zernike-polynomial decomposition's. Compute polychromatic geometric and diffraction based Optical Transfer Functions. Thru-focus Optical Transfer Functions. Do immediate mode arithmetic manipulation of user input and program generated data. Use the GET capability to retrieve and manipulate optical system and other data. Use the powerful TABLE WRITER to set up spread sheet output. Do linear, parabolic and cubic data interpolation from the keyboard or in macros. Use the RPN (Reverse Polish Notation) stack as a built-in calculator.

MACRO PROGRAMMING: Use a well organized, semi compiled, macro programming language to write programs from inside the program which run fast and act like new hard-wired program commands. Have up to 1024 lines in each macro. Use the macro library feature to save and organize your work. Every program command can be made part of a macro. Use the lightning fast macro functions during optimization to create operands of unbelievable complexity. Nest macros 20 levels deep. Use the powerful data transfer statements and branching commands to give your macros intelligence.

GRAPHICS: Take complete control over program graphics. Plot optical systems from any viewpoint. Plot spot diagrams, transmission files, optical transfer functions, line spread functions, energy distributions and beam footprints. Generate distortion, astigmatism and field curvature plots which are correct for all systems, even those with decentrations and tilts! Use the user defined graphics primitives to plot lines, generate axes and plot program generated data. Save these custom procedures on disk in macros. Save any of the graphics in the plot library. Use the "quick" plotting routines to get vital data plotted "fast"! Real time plot generation. Examine what you have plotted with the DRAW command, then add more to your plot and redisplay the updated plot with another DRAW.

REFRACTIVE, REFLECTIVE AND DIFFRACTIVE SYSTEMS: KDP-2  can model refractive, reflective and diffractive optical elements and gratings. Diffractive elements can be refractive or reflective gratings or HOES (with and without aspheric phase terms) just as in CODE-V.

AFOCAL SYSTEMS: Work with AFOCAL systems with ease. No need to use a "perfect" lens to make an afocal system look like a focal system. This program converts all output appropriately when the MODE is set to AFOCAL, even field curvature and astigmatism. All FOCAL mode optimization operands have equivalent AFOCAL representations for use in AFOCAL system optimization. If you insist on using a PERFECT lens to do your AFOCAL designs, we even provide one of these.

BEAM FOOTPRINTS: Create footprints of beams on any surface. Calculate both beam footprint areas and beam footprint solid angles.

STANDARD SURFACE TYPES: Model flats, spheres, aspherics to 20th order, cylinders, and anamorphic aspherics.

STANDARD MATERIAL TYPES: Use the multi-manufacturer (Schott, Hoya, Ohara, Corning-France, Chance-Pilkington and others) glass catalog, the user input refractive indices, the user defined glass catalog, and of course, the REFL for reflective surfaces and AIR for air. Define and use up to ten wavelengths at a time. Most IR and UV materials are in the glass catalog. The most complete glass catalogs available.

SPECIAL SURFACE TYPES: Add special surface definitions to any standard lens database surface type for compound results. There are several forms of polynomial deformation surfaces and polynomial phase surfaces (Radial, Rectangular and Zernike forms). There are Holographic Optical Elements (HOEs), and rotationally symmetric and cylindrical FRESNEL surfaces. Take full control with the user defined deformation and phase surfaces without the use of a compiler. A second type of user defined surface has been added which allows modeling noncontiguous surfaces. The program has a special surface type and supporting commands which make it possible to model grazing incidence reflective telescope systems. There are user input SAG, PHASE and APODIZATION grid surfaces. There is also a user defined surface, defined via a user modifiable FORTRAN subroutine. There are user input PHASE, SAG and APODIZATION grid surfaces. There is a rotationally symmetric cubic spline surface which may be attached to a standard, rotationally symmetric surface.

UNITS: Work in inches, millimeters, centimeters or meters. Convert angular output units from degrees to radians or tangents with a simple sticky switching command.

SOLVES and PIKUPS: Control lens curvatures and thickness with paraxial ray trace based solves in either the XZ or the YZ-plane. Concentricity and clear aperture solves in the XZ or the YZ-plane can also control curvatures and thickness. Establish automatic, continually updated links between parameters on different surfaces using both multiplicative and additive constant offsets. Use the powerful overall length thickness pickup and the pivot point pickups for tilted surfaces.

CLEAR APERTURES AND OBSCURATIONS: Establish circular, rectangular, elliptical, regular polygon and racetrack shaped clear apertures and obscurations with tilt and de-center capability. Explore the clear aperture and obscuration ERASES as a powerful modeling tool. Place a de-centered clear aperture on the Reference Surface and automatically chief ray aim to the center of that clear aperture. Flats on concave surfaces are available using the CLAP command.

TILTS AND DECENTRATIONS: Apply general Euler angle rotations in three dimensions to any surface. Use one of two angle conventions available: pure right handed (as in ZEMAX) and mixed angle (as in CODE V, ACCOS and OSLO). Apply tilts "TILT", reverse tilts "RTILT", rev. tilts "TILT REV", automatic tilt alignments to a chief ray, X and Y-decentrations, automatic decentration alignments to a chief ray "TILT AUTO" and "TILT AUTOM", bends "TILT BEN", de-center and return "TILT DAR" and full return "TILT RET" capability. The "TILT" command can be augmented by an alternate pivot position definition using the "PIVOT" command to rotate about an arbitrary point. KDP-2 has the most complete and flexible set of de-centration and tilt commands of any optical design program.

FLEXIBLE RAY AIMING: Ray aim to a "Reference Surface", to the aperture stop, or to surface 1. Automatic location of and aiming to the entrance or exit pupil. The most complete and flexible ray aiming scheme in the industry. Set telecentric aiming of paraxial and real rays when modeling telecentric systems. Set "APLANATIC" reference surface ray aiming. Trace rays through ultra wide angle systems (half angle > 90 deg) with no special settings as are required in other programs.

PARAXIAL AUTOMATIC CONDITIONS: Set and hold magnification, entrance pupil diameter, object space f-number, and object space numerical aperture.

SCALE THE ENTIRE LENS: Use the scaling commands to scale the lens database, including data in alternate configurations (a.k.a. zoom positions) including all special surface data.

MULTIPLE CONFIGURATIONS (ZOOMS): Have up to 75 alternate lens configurations. Zoom all lens database parameters, special surface parameters and some general program parameters as well. Pickup lens data inside and across configurations. Model and optimize scanning and zoom systems with ease.

PERFORM THERMAL ANALYSIS: The effects of temperature and pressure may be easily modeled with the THERM and PRESS commands. These commands may be "zoomed". Easily model the behavior of light in gases other than air.

OUTPUT YOUR LENS: The lens database may be output and displayed in a number of formats. It may be output in a form so it can be re-read by the program. The default prescription format is easy to read. You can easily customize many program output functions. Convert your prescriptions to be read by other optical design programs. Convert KDP-2  prescriptions to CODE-V format and input both ZEMAX and CODE-V prescriptions.

OFF THE SHELF DESIGNING: In conjunction with a large and powerful lens library capability, lenses may be added together to synthesize a new optical system. Using the lenses listed by many manufacturer's (Edmund Scientific, Melles-Griot, Newport, Rolyn and Spindler & Hoyer) lens catalogs, which are included with the program, optical systems can be easily assembled from "off the shelf" components and then fully analyzed.

SPECIAL DATA FITTING: Use the SPFIT routines to fit data to functional forms. Compute glass index coefficients. Apply fitting coefficients to a special surface type and then ray trace through the resulting surface. This also contains routines for automatically updating the user defined glass catalog based on user input index data.

SPECTRAL ANALYSIS: Use the SPECT capability to manipulate wavelength dependent data files. Perform transmission analyses of optical systems. Determine spectral weighting factors to use in optical transfer function (OTF and MTF) calculations.

OPTIMIZATION: Use the most flexible optimization configuration ever available in a commercial optical design program. Build your own merit function from hundreds of predefined operands. If you need an operand not provided in our pre-defined list, just build it in a fast macro function using any of the hundreds of program commands and "gettables" from the GET list. Use lens database, paraxial ray based and real ray based operands with equal ease. Optimize in multiple configurations. A large list of lens database parameters are available for use as optimization variables, including all 96 special surface coefficients. Several methods of damping are provided for the Damped Least Squares solutions. Full control over optimization is provided. The derivative matrix is accessible at all times. Elements of the derivative matrix may be retrieved with the GET command. The optimization is fully re-entrant. The value of the damping factor is under complete user control. Updates can be made to the lens database without starting a new "auto" run as in some other programs. A direct, non damped solution method is available when needed. Two levels of optimization merit function and variables definition may be saved and reloaded. Macros may be used to prepare or save useful variables and operand lists. Merit function constraints are implemented as weighted operands. All operands may be corrected to a value, held to a value, held greater than or equal to a value, held less than or equal to a value or simply computed and displayed in a bypass mode. The optimization techniques are always being tested and expanded to provide the most powerful and flexible optimization techniques that can be provided. Have up to 100000 variables and 100000 operands at a time. A KDP unique implementation Powell's Convergent optimization methods is also available as an optional optimization method. Paul Robb's acceleration technique for use with damped least squares (DLS) is also available. Variable constraints are held exactly in all cases. The program also includes our customized Powell’s solution method which provides a completely new way to solve the operand/variable problem and is unrelated to the industry standard Damped Least Squares (DLS) method. Powell’s method performs multiple optimizations one variable at a time until the full list or variables has been run through. Each time ITER POWELL is run, the order in which the variables are applied is randomly selected thus assuring that no two runs of ITER POWEL are the same thus NO STAGNATION of optimization occures. Each implementation of ITER POWELL is different and will provide increasingly better solutions. Using DLS and Powell’s methods at different times provided a creative way address the optimization problem until the best solution possible is found. Use the USER DEFINED optimization to optimize anything!. All tolerance and optimization definitions are stored with the lens database. An automatic damping factor calculator is available. As of the current version, some of the older ineffective damping factor methods in DLS have been removed and the Dilworth method has been removed as it has proven to diverge.

GAUSSIAN BEAM PROPAGATION: The program has an extensive modeling and optimization capability with respect to gaussian beams. This feature works and is accurate for centered as well as tilted and decentered systems, even those containing diffractive optical elements. It is based upon the real differential ray trace.

TOLERANCE ANALYSIS: The program has an extensive system of commands for generating a sensitivity analysis, an inverse sensitivity analysis and a Monte-Carlo type tolerance analysis for the current lens prescription. This includes a chapter for the Reference Manual and an example in the Tutorial. Special surface tilt (STILT), barrel tilt (BTILT), element roll (ROLL), displacement (DISP) and alternate pivot point (PIVOT qualifier) options are available from within automatic tolerancing. These option are also available from the CMD level for interactive tolerancing.

DIFFRACTION CAPABILITIES: Diffraction based Complex Aperture Function, Optical Transfer Function, Diffraction Based Point Spread Function analysis, encircled and ensquared energy analysis and Pixel Linearity analysis. Decompose a wave front into Zernike Polynomials and use the polynomial coefficients for analysis or optimization. Tolerance using geometric or diffraction MTF.

VERY WIDE FIELDS OF VIEW: Advanced ray aiming techniques allow tracing rays through systems with fields of view in excess of 180.0 degrees with no special intervention by the designer.

ILLUMINATION SYSTEMS: Analysis of illumination systems.

GLOBAL SURFACE INSERTION: Surfaces may be input in global as well as in local coordinate systems.

3D -DXF LENS DATABASE AND RAY OUTPUT: The current lens and rays traced through it may now be output to a 3D DXF file for later importation to CAD packages.

PART DRAWINGS: Quick simple to use part drawing routine with full user customization.

MULTI-FOV GEOMETRICAL AND DIFFRACTION MTF: Now do single or multiple field of view geometrical of diffraction based MTF calculations and graphical display. Supports up to 10 field of view positions using the FLDS command to define multiple field of view positions in the lens database.

USER DEFINED FUNCTION PLOTTING: The user can construct plots of functions of an independent variable using the user defined plotting routines.

LENS DATABASE TRANSLATION: The user can output KDP-2 optical prescriptions into CODE-V type sequence files which can then be input into CODE-V. The user can output KDP-2 optical prescriptions into ACCOS-V type data files which can then be input into ACCOS-V. The user can also import both CODE-V and ZEMAX lens databases from CODE-V sequence files or ZEMAX (.ZMF) files into KDP-2. These translations are performed with the "LENO CV" , "LENO AC", "CV2PRG" and "ZMX2PRG" commands.

TEST PLATE FITTING: The user can fit their designs to an extensive list of test plates.

SURFACE COATINGS: The user define surface coatings and diffraction grating efficiencies which are used in ray energy tracking.

NON-SEQUENTIAL SYSTEMS: A whole new non-sequential systems modeling tool has been added with its new NSS ray trace.



The following KDP-2  support services are available from Engineering Calculations:

Part #

Item Description

Unit Price


KDP-2 Includes user support and the (free) full source code and addition of custom features.



* User support for KDP-2 (32-bit) is FREE for individual users working at companies with fewer than 5 employees but PAID YEARLY USER SUPPORT is required for individual users working at companies with 5 or more employees. NOTE: we only add custom features for paid user support users.

We accept US Bank Checks, Certified Checks, U S Government P.O., Company P.O. and Personal and Company checks.

Make all orders payable to: James E. Klein

Mail all orders to: Engineering Calculations
PO BOX 287
Escalante, Utah 84726-0287

The full (not free) 64-BIT version of KDP-2, coming in January 2018 will be named PROMETHEUS.

Last update 11/22/2017

Email: ecalculations@ecalculations.com


Copyright Engineering Calculations and James E. Klein 1995-2017.