Skip to content

import_gdsii: v1.0.4 - #56

Merged
dnltz merged 1 commit into
mainfrom
WIP/dnltz/v1.0.4
Sep 3, 2026
Merged

dnltz merged 1 commit into
mainfrom
WIP/dnltz/v1.0.4

Conversation

@dnltz

@dnltz dnltz commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Rebuild the layer geometry on KLayout. The layout is read once and each layer is collected from all top cells with a recursive shape iterator, which resolves the hierarchy on the fly and makes the temporary merged GDS obsolete. The solid is assembled with numpy and handed to Blender as flat arrays, instead of letting bmesh extrude and clean up the mesh. A 1mm² design with 3.7M shapes imports in 18.9s instead of 59.4s, a 4mm² design with 22.7M shapes in 142.3s instead of 345.4s and 18.3GB instead of 55.0GB. gdstk is no longer bundled.

Fix the import aborting or producing geometry that references missing vertices on a GDS with net names on its shapes. Dropping those properties also lets KLayout merge shapes that only differ in their net name.

Fix faces with more than a few hundred corners being filled with overlapping triangles, which showed up as a haze over metal nets in a render.

Expose the full Principled BSDF in the color schemas. Fields are named after Blender's own inputs, so "Base Color", "Metallic" or "Roughness" replace the previous color, metallic and roughness keys, and everything from Subsurface to Thin Film is reachable as well. The alpha channel of "Base Color" is copied to "Alpha" unless it is set explicitly, and a layer may point at a shared material instead of describing its own.

Build the PDK list from the configs directory, so a custom PDK only needs its config file dropped next to the shipped ones. An optional "pdk_config" section gives it a name, a description and a default color schema, and "configs/_config_order.yaml" gives the order of the list.

Add a tox lint environment running yamllint, flake8, pylint and the config schema check, and document the PDK and color schema configuration in the README.

Rebuild the layer geometry on KLayout. The layout is read once and each
layer is collected from all top cells with a recursive shape iterator, which
resolves the hierarchy on the fly and makes the temporary merged GDS
obsolete. The solid is assembled with numpy and handed to Blender as flat
arrays, instead of letting bmesh extrude and clean up the mesh. A 1mm²
design with 3.7M shapes imports in 18.9s instead of 59.4s, a 4mm² design
with 22.7M shapes in 142.3s instead of 345.4s and 18.3GB instead of 55.0GB.
gdstk is no longer bundled.

Fix the import aborting or producing geometry that references missing
vertices on a GDS with net names on its shapes. Dropping those properties
also lets KLayout merge shapes that only differ in their net name.

Fix faces with more than a few hundred corners being filled with
overlapping triangles, which showed up as a haze over metal nets in a
render.

Expose the full Principled BSDF in the color schemas. Fields are named
after Blender's own inputs, so "Base Color", "Metallic" or "Roughness"
replace the previous color, metallic and roughness keys, and everything
from Subsurface to Thin Film is reachable as well. The alpha channel of
"Base Color" is copied to "Alpha" unless it is set explicitly, and a layer
may point at a shared material instead of describing its own.

Build the PDK list from the configs directory, so a custom PDK only needs
its config file dropped next to the shipped ones. An optional "pdk_config"
section gives it a name, a description and a default color schema, and
"configs/_config_order.yaml" gives the order of the list.

Add a tox lint environment running yamllint, flake8, pylint and the config
schema check, and document the PDK and color schema configuration in the
README.

Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
@dnltz

dnltz commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

@Gerard-Taulats I would release a new version by end of this week. Do you have anything critical missing for this release?

@Gerard-Taulats

Copy link
Copy Markdown
Contributor

Nah, nothing critical. As is it's already pretty good for me, being the remaining stuff I shared just chasing perfection.

@dnltz
dnltz merged commit cbf414b into main Sep 3, 2026
2 checks passed
@dnltz
dnltz deleted the WIP/dnltz/v1.0.4 branch September 3, 2026 04:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants