/kfactory

gdsfactory with a klayout backend

Primary LanguagePythonMIT LicenseMIT

KFactory 0.10.2

Kfactory is a gdsfactory-like tool. It is built with KLayout as a backend instead of gdstk, but aims to offer the similar featuers.

❗ KFactory is still experimental, expect API changes without notice (even though we try to keep it to a minimum!)

It is suggest to pin the version of KFactory in requirements.txt or pyproject.toml with kfactory==0.10.2 for example.

Features similar to gdsfactory:

  • Cells & decorator for caching & storing cells
  • Simple routing (point to point and simpl bundle routes for electrical routes)
  • Basic cells like euler/circular bends, taper, waveguide
  • Path extrusion (no interface with CrossSections)
  • Jupyter integration
  • PDK/package configuration
  • Plugin system (simulations etc.) - Check kplugins
  • Generic PDK example - Check kgeneric

Notable missing Features:

  • CrossSection
  • Netlist/Schematics and LVS
  • More advanced routing

New/Improved Features:

  • Fully hierarchical bi-directional conversion to YAML
  • Automatic snapping to grid thanks to KLayout
  • More features for vector geometries due to concept of Point/Edge/Vector/Polygon from Klayout
  • Easy booleans thanks to KLayout Regions
  • Enclosures: use the concept of enclosures, similar to cross sections, to allow automatic calculation of boolean layers for structures based on minkowski sum, which are built into KLayout

Installation

kfactory is available on pypi

pip install kfactory

At the moment kfactory works only on python 3.10 and above

Development Installation

A development environment can be installed with

python -m pip install -e .[dev]

It is defined in pyproject.toml. For committing pre-commit should be installed with pre-commit install.