All Projects → nicolasayotte → MatlabGDSPhotonicsToolbox

nicolasayotte / MatlabGDSPhotonicsToolbox

Licence: MIT license
This is a Matlab library of functions to facilitate the design of Photonics Integrated Circuits GDS layout.

Programming Languages

matlab
3953 projects
c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to MatlabGDSPhotonicsToolbox

gdsfactory
Python package to generate GDS layouts.
Stars: ✭ 38 (-38.71%)
Mutual labels:  gds, photonics
mcxcl
Monte Carlo eXtreme for OpenCL (MCXCL)
Stars: ✭ 36 (-41.94%)
Mutual labels:  photonics
SiEPIC Photonics Package
A Python (v3.6.5) package that provides a set of basic functions commonly used in integrated photonics.
Stars: ✭ 22 (-64.52%)
Mutual labels:  photonics
Devices.jl
Julia package for CAD of superconducting devices operating at microwave frequencies.
Stars: ✭ 16 (-74.19%)
Mutual labels:  gds
alphagov.github.io
GitHub organisation site for GDS. Also an Apache Maven repository.
Stars: ✭ 21 (-66.13%)
Mutual labels:  gds
deep-route
Training a deep FCN network in PyTorch to route circuit layouts
Stars: ✭ 55 (-11.29%)
Mutual labels:  integrated-circuits
photontorch
Highly parallel simulation and optimization of photonic circuits in time and frequency domain based on the deep-learning framework PyTorch
Stars: ✭ 29 (-53.23%)
Mutual labels:  photonics
modesolverpy
Photonic mode solver with a simple interface.
Stars: ✭ 47 (-24.19%)
Mutual labels:  photonics
fdtd
A 3D electromagnetic FDTD simulator written in Python
Stars: ✭ 195 (+214.52%)
Mutual labels:  photonics
Incoherent-Light-Simulation
Simulation of the propagation of incoherent light, aiming to illustrate the concept of spatial coherence.
Stars: ✭ 98 (+58.06%)
Mutual labels:  photonics
Adjoint-Workshop
Gentle introduction and demo of the adjoint variable method for electromagnetic inverse design
Stars: ✭ 20 (-67.74%)
Mutual labels:  photonics
maxwellbloch
A Python package for solving the coupled Maxwell-Bloch equations describing the nonlinear propagation of near-resonant light through thermal quantised systems such as atomic vapours.
Stars: ✭ 23 (-62.9%)
Mutual labels:  photonics
ValoMC
Monte Carlo software for simulating light propagation
Stars: ✭ 31 (-50%)
Mutual labels:  photonics

Matlab GDS Photonics Toolbox

This is a Matlab library of functions to allow the design of Photonics Integrated Circuits GDS layouts that I have developped with Alexandre D. Simard during my PhD.

This is oriented towards intuitive and adaptable creation of GDS layout files for fabrication in different facilities across the world. The toolbox creates a GDS based on a general layer map, but can be set up to export to any other layer map once the design is done.

Nicolas Ayotte and Alexandre D. Simard have used this library to efficiently create multiple layouts for different fabrication facilities across the world with successful results. I have reports of the library being used from the United States, China and Israel from students working in Photonics but also in Quantum Information Processing and Ultraprecision Machining.

Features

  • Routing based on relative orientation.
  • Routing can handle a group of waveguides while doing turns, tapers, s-bends and the possibility to customize inter-waveguide distance at any point.
  • Access to the travelled distance (physical or optical) of any waveguide offering a quick way to measure your device lengths.
  • All the devices and waveguides are aligned by code. No mistakes.
  • Possibility of referencing premade structures (fiber couplers, directional couplers, detectors, etc.) from files.
  • Possibility of referencing custom structures created on the fly.
  • Premade functions for microrings, Bragg gratings, multi-mode interferometer, contra-directional couplers, output array of fiber couplers, CPS, vias, etc.
  • Tutorial project with many cells showcasing the features.
  • A PDF presentation presenting the library's purpose and principles.
  • Each cell can be generated independently for a quick inspection.
  • Flexible cell placement in the master floorplan for easy teamwork.
  • Change an array of 5 devices to 50 in a few seconds with the whole chip floorplan adjusting automatically to the new footprint.
  • Includes functions to export to other layer maps, including boolean operations on the layers.
  • Move or store your entire chip as Matlab script taking a mere fraction of the GDS file space.
  • Keep all of your chip version history with any versioning system (SVN, git, etc.).
  • Easy scripting language (i.e.: Matlab).

It is strongly encouraged to get the free software KLayout to look at your GDS files: http://www.klayout.de/

Getting started

  • Look through the PDF presentation
  • (Optional) Run the command "mex -setup" to install a C compiler in matlab.
  • Run the makemex.m function in the main folder to compile all the C functions needed for the library.
  • Open the tutorial project folder: "Project - New Project"
  • Go through the Cells script, run them independently, look at the resulting .gds files.
  • Look at the Cell_RoutingWG.m script that places the cell in the floorplan.
  • Read at the ProjectDefinition.m file.
  • Run the Main.m to merge the gds cells and export to the ouput layer map.
  • Duplicate the Project folder and make your own!

License

Copyright © 2014-2017 Nicolas Ayotte and Alexandre D. Simard. MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

GDS II Toolbox

Copyright © 2008-2017 Ulf Griesmann. This software is in the Public Domain. https://github.com/ulfgri/gdsii-toolbox

The GDS II library, or database, format has become an important industry standard for the description of nano-structure designs that are fabricated with either photo- or electron lithography - despite being poorly documented. GDS II library files are used to define the layout of integrated circuits, MEMS devices, nano-structured optics, and so on. This toolbox of functions for MATLAB or Octave can be used to create, read, and modify files in GDS II library format. The toolbox is particularly useful when a layout is the result of numerical modeling as is often the case, e.g., for nano-structured optics, photonic devices, or micro-fluidic devices. MATLAB or Octave can become very efficient tools for post-processing of modeling results and for creating a lithographic layout as input to the fabrication process. The toolbox can also be used to modify GDS II layout files using scripts, e.g. for merging of several layout files. Layouts can be inspected with the excellent free layout viewer KLayout.

Clipper library

Copyright © 2010-2017 Angus Johnson. Boost Software License - Version 1.0 - August 17th, 2003 http://www.angusj.com/delphi/clipper.php

The Clipper library performs line & polygon clipping - intersection, union, difference & exclusive-or, and line & polygon offsetting. The library is based on Vatti's clipping algorithm. The download package contains the library's full source code (written in Delphi, C++ and C#), numerous demos, a help file and links to third party Python, Perl, Ruby and Haskell modules. This was inserted into the GDS II Toolbox by Ulf Griesmann.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].