Home

Awesome

<h1 align="center">DPhox</h1> <p align="center"> <img src="https://user-images.githubusercontent.com/7623867/134089718-b4de5f82-adfb-4b20-9b98-b230748a73f9.png" width=50% height=50% alt="dphox"> </p>

Build Status Docs PiPy CodeCov

<!-- start at-a-glance -->

DPhox 0.0.8

The dphox module is yet another Python 3-based design tool for automating photonic device development.

Note: This is a work in progress. Expect features in the code to be unstable until version 0.1.0. Note the low test coverage, which will be improved in coming weeks.

Documentation and tutorials

The documentation contains the API reference for dphox and the tutorials you need to get started.

We also provide a number of Colab tutorials to introduce the basics:

  1. Photonic design
  2. Fundamentals: the core classes dp.Pattern and dp.Curve and various transformations / examples.
  3. Design workflow: concepts for designing a chip in an automated fabless workflow.
<!-- end at-a-glance --> <!-- start why-dphox -->

Why dphox?

Gallery

Advantages of dphox

Inspirations for dphox

<!-- end why-dphox --> <!-- start installation -->

Installation

Getting started

You may use pip to install dphox the usual way:

pip install dphox

To install all of the dependencies for visualizations as in the above demo, instead run:

pip install dphox[all]

Development

When developing, install in your python environment using:

git clone git@github.com:solgaardlab/dphox.git
pip install -e dphox

You can then change dphox if necessary. When importing dphox, you can now treat it as any other module. No filepath setting necessary because dphox will be in your environment's site-packages directory.

Requirements

You will need python>=3.9 as well as the following (note these requirements are automatically installed):

numpy==1.21.2
scipy==1.7.1
shapely==1.7.0
klamath>=1.2

These will be installed via pip automatically if not already installed.

Optional requirements

The following modules are nice-to-have but optional, and are not included in default installation:

bokeh==2.2.3
holoviews==1.14.6
trimesh==3.9.30
triangle==20200424
matplotlib==3.4.3
networkx

You can also install libraries such as nazca and gdspy, which can be converted to dphox objects.

<!-- end installation -->