sem_render — GENERATIVE sem op

• Data kinds: image2d → image2d

• Call: import fullseye as fs; fs.ledger.sem_render(height, *, pixel_nm: 'float' = 1.0, psf_px: 'float' = 1.5, edge_gain: 'float' = 1.0, base: 'float' = 0.25, dose: 'float' = 0.0, charging: 'float' = 0.0, seed: 'int' = 0, tilt_max_deg: 'float' = 80.0) -> 'np.ndarray' (to call the implementation directly, import sem; sem.sem_render(height, *, pixel_nm: 'float' = 1.0, psf_px: 'float' = 1.5, edge_gain: 'float' = 1.0, base: 'float' = 0.25, dose: 'float' = 0.0, charging: 'float' = 0.0, seed: 'int' = 0, tilt_max_deg: 'float' = 80.0) -> 'np.ndarray'; from the registry, opsgenerative.get("sem_render"))

Usage

Render a SEM image from a height field: secondary-electron edge effect (sec θ) + Gaussian beam PSF + Poisson shot noise.

> The detailed description below is the original text — the summary and the headings are translated.

Parameters

height : array_like

2-D の高さ場[同じ単位は pixel_nm]。欠陥の形そのもの。

pixel_nm : float

画素 1 個の一辺[nm]。傾きは arctan(|∇h| / pixel_nm) で測る。

psf_px : float

ビーム PSF のガウシアン σ[px]。段差の明るい縁はこの幅に広がる。

edge_gain : float

縁効果の強さの指数。sec(θ) ** edge_gain。既定 1.0 が sec θ の素のモデル。

base : float

平らな面(θ=0)の明るさ[0,1]。斜面は base·sec θ に乗る(飽和で 1 に頭打ち)。

dose : float

画素あたりの電子数。> 0 でポアソン雑音を載せる。0 は雑音なし(決定論)。

charging : float

帯電による緩い横方向の輝度勾配(0 で無効)。収差でなく系統的な明暗。

seed : int

ポアソン雑音の種(dose > 0 のときだけ効く)。

tilt_max_deg : float

sec θ が発散しないよう θ を頭打ちにする角度[度]。既定 80 度(sec ≈ 5.76)。

Returns

numpy.ndarray

(H, W) の float64、[0,1]。平らな面は base、斜面は base·sec θ。

Notes

正規化は画素ごとでなく固定の線形写像(·base と [0,1] クリップ)。1 枚ごとに min/max で正規化すると平面に対する比が壊れ、sec θ の真値を測れなくなる(poc_real_defect_floor が colorize_depth の per-image 正規化で踏んだ罠と同じ)。

Examples

>>> import numpy as np

>>> flat = np.zeros((16, 16))

>>> img = sem_render(flat)

>>> float(np.ptp(img)) # 平らな面は一様

0.0

>>> ramp = np.tile(np.linspace(0, 15, 16), (16, 1)) # 一様斜面

>>> r = sem_render(ramp, pixel_nm=1.0)

>>> theta = np.arctan(1.0) # 勾配 1 → 45 度

>>> abs(float(r[8, 8]) / 0.25 - 1.0 / np.cos(theta)) < 1e-6

True

Detailed usage guide

• generative_art family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_sem_wafer_defect_edge_bias — py -3.11 examples/poc_sem_wafer_defect_edge_bias.py

Ops the type connects to (they accept image2d as input)

sem_image · sem_charging_series · pl_image_simulate

Same category (sem)

sem_electron_mc · sem_se_universal_curve · sem_yield_curve · sem_line_profile · sem_cd_measure · sem_image · sem_se_escape_fraction · sem_charging_series


*Provenance: sem.py — GENERATIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.