Python package for EDA / lithography mask design.
Go to file
2023-07-17 20:22:21 -07:00
examples update some examples 2023-07-17 20:22:21 -07:00
masque add retool() 2023-06-02 21:17:07 -07:00
.flake8 style and type fixes (per flake8) 2020-10-16 19:00:50 -07:00
.gitignore add .oas.gz to .gitignore 2020-05-19 01:01:03 -07:00
LICENSE.md Add license 2016-04-13 03:51:25 -07:00
pyproject.toml drop ability to use python-gdsii 2023-03-19 10:18:01 -07:00
README.md update some examples 2023-07-17 20:22:21 -07:00

Masque README

Masque is a Python module for designing lithography masks.

The general idea is to implement something resembling the GDSII file-format, but with some vectorized element types (eg. circles, not just polygons) and the ability to output to multiple formats.

Installation

Requirements:

  • python >= 3.11
  • numpy
  • klamath (optional, used for gdsii i/o)
  • matplotlib (optional, used for visualization functions and text)
  • ezdxf (optional, used for dxf i/o)
  • fatamorgana (optional, used for oasis i/o)
  • svgwrite (optional, used for svg output)
  • freetype (optional, used for text)

Install with pip:

pip install 'masque[visualization,oasis,dxf,svg,text]'

Alternatively, install from git

pip install git+https://mpxd.net/code/jan/masque.git@release

Glossary

  • Library: OASIS or GDS "library" or file (a collection of named cells)
  • Pattern: OASIS or GDS "Cell", DXF "Block"
  • Ref: GDS "AREF/SREF", OASIS "Placement"
  • Shape: OASIS or GDS "Geometry element", DXF "LWPolyline" or "Polyline"
  • repetition: OASIS "repetition". GDS "AREF" is a Ref combined with a Grid repetition.
  • Label: OASIS, GDS, DXF "Text".
  • annotation: OASIS or GDS "property"

TODO

  • Better interface for polygon operations (e.g. with pyclipper)
    • de-embedding
    • boolean ops
  • DOCS DOCS DOCS
  • Tests tests tests
  • check renderpather
  • pather and renderpather examples