IPKISS Documentation

IPKISS is a powerful design framework for photonic engineers. IPKISS allows designers to capture the complexity of integrated photonic circuits using an intuitive and flexible framework. IPKISS is based on Python 1, an easy to learn yet very powerful programming language that has gained a lot of popularity among the scientific community. You can read more about the rationale behind IPKISS and the Luceda design flow here, and get an overview of the IPKISS features here.

The IPKISS framework gives access to both a Python script interface as well as a graphical user interface built on Tanner L-Edit from Mentor Graphics:

  • The Python script UI is ideally suited for component design, component exploration tape-outs, as well as the creation of complex parametric cells and full-fledged circuits. The software ensures that parametric cells can be reused within your organization.
  • The L-Edit based GUI is the path to take if you want to leverage standard EDA functionality in combination with specialized photonics design, and need to integrate your design with electronic driver circuits.

Two bundles of IPKISS are available:

  • IPKISS.flow gives you access to the Python script interface.
  • IPKISS.eda gives you access to both the L-Edit and the Python script interface.

As the use model of both interfaces is different, the documentation is split into two parts. The documentation of the Python framework aims to teach the concepts used in IPKISS and how you can use them to build powerful components and designs. The documentation of the L-Edit integration, on the other hand, follows a hands-on approach. It shows you how to build opto-electronic designs inside the L-Edit environment, starting from an existing PDK.

IPKISS scripting documentation

Getting Started with tutorials

In order to help you getting productive using our tools we’ve written a variety of tutorials. Using meaningful examples we show how IPKISS helps you to create reusable designs. These tutorials are organized by topic and gradually address more advanced topics.

A full list of tutorials can be found here Below we provide a shortcut to the beginner tutorials:

Before starting with Ipkiss

What is IPKISS?
A quick introduction on the basic principles of IPKISS and why the Luceda design philosophy is so powerful...
Installing IPKISS.flow
The very first step is to install our tools correctly. (For installation of the IPKISS.eda product, see below)
Gives you an overview of what is included in our design suite and how you can use it.
Introduction to Python
Knowing Python is not a strict requirement to learn ipkiss but having some basic understanding will certainly help you.

First Steps with Ipkiss

Quickstart tutorial
Good tutorial to learn the principles of IPKISS without too many technical details.
A Simple Layout
This tutorial introduces the most basic functionality to specify the layout part of your design.
A Simple Circuit
If you’re interested in building a circuit with a netlist and simulating it with our circuit simulator, this tutorial is what you’re looking for

IPKISS Code Reference

The reference lists all available functionality (classes, methods and functions) per topic of interest. As much as possible we provide clear examples to illustrate the use. Below are shortcuts to the most important references.


Guides are detailed documents describing specific parts of IPKISS. You are not required to read these guides to become proficient in IPKISS. Nevertheless, once you understand the basics of IPKISS, the guides are a valuable resource to further explore IPKISS’ capabilities.

List of all guides

Below are shortcuts to the most important guides:


Jupyter Notebook 2 is a Python based tool to make it easy to execute some simple Python code and visualize the results. As it’s a very interactive tool, it’s a great tool for education and exploring libraries. When building complete designs, however, you’ll probably prefer to use a Python editor because it’s better suited for building your own PCells.

When you installed our software, you can click the Notebook button in the Luceda Control Center to explore the included notebooks. We also provide on-line notebooks for exploring the functionality of IPKISS.

In this documentation we’ve embedded some prerendered notebooks as an overview of the legacy IPKISS 2.4 functionality.

IPKISS & L-Edit documentation

The integration with L-Edit offers a GUI-oriented approach for opto-electronic circuit design. This functionality is available if you have obtained licenses for IPKISS.eda. The documentation of the L-Edit integration is structured around concrete actions & tasks.

Installing IPKISS.eda
Before starting to create designs, make sure that our tools are properly installed.
Using a PDK to build a design
Learn how to reuse the components and technology from an existing PDK.
Library organization
Learn how to organize your designs in IPKISS in general. This is relevant to both IPKISS.flow and IPKISS.eda users.
Getting started with IPKISS & L-Edit
Create your very first design with IPKISS & L-Edit.
Reusing cells in a circuit
Reusing cells in a design with hierarchy helps you to manage the complexity of your circuit.


The IPKISS framework is continuously improved. In the History you will an overview of the essential changes between different versions of IPKISS, as well as guides for porting your components and scripts from one version to another to make the best use of new features, or avoid backward compatibilities.

For existing IPKISS 2 users we built the following guides:

A summary list of changes from version to version is available in our Ipkiss Release notes.

Support & Feedback

In case something doesn’t work as you expected, if you have a question on the capabilities of our tools, or if you need guidance on creating your designs, we’re glad to help you out. Contact us at support@lucedaphotonics.com

We highly value the feedback of our users. To give feedback on the documentation, every page is equipped with a ‘feedback’ button. If you feel that any information is lacking or incorrect, feel free to tell us. Just click the button and let us know what you like, and what you think can be improved (note: internet access is required to submit the form).

[2]Jupyter notebooks