Python package for lithography mask design.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jan Petykiewicz 2259e7987b don't rename shape.to_polygons() args 2 months ago
examples Test writing to gds in ellip_grating 1 year ago
masque don't rename shape.to_polygons() args 2 months ago
.gitignore Add binary files and vim buffers into gitignore 3 months ago Add license 3 years ago add 4 months ago add pypi link to readme 4 months ago Add classifiers 4 months ago


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), better support for E-beam doses, and the ability to output to multiple formats.



  • python >= 3.5 (written and tested with 3.6)
  • numpy
  • matplotlib (optional, used for visualization functions and text)
  • python-gdsii (optional, used for gdsii i/o)
  • svgwrite (optional, used for svg output)
  • freetype (optional, used for text)

Install with pip:

pip3 install masque

Alternatively, install from git

pip3 install git+


  • Mirroring
  • Polygon de-embedding


  • Construct from bitmap
  • Boolean operations on polygons (using pyclipper)
  • Output to OASIS (using fatamorgana)