v0.6 Release Notes
Main Focus
v0.6 moved the geometry rule path toward a pya-native implementation.
The goal was to keep layout loading, hierarchy traversal, Manhattan width / space rule checks, candidate generation, and ROI clipping in KLayout pya geometry before rasterization transitions the selected ROI to NumPy.
GDS/OAS
-> pya.Layout / top cell
-> hierarchy traversal
-> integer DBU pya geometry
-> width / space candidate extraction
-> ROI clipping
-> NumPy mask
-> existing aerial image / contour / printed metric flow
The aerial-image and contour stages were not the main target of the pya-native refactor.
Geometry Rule and Candidate Update
The v0.6 geometry path uses KLayout-style integer DBU geometry for the canonical geometry rule stage.
Key points:
- Manhattan width / space checks are evaluated in the pya-native path.
- The rule comparison is strict:
value < threshold. - Candidate regions are represented as merged violation components.
- Anchor edge-pair information is retained for candidate localization.
- Width and space candidates are selected with deterministic ordering.
- Rasterization is the intentional transition point from pya geometry to NumPy.
These details support reproducibility and reviewability, but they are implementation notes rather than required reading for the public demo.
Candidate Overview Presentation
v0.6 also updated the candidate overview visualization.
The goal was to avoid making violation markers look like original layout polygons.
Updated presentation:
- original geometry remains visible in grayscale
- width markers use transparent red styling
- space markers use transparent blue styling
- hatch patterns help distinguish marker classes
- selected W/S labels are kept for chosen review candidates
The images are useful for review, but they are intentionally moved out of the main Demo flow so first-time readers can focus on the representative ROI results.
Local Geometry Runtime Check
The local tt04_pwm.gds geometry-only comparison on layer/datatype 68/20 produced the following median timings:
| Step | gdstk baseline | pya-native | pya speedup |
|---|---|---|---|
| read + target extraction | 0.027074 s | 0.022355 s | 1.21x |
| width rule + candidate construction | 0.289389 s | 0.039591 s | 7.31x |
| space rule + candidate construction | 0.569764 s | 0.120845 s | 4.71x |
| geometry total | 0.871751 s | 0.189478 s | 4.60x |
These values are development measurements for one public example and one local environment. They should not be interpreted as a general performance guarantee.
Candidate Counts
The same comparison produced:
| Item | gdstk | pya-native raw | pya-native merged component |
|---|---|---|---|
| width | 666 | 666 | 459 |
| space | 616 | 1,061 | 922 |
The count difference is expected because the paths do not define marker construction in exactly the same way. The pya-native path expresses edge relation and strict threshold behavior more directly, while the gdstk path remains useful as a baseline and rollback comparison.
Printed Metric Update
The primary printed width / space metric was changed to use direct aerial-intensity contours instead of re-contouring a thresholded boolean mask.
before:
intensity >= 0.30
-> boolean mask
-> contour from boolean mask
after:
normalized intensity
-> direct contour at 0.30
-> sub-pixel contour coordinates
This reduced grid quantization effects in representative checks and restored more robust width / space edge-pair detection for the tracked examples.
Convergence Check Summary
For fixed tt04_pwm ROI checks, the direct intensity contour metric was stable from 0.010 um through 0.0025 um in the representative width and space cases.
Summary:
- the former boolean-contour metric was more tied to half-pixel positions
- the direct contour metric kept sub-pixel interpolated contour coordinates
- the tracked width and space physical edge pairs remained stable in the tested cases
- focused checks down to
0.001 umalso remained stable within their own fixed windows
The Render default remains 0.010 um because it was a practical balance between demo runtime and contour stability in the tested cases. This is not a signoff-accuracy claim.
Current Limits
The v0.6 updates do not change the public interpretation limits:
- results remain qualitative
- the model is simplified
- wafer-data calibration is not included
- resist and etch models are not included
- printed metrics are approximate contour-based indicators
- different ROI sizes and normalization conditions are not numerically interchangeable
- EPE remains outside the current scope