fullseye

ray_bundle — OPTICS design op

使い方

Trace a pupil-filling bundle at one field; returns the raw trace plus image_xy (N,2), chief_xy (2,), pupil (N,2) normalised coordinates and opl0 (start-of-ray optical path offsets).

aim: "paraxial" launches the rays at the paraxial entrance pupil (only the chief ray is moved onto the stop centre — the behaviour of every earlier version and the default of a system built without aim), "stop" is real-ray aiming (each ray is iterated until it crosses the stop at its own point, residual below 1e-11 of the stop radius, ValueError otherwise); None takes the system’s aim. vignetting: None takes the system’s per-field factors (:func:lens_system), a dict {"vdx", "vdy", "vcx", "vcy", "van"} overrides them for this call ({} = none). The grid pupil is compressed / decentred by them before aiming, so the bundle fills the vignetted pupil; chief_xy stays the unvignetted chief ray.

Extra keys: pupil_vignetted (N,2) the stop-plane pupil coordinates actually aimed at, stop_xy (N,2) where each ray crossed the stop (stop frame, mm; NaN if it was lost before it), aim, vignetting (the factors used, or None) and aim_residual (largest aiming error in stop radii; None for paraxial aiming).

ファミリ共通の入力契約(fail-closed)

optics の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(table を入力に取れる)

abcd_matrix · wavefront_stats · sfr_from_edge · paraxial_trace · seidel_coefficients · spot_stats · tolerance_analysis · wavefront_from_opd

同カテゴリ(design)

lens_system · thick_lens · glass · example_system · glass_catalog · sellmeier · paraxial_trace · seidel_coefficients


Provenance: raytrace.py — OPTICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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