Python module for creation and manipulation of GDSII files.
Project description
# GDSTK README
[](https://www.boost.org/LICENSE_1_0.txt) [](https://github.com/heitzmann/gdstk/actions) [](http://heitzmann.github.io/gdstk) [](https://github.com/heitzmann/gdstk/releases)
Gdstk (GDSII Tool Kit) is a C++ library for creation and manipulation of GDSII and OASIS files. It is also available as a Python module meant to be a successor to [Gdspy](https://github.com/heitzmann/gdspy).
Key features for the creation of complex CAD layouts are included:
Boolean operations on polygons (AND, OR, NOT, XOR) based on clipping algorithm
Polygon offset (inward and outward rescaling of polygons)
Efficient point-in-polygon solutions for large array sets
Typical applications of Gdstk are in the fields of electronic chip design, planar lightwave circuit design, and mechanical engineering.
## Documentation
The complete documentation is available [here](http://heitzmann.github.io/gdstk).
The source files can be found in the _docs_ directory.
## Instalation
### C++ library only
The C++ library is meant to be used by including it in your own source code.
If you prefer to install a static library, the included _CMakeLists.txt_ should be a good starting option (use -DCMAKE_INSTALL_PREFIX=path to control the installation path):
`sh cmake -S . -B build cmake --build build --target install `
The library depends on LAPACK and [zlib](https://zlib.net/).
### Python wrapper
The Python module can be installed via Conda (recommended) or compiled directly from source. It depends on:
LAPACK
[zlib](https://zlib.net/)
[CMake](https://cmake.org/)
[Python](https://www.python.org/)
[Numpy](https://numpy.org/)
[Sphinx](https://www.sphinx-doc.org/) and [rtd theme](https://sphinx-rtd-theme.readthedocs.io/) (to build the [documentation](http://heitzmann.github.io/gdstk))
#### Conda
Windows users are suggested to install via [Conda](https://www.anaconda.com/) using the available [conda-forge recipe](https://github.com/conda-forge/gdstk-feedstock). The recipe works on MacOS and Linux as well.
#### From source
The module must be linked aginst LAPACK and zlib. The included CMakeLists.txt file can be used as a guide.
Installation from source should follow the usual method (there is no need to compile the static library beforehand):
`sh python setup.py install `
## Support
Help support Gdstk development by [donating via PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JD2EUE2WPPBQQ)
## Benchmarks
The _benchmarks_ directory contains a few tests to compare the performance gain of the Python interface versus Gdspy. They are only for reference; the real improvement is heavily dependent on the type of layout and features used. If maximal performance is important, the library should be used directly from C++, without the Python interface.
Timing results were obtained with Python 3.9 on an Intel Core i7-3930K with 6 cores and 16 GB of RAM at 3.2 GHz. They represent the best average time to run each function out of 16 sets of 8 runs each.
Memory usage per object for 100.000 objects using Python 3.9:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file gdstk-0.3.0.tar.gz.
File metadata
- Download URL: gdstk-0.3.0.tar.gz
- Upload date:
- Size: 190.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fed7296ba702015499927eaa8b9acfc4eaa36ebd0be1d2bd59328b049fa2d89
|
|
| MD5 |
58add1d2d5ec8ff0c1e322934bc3e259
|
|
| BLAKE2b-256 |
d9980d0256fe6e50545bc0a4b7ef343f31e6585c9419ce1b1747de8126f34d4b
|