Release notes Luceda Photonics Design Platform 2024.09.0

Note

With this release we are announcing a new versioning approach, adopting a year-month format (YYYY.MM). Moving forward, Luceda will provide four major updates annually, scheduled for March (2024.03), June (2024.06), September (2024.09), and December (2024.12), with optional bug fixes in between. Our commitment to backward compatibility remains a priority. We keep striving to deliver reliable, stable products to our users. As always, any backward incompatibilities will be documented on the backward compatibility and porting page.

The Luceda 2024.09 release introduces a new product: the Luceda Link for Tidy3D. This Link enables running very fast FDTD simulations using Flexcompute’s Tidy3D in the cloud directly from your IPKISS environment.

This release also includes several other important features:

  • New geometrical shapes: Includes several new geometrical shapes and the ability to cascade (join) shapes.

  • Improved installer: A new installer reduces installation size, improves the uninstall process, and provides a more native experience on supported platforms (Windows, Linux).

  • New application example: A 400G Optical Transceiver using the OpenLight PDK.

  • Codelets in IPKISS Canvas: Launch simulations or other code snippets (‘codelets’) directly from IPKISS Canvas.

For all features, bugfixes and improvements please consult the changelog.

New geometrical shapes and shape join operation

Shapes in IPKISS are used o create a wide range of advanced geometries, whether for designing components or drawing complex waveguides.

In this release, we’ve added new geometrical shapes to enhance the existing functionality:

In addition, you can now easily combine different shapes using the new i3.join_shapes function. With i3.join_shapes, constructing complex shapes by combining simpler shapes becomes intuitive.

import ipkiss3.all as i3
straight = i3.Shape(points=[(0,0), (10,0)])
sbend = i3.ShapeHermiteSBend(x_offset=30.0, y_offset=-20.0)
shape = i3.join_shapes([straight, sbend, straight])
shape.visualize()
../_images/relnotes2024090-1.png

Codelets in Canvas

A codelet is a unit of code that runs on a single cell. It facilitates the reuse of common code snippets, such as circuit simulations or analysis, within the IPKISS code environment and within IPKISS Canvas.

In IPKISS Canvas, codelets are accessible from the library pane. By default, a built-in SMatrixSweep codelet is provided as part of the ‘generic_devices’ library, which performs a scatter matrix sweep on the current schematic.

Simulation result after running a codelet from IPKISS Canvas.

Simulation result after running a codelet from IPKISS Canvas (in this case, a scatter matrix sweep).

You can create new codelets directly from the library pane in IPKISS Canvas.

Creating a new codelet from Canvas, and giving it parameters.

Creating a new codelet from Canvas, and giving it parameters.

After creating a codelet, update its Python code using your favorite code editor. You can write any analysis you want for circuits defined in the IPKISS Canvas schematic!

Codelets are part of the library and can be distributed to your colleagues, enabling them to run the same analysis without writing any code.

The possibilities are endless, and we’re excited to see what codelets you create.

Note

The built-in SMatrixSweep codelet assumes that all circuit components have models assigned to them.

Tutorials & documentation