Known changes and backwards incompatibilities in 2026.09

i3.ConnectSBend connection name

The naming of connections has been improved such that connections created by i3.ConnectSBend will have the provided connection_name if applicable or a conform automatically generated one. The name will be aligned with how other Connectors name their connections and won’t be prefixed anymore by the name of the parent PCell.

import ipkiss3.all as i3

lv = i3.Circuit(
    specs=[
        i3.Inst(["wg1", "wg2"], i3.Waveguide()),
        i3.Place("wg2", (100, 5)),
        i3.ConnectSBend("wg1:out", "wg2:in"),
    ]
).Layout()
print(lv.instances)

Will now show the instance as: wg1_out_to_wg2_in instead of PCELL_1_wg1_out_to_wg2_in.

i3.ConnectBend routing precision

The point generation logic in i3.ConnectBend and i3.ConnectSBend has been improved to resolve floating-point rounding issues. Previously, minor rounding discrepancies in geometry calculations could occasionally cause an extra point to be added or omitted along the waveguide layout.

Impact: Your waveguide routes remain functionally identical, but calculated point counts or exact vertex coordinates may vary slightly compared to previous releases.

Legacy Behavior: If you need to reproduce exact point coordinates from older versions for layout regression testing, you can pass legacy=True to the connector call.

Arguments of i3.dummy_fill_layout and i3.dummy_fill_gdsii

The i3.dummy_fill_layout and i3.dummy_fill_gdsii functions no longer take default arguments from the PDK, as those tech keys are removed in favor of defining dummy filling settings in the DRC deck.

The filling argument is now required.

The target_layer argument remains optional, but if not provided, it means the entire layout’s bounding box will define the area for dummy filling.