Linux/OS: [](https://travis-ci.org/DerekK88/PICwriter) Windows: [](https://ci.appveyor.com/project/DerekK88/PICwriter) Documentation: [](http://picwriter.readthedocs.io/en/latest/?badge=latest) [](https://github.com/ambv/black)
# PICwriter README Picwriter (Photonic-Integrated-Circuit Writer) is a [Python](https://www.python.org/) module, built above the [gdspy](https://github.com/heitzmann/gdspy) module, aimed at simplifying the process of designing complex masks for photonic integrated circuits through a prebuilt library of easy-to-implement PCells. Supported blocks currently include: * waveguides (strip, slot, and sub-wavelength grating) * grating couplers (straight and focusing) * tapers * strip to slot waveguide mode converters * directional couplers * adiabatic couplers * spiral structures (auto-generated from specified waveguide length) * 1x2 multi-mode interferometers * 2x2 multi-mode interferometers * ring & disk resonators with automatic bus waveguide wrapping * distributed bragg reflectors * Mach-Zehnder interferometers * alignment markers (for photolithography and ebeam lithography) * metal routes * bond pads
Stay tuned, more components are coming soon! In the meantime, check out the documentation for this project at [picwriter.readthedocs.io](http://picwriter.readthedocs.io).
## Features The ultimate goal of this module is to reduce the time required to generate photonic integrated circuit mask designs, by extending the functionality of the gdspy library. * High-level specification of common building blocks for photonic-integrated circuits * Fabrication specific masks. Specify the photoresist type (‘+’ or ‘-’) and fabrication type (such as ‘ETCH’) and PICwriter will generate the appropriate mask files for electron-beam or photolithography. * All library components are subclasses of the gdspy Cell class, so gdspy Cell features such as rotation(), copy(), flatten(), get_bounding_box(), etc. are all supported.
## Installation
### Dependencies: With a working version of python, all dependencies should be automatically installed through the instructions below.
[Python](http://www.python.org/) (tested with versions 2.7, 3.4, 3.5, 3.6 for Linux/OS, tested with versions 2.7, 3.4, 3.5, 3.6, 2.7-x64, 3.4-x64, 3.5-x64, 3.6-x64 for Windows.)
[gdspy](https://github.com/heitzmann/gdspy) (tested with versions 2.7, 3.4, 3.5, and 3.6)
[Numpy](http://numpy.scipy.org/)
[SciPy](https://www.scipy.org/)
[Python-future](http://python-future.org/) (only for Python 2)
### Linux / OS X Both options should automatically install all dependencies (like gdspy, numpy, etc.).
Option 1: using [pip](https://docs.python.org/3/installing/):
`sh pip install picwriter `
Option 2: download the source from [github](https://github.com/DerekK88/picwriter) and build/install with:
`sh python setup.py install `
### Windows
The best way of obtaining the library is by installing the prebuilt binaries.
First, go to the [gdspy appveyor project page](https://ci.appveyor.com/project/heitzmann/gdspy), then click the python environment that matches your python version and processor type. For example, if you have a 64-bit processor with Python version 3.5 (you can check by running python –version in a command prompt) then you would click ‘PYTHON=C:Python35-x64’. Then, click the Artifacts tab and download the corresponding distgdspy-1.X.X.X.whl wheel file.
Open up a command prompt (type cmd in the search bar), navigate to your downloads, then install via:
`sh pip install dist\gdspy-1.X.X.X.whl `
Next, install the PICwriter library by following the same procedure as before at the [picwriter appveyor page](https://ci.appveyor.com/project/DerekK88/picwriter) to install the corresponding prebuilt picwriter .whl file.
In a command prompt, navigate to your downloads and install with pip:
`sh pip install dist\picwriter-1.X.X.X.whl `
Building from source is also possible. For installing gdspy, an appropriate build environment is required for compilation of the C extension modules.
Metadata
Release files for picwriter 0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| picwriter-0.5.tar.gz | 75.0 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| picwriter-0.5-py3.7.egg | Legacy Egg format | - | - | Details |
| picwriter-0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 511.7 kB
Release files / picwriter-0.5.tar.gz
| Download URL | picwriter-0.5.tar.gz |
|---|---|
| Size | 75.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a92c5e6414b99add5c4d5b3a833b2b2d88f1fa07c3673f7e06b3634270c100f
|
|
BLAKE2b-256 checksum How to use checksums |
f2ed838969668eb0536d535612ad45924f0ef8daf16e2f6248ecfd494df18621
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
|
Release files / picwriter-0.5-py3.7.egg
| Download URL | picwriter-0.5-py3.7.egg |
|---|---|
| Size | 296.9 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
98447ae65e94d36f27f3829a9522e43725de44109ef67b2c6846039365194972
|
|
BLAKE2b-256 checksum How to use checksums |
b646255dbaa90131117a5659af5a94abb55123b32040c32fac5abba73e4682b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
|
Release files / picwriter-0.5-py3-none-any.whl
| Download URL | picwriter-0.5-py3-none-any.whl |
|---|---|
| Size | 139.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a70528f8441282b2d96db644d8908f75b3b54817dea75a882a9822b9e0bcdfc
|
|
BLAKE2b-256 checksum How to use checksums |
bc118ca1d29fd14b39079f09b04f0e1fad532a60c268a9fa50540f1a9ade1ba0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
|