Python package for EDA / lithography mask design.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Petykiewicz 92f7fce6ff improve gzipped file reproducibility
Mostly avoid writing the old filename and modification time to the gzip
header
2023-10-15 16:18:32 -07:00
examples flake8-aided fixes 2023-10-15 16:18:32 -07:00
masque improve gzipped file reproducibility 2023-10-15 16:18:32 -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 Move from setuputils and setup.py to hatch and pyproject.toml 2023-01-11 17:37:36 -08:00
README.md flake8-aided fixes 2023-10-15 16:18:32 -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.8
  • 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:

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

Alternatively, install from git

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

Translation

  • 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
  • Construct polygons from bitmap using skimage.find_contours
  • Deal with shape repetitions for dxf, svg