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)
SOURCE CODE as well as fast and friendly user support from:
James E. Klein
Design and Analysis Software
1-(435)-826-4847 (9am-7pm) Mountain Time
Optical and Opto-Mechanical Systems Design and Analysis
1-(760)-967-9357 (9am-7pm) Pacific Time
Design and Analysis and Opto-Mechamical Design and Analysis Services
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.
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.
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
KDP-2 Optical Design and Analysis Software
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
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.
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
KDP-2 DOWNLOAD SECTION
Handbook 141 FREE download section
This is a great text on the technical aspects of optical design and analysis.
IBM FORTRAN Stuff
This came off an IBM 360 in 1987. If may help any Fortran programmer, take it for free.
To learn more about Gaussian Beam Decomposition, download the following document in PDF format.
A LIST OF SOME OF KDP-2's CAPABILITIES
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.
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
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
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.
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:
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
The full (not free) 64-BIT version of KDP-2, coming in January 2018 will be named
Last update 11/22/2017
Copyright © Engineering Calculations and James E. Klein