任意開口による光の回折現象をリアルタイムで計算・可視化する WebGL 実装のインタラクティブシミュレーターです。厳密な波動光学理論に基づき、教育から研究まで幅広い用途に対応します。
- 物理的に正確な計算: 角スペクトル法による厳密な波動伝播
- リアルタイム処理: WebGL2 GPU 並列計算による高速 FFT
- 完全な色再現: CIE 1931 標準に基づくスペクトル → sRGB 変換
- インタラクティブ描画: マウスで任意形状の開口を自由に描画
- 多波長対応: 単色光から白色光まで対応 (最大 15 波長同時計算)
本シミュレーターでは 2 種類の光源モデルを実装しています:
点光源 (球面波):
平面波 (コリメート光):
ここで
開口面での複素振幅は透過関数との積で表されます:
透過関数
最も汎用的で数値的に安定な手法として角スペクトル法を採用:
この手法では:
- フーリエ変換でアパーチャ場を空間周波数領域に変換
- 各空間周波数成分に伝搬位相を乗算
- 逆フーリエ変換で観察面の場を復元
指数減衰する成分として適切に処理し、数値安定性を確保します。
近距離伝搬での比較検証用として、Fresnel-Kirchhoff 積分も実装:
多波長計算結果は、CIE 1931 標準等色関数を用いて XYZ 色空間に変換:
ここで:
-
$I(\lambda_i) = |U_S(\lambda_i)|^2$ は各波長での光強度 -
$\bar{x}(\lambda_i), \bar{y}(\lambda_i), \bar{z}(\lambda_i)$ は CIE 等色関数 -
$w_i$ は各波長の重み、$\Delta\lambda$ は波長間隔
XYZ 値は標準変換行列で sRGB 色空間に変換:
最終的にガンマ補正を適用:
すべての伝搬計算は WebGL シェーダーで実行される 2D 高速フーリエ変換を使用。サンプリング定理の制約:
- 設定可能なオーバーサンプリング比 (1-4 倍) でエイリアシング防止
- 位相ラッピング処理による高精度浮動小数点演算
- エバネッセント成分のソフトカットオフ
- 波長: メートル単位での内部計算 (UI 表示はナノメートル)
- 距離: メートル単位 (開口サイズはミリメートルからの変換)
- 角度: ラジアン単位での位相計算
- 開口描画: 左キャンバスでマウスドラッグして開口を描画
- 消去: 右クリックドラッグで部分消去
- プリセット: 単スリット/複スリット/円形開口のワンクリック設定
- パラメータ調整: 右パネルでリアルタイム物理パラメータ変更
- 光源: 点光源 (球面波) / 平面波 (コリメート光)
- 波長: 380-780nm (単色 or 多色最大 15 波長)
- ジオメトリ: 光源距離、開口-スクリーン距離、開口サイズ
- 計算: 解像度 (256-1024)、ゼロパディング係数
- 単スリット回折: sinc² 関数パターンの確認
- 複スリット干渉: Young 干渉縞と包絡線
- 円形開口: Airy disk の形成
- 白色光分散: 中央白色から両端虹色への分散パターン
- WebGL2 対応ブラウザ (Chrome 56+, Firefox 51+, Safari 15+)
┌─ フロントエンド (HTML5/CSS3/JavaScript ES6+)
├─ 物理エンジン (波動光学計算・FFT・色変換)
├─ WebGL2 レンダリング (12種類のGLSLシェーダー)
└─ リアルタイム UI (パラメータ同期・描画イベント)
- 計算解像度 512x512: ~50-100ms/フレーム
- メモリ使用量: ~50-200MB (解像度・波長数に依存)
- リアルタイム更新レート: 最大 6.7fps (150ms スロットリング)
-
Goodman, J.W. Introduction to Fourier Optics (4th ed.) フーリエ光学と回折理論の包括的教科書。本実装の理論的基盤。
-
Born, M. & Wolf, E. Principles of Optics (7th ed.) レイリー-ゾンマーフェルト理論からキルヒホッフ近似までの厳密な導出。
-
Matsushima, K. "Band-Limited Angular Spectrum Method for Numerical Simulation of Free-Space Propagation in Far and Near Fields." Optics Express 17, 19662-19673 (2009)
数値安定性を向上させた角スペクトル法の改良版。 -
CIE Publication 15.2 Colorimetry (1986)
CIE 1931 標準等色関数の公式仕様。色変換システムの基準。
- Cooley-Tukey FFT: 基数 2 分解による高速フーリエ変換
- Complex texture packing: RG チャンネルによる複素数表現
- GPU 並列化: WebGL2 compute shader による大規模並列演算
理論値との比較検証:
- 単スリット:
$I(\theta) = I_0 \text{sinc}^2(\pi a \sin\theta/\lambda)$ - 複スリット: 上記にコサイン項
$\cos^2(\pi d \sin\theta/\lambda)$ が乗算 - 円形開口: Airy 関数による第一暗環位置の検証
本ソフトウェアは教育・研究目的での使用を想定しています。コードベース自体は MIT ライセンスで提供され、商用利用や再配布も可能です。ただし、波動光学理論の厳密性を保つため、数値計算の結果は参考値として扱ってください。
バグ報告や機能要望は Issue までお寄せください。波動光学理論や数値計算の改善提案も歓迎します。
このシミュレーターは、複雑な波動現象を直感的に理解できるよう、厳密な物理理論とリアルタイム可視化技術を統合したものです。光学教育や計算光学研究の発展に貢献することを願っています。