What is IPKISS?

IPKISS is a parametric design framework for integrated circuits, and in particular for photonic integrated circuits. It revolves around the sound engineering concept that duplicating information in the design process is dangerous: at some point you will make an error (copy-pasting the wrong component, or forgetting to modify a parameter in one place). In IPKISS, you can define parametric cells (PCells) where all your design information is integrated into one place. IPKISS then handles the transition between the different steps in your design flow and makes sure that the necessary information is available and correct.

Photonic design happens at many different levels. A lot of the component design is still done using detailed electromagnetic simulations, tailoring geometries to a very detailed level. While at the same time, circuit design requires abstraction at a much higher level. Traditionally, these different steps in the design flow require very different tools, while at the heart they require the same component definition: at the end of your design you want the correct component to be placed on the mask for fabrication. IPKISS integrates the different aspects of photonic design into one framework, where you can define your component once as a parametric cell (PCell) and then use it throughout your design process, performing electromagnetic simulations, defining circuit models, linking it up in a circuit, generate the mask layout that will be sent to the fab and finally even process the testing of the fabricated devices. Because the same component definition is used in the entire flow, design errors are significantly reduced.

The design flow of IPKISS

IPKISS enables you to use the same component definition throughout the design flow.

IPKISS comes with PICAZZO, a large library of predefined parametric components. While mainly developed for silicon photonics, the components are generic and can be applied to any planar photonic integration technology. Components include parametric grating couplers, Mach-Zehnder interferometers, (multi-)ring resonators and (optionally) advanced wavelength filters such as arrayed waveguide gratings (AWGs) and echelle gratings.

Python Scripting

At the core of IPKISS is a power Python scripting framework. We opted for a scripting layer because it poses the minimum of constraints. The Python language is easy to read, is an accepted industry-standard, and comes with a rich ecosystem of scientific and engineering packages. Moreover, it makes IPKISS an open environment, where it is possible to integrate different design and simulation tools (even from other tool vendors) into your design flow.


IPKISS development originated at Ghent University and IMEC in 2002, to enable mask design of large silicon photonics circuits, which was difficult with any of the tools at that time. Over time, the framework evolved into much more than layout, incorporating multiple simulations tools (electromagnetic and circuit) and an entire test & measurement framework. In 2012, a limited version of IPKISS was open sourced, and is widely used for many tape-outs of silicon photonic chips. In 2014, Luceda Photonics was incorporated to bring the development of IPKISS up to industry standards and provide commercial support and services. This resulted in a major upgrade of the software that full integrates layout and simulation and will enable the integration with electronic design flows.

Its history as the design tool of choice for IMEC silicon photonics technology has validated the design tools and the PICAZZO library on tens of tape-outs.


The name IPKISS is not chosen as an acronym, although you could come up with meaningful expansions such as Integrated Photonics: Keep It Simple Stupid (although we’re not that fond of the last word at Luceda Photonics). The origin of the name lies in the original purpose of the framework, which was making really complex photonic mask layouts. IPKISS was named after Stanley Ipkiss, the key character in the comic books The Mask (and the movie with Jim Carrey). The name just stuck; we like it. The name of the PICAZZO component library is a tongue-in-cheek to the artist Pablo Picasso, who, during a period in his life, was an enthusiastic painter of masks.