Python package for EDA / lithography mask design.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Jan Petykiewicz 94300d926a Update comments 11 months ago
examples update some examples 11 months ago
masque Update comments 11 months ago
.flake8 style and type fixes (per flake8) 4 years ago
.gitignore add .oas.gz to .gitignore 4 years ago
LICENSE.md Add license 8 years ago
README.md update some examples 11 months ago
pyproject.toml drop ability to use python-gdsii 1 year ago

README.md

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