masque/README.md

55 lines
1.5 KiB
Markdown
Raw Normal View History

2016-03-15 19:12:39 -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.
2016-03-15 19:12:39 -07:00
2019-04-07 17:58:11 -07:00
- [Source repository](https://mpxd.net/code/jan/masque)
2020-09-26 17:41:00 -07:00
- [PyPI](https://pypi.org/project/masque)
2019-04-07 17:58:11 -07:00
2016-03-15 19:12:39 -07:00
## Installation
Requirements:
2023-04-14 22:25:25 -07:00
* python >= 3.11
2016-03-15 19:12:39 -07:00
* numpy
2023-01-23 22:27:26 -08:00
* klamath (optional, used for `gdsii` i/o)
2019-09-30 23:50:40 -07:00
* matplotlib (optional, used for `visualization` functions and `text`)
* ezdxf (optional, used for `dxf` i/o)
* fatamorgana (optional, used for `oasis` i/o)
2019-09-30 23:50:40 -07:00
* svgwrite (optional, used for `svg` output)
* freetype (optional, used for `text`)
2016-03-15 19:12:39 -07:00
Install with pip:
```bash
2023-04-14 22:25:25 -07:00
pip install 'masque[visualization,oasis,dxf,svg,text]'
```
Alternatively, install from git
```bash
2023-04-14 22:25:25 -07:00
pip install git+https://mpxd.net/code/jan/masque.git@release
```
2017-04-19 18:56:14 -07:00
2023-04-14 22:25:25 -07:00
## Glossary
- `Library`: OASIS or GDS "library" or file (a collection of named cells)
2020-09-10 20:18:34 -07:00
- `Pattern`: OASIS or GDS "Cell", DXF "Block"
2023-01-21 21:22:11 -08:00
- `Ref`: GDS "AREF/SREF", OASIS "Placement"
2020-09-10 20:18:34 -07:00
- `Shape`: OASIS or GDS "Geometry element", DXF "LWPolyline" or "Polyline"
2023-01-21 21:22:11 -08:00
- `repetition`: OASIS "repetition". GDS "AREF" is a `Ref` combined with a `Grid` repetition.
2020-09-10 20:18:34 -07:00
- `Label`: OASIS, GDS, DXF "Text".
- `annotation`: OASIS or GDS "property"
2017-04-19 18:56:14 -07:00
## TODO
2019-04-07 17:58:11 -07:00
2020-09-10 20:18:34 -07:00
* Better interface for polygon operations (e.g. with `pyclipper`)
- de-embedding
- boolean ops
2023-04-14 22:25:25 -07:00
* DOCS DOCS DOCS
2023-07-17 20:22:04 -07:00
* Tests tests tests
* check renderpather
* pather and renderpather examples