Skip to content

Releases: amccaugh/phidl

PHIDL 1.5.0

27 Apr 22:26
a7d211e

Choose a tag to compare

1.5.0 (April 19, 2021)

New features

  • Better interactive windows for quickplot()! Now you can use the mousewheel/trackpad scroll to zoom in and out, and right-click or left-click to zoom to a region.
  • Added blocking option for quickplot() (thanks @giumc)

Changes

  • Quickplot options (such as displaying ports, subports, or aliases) are now set using set_quickplot_options()

Bugfixes

  • Fix for Path function smooth(), which broke when sequential waypoints were co-linear (thanks @giumc)
  • Fix for non-C-continguous arrays in hash_geometry() (thanks Joaquin Matres @joamatab)

PHIDL 1.4.4

24 Feb 04:06
285c4d5

Choose a tag to compare

1.4.4 (Feb 23, 2021)

Bugfix release

Bugfixes

  • Allow labels imported through import_gds() to be moved (thanks Joaquin Matres @joamatab)
  • Fix to Path.smooth() to prevent right-angle turns from accidentally having an additional +180 degrees applied to them (thanks Jeffrey Holzgrafe @jolzgrafe)

PHIDL 1.4.3

11 Dec 19:35
f9d8dd2

Choose a tag to compare

1.4.3 (Dec 11, 2020)

New features

  • Added open_ports argument to pg.outline, which allows you to cut holes in the outline at Port locations on a Device. See the outline reference here (thanks to Owen Medeiros @omedeiro)

phidl example image

  • Easier-to-read quickstart tutorial
  • Added num_squares to info dictionary of pg.optimal_step (thanks Ekkehart Schmidt)

Bugfixes

  • Fixed bug in pp.smooth() that forced paths to start out traveling to the right (orientation = 0 degrees) (thanks to Sebastian Pauka @spauka)

PHIDL 1.4.2

08 Oct 03:11
85b9901

Choose a tag to compare

1.4.2 (Oct 7, 2020)

Bugfix release

Bugfixes

  • Fix for Device xmin/xmax/ymin/ymax property assignment (e.g. D.xmin = 30) causing incorrect movement of references and labels

PHIDL 1.4.1

06 Oct 16:12
2efacdf

Choose a tag to compare

1.4.1 (Oct 6, 2020)

New features

  • Added font support to pg.text() - Now you can use built-in fonts or specify a .TTF/.OTF font, including full unicode support (thanks to Sebastian Pauka @spauka). See the geometry reference library here
  • Added new smooth() function that allows you to construct a smooth path by defining waypoints. The corners are smoothed either with the circular pp.arc() function or the adiabatic straight-to-bend pp.euler() function. See the path/waveguide tutorial here

phidl example image

  • Added route_turn_manhattan() function for more flexible manhattan routing (thanks to @mr-roger-a)

Changes

  • Fix to start/end angles for pp.spiral()
  • Style consistency fix for pp.arc() when angle negative

Bugfixes

  • Fix to casting issue when moving components with labels #78 (thanks to Joaquin Matres @joamatab)

PHIDL 1.4.0

15 Sep 00:33
e3a46fe

Choose a tag to compare

1.4.0 (Sept 14, 2020)

Huge update with lots of quality-of-life improvements.

New features

  • New path / waveguide module featuring intuitive and fast path building, sub-millisecond polygon generation, and modular cross-sections (thanks to Alex Tait @atait, Dylan Oh @dmwo, Samuel Gyger @gyger, and Florian Vogelbacher).
  • Now you can easily Group objects for easier manipulation. See the Group tutorial here
  • Significantly extended documentation, including new tutorials, geometry library description with images, and API / function reference. See https://phidl.readthedocs.io/
  • Docstrings added for all functions
  • Addition of pg.grid() a grid-placement function for creating 2D arrays of devices (thanks to Samuel Gyger @gyger)

phidl example image

Changes

  • filename argument in write_gds() can now accept pathlib or file buffer (thanks to Samuel Gyger @gyger)

Bugfixes

  • int-casting fix in routing (thanks to Samuel Gyger @gyger)
  • Fix for pg.optimal_step() if start_width==end_width and symmetric==True (thanks to Ekkehart Schmidt)
  • Fix capitalization errors of color names in Layer (thanks to Jeff Shainline)
  • Fix to @endpoints.setter

PHIDL 1.3.0

06 May 19:23
b45b667

Choose a tag to compare

1.3.0 (May 5, 2020)

New features

  • Now introducing the automatic pg.packer() geometry-packing tool:
    phidl example image
  • New documentation for pg.packer(), align(), and distribute(). See Geometry + function documentation

Changes

  • Configurable toplevel cellname argument in write_gds()
  • Change to the arguments available in distribute(). See the Geometry + function documentation
  • Rename reflect() to mirror(). Note that reflect() will continue to work until May 2021 so as not to break any existing code

Bugfixes

  • Int-casting compatibility fix with latest numpy (thanks @gyger)
  • Bugfix to pg.basic_die() for non-square die (thanks @jonnyfountain)
  • Fixed harmless but annoying warning if PyQt was not installed
  • Small under-the-hood optimizations

PHIDL 1.2.2

17 Jan 16:49
1e0fb2f

Choose a tag to compare

1.2.2 (January 17, 2020)

Minor bugfixes

Bugfixes

  • Fixed rare bug with pg.import_gds() causing cell name collisions
  • pg.boolean() no longer errors when passed empty geometries

PHIDL 1.2.1

13 Jan 17:47
74756f5

Choose a tag to compare

  • Maintenance update to work with gdspy 1.5

New features

  • References, arrays and polygons can all be assigned to a Device using D['myalias'] = mypolygon, then later accessed using D['myalias']

Changes

  • Default precision changed to 1e-4 on boolean functions (for 1 unit = 1 micron, this corresponds to 0.1 nanometer precision)
  • Added join, miter and max_points arguments to pg.offset to match the arguments with gdspy
  • The Device.label() function is going to be move to Device.add_label() - both will still work for now, but when using label() a warning will pop up suggesting you switch to add_label() since it will be removed in future versions.

Bugfixes

  • Maintenance update to work with gdspy 1.5 (specifically pg.import_gds() fixes)
  • Allow DeviceReferences to be used with pg.port_to_geometry() (thanks Alex Tait @atait )

PHIDL 1.2.0

02 Dec 22:58

Choose a tag to compare

PHIDL 1.2.0 (December 1, 2019)

New features

  • Major optimization of pg.boolean(), pg.offset(), pg.outline(), and pg.invert(): The num_divisions argument can now be used to divide up the geometry into multiple rectangular regions and process each region sequentially (which is much, much more computationally efficient). If you have a large geometry that takes a long time to process, try using num_divisions = [10,10] to optimize the operation -- you may see speed improvements well over 100x for very large geometries (>1 million points).
  • New geometry documentation with quick picture references and code examples! See Geometry + function documentation

Changes

  • Big update to quickplot(), should be faster now and not have issues with overlapping polygons generating whitespace.
  • Can now use port.center, which is identical to port.midpoint

Bugfixes

  • Allow labels to be correctly moved/rotated
  • Fix fontsize and figure initialization of quickplot()
  • Bugfix for 'd' shape in pg.flagpole()