The following tutorials will guide you through many of the important aspects for designing a photonic circuit using IPKISS. Each tutorial is designed to be the fastest route to get to a certain result, with a minimum of overhead or distraction. Furthermore each tutorial has a list of learning objectives and is composed of several steps that progressively build up to that result.

Each step of the tutorial contains executable Python files that are internally documented using python inline comments. The files are displayed inside the documentation, and can be downloaded. They are also available in the ‘samples’ folder of your installation.

A tutorial also has a series of prerequisites, as indicated by the arrows below. It is not strictly necessary to go through all the prerequisites before starting a step-by-step guide: the tutorials are made such that all concepts that are required, are introduced in the tutorial itself.


Fig. 6 Structure of the tutorials

Getting started

Installing Ipkiss
The first step is to install Ipkiss.
Using a code editor
Learn how to use a code editor for writing IPKISS code.
Getting familiar with python
Knowing python is not a strict requirement to learn ipkiss but having some basic understanding will certainly help you.
Quickstart: A first circuit
This tutorial has brings you to results quickly without getting too deep into the nuts and bolts of IPKISS. This is the quickest way to have a pretty good idea of the principles and functionality.

Layout tutorials

Simple Layout
This tutorial introduces the most basic functionality to specify the layout part of your design.
Advanced Layout
This tutorial introduces you to more advanced layout functionality: It introduces layout hierarchy, waveguides, and routes.

Compact model tutorials

Implementing compact models for circuit simulation
This tutorial explains how to implement compact models in IPKISS. These models are used to run circuit simulations in our circuit solver Caphe.
Advanced topics in compact modeling
This tutorial contains some advanced topics related to circuit simulation.