Supercherenkoスマレジアプリと解説メディアの個人開発

ヴァーチャル霧箱を公開しました — ブラウザで放射線の飛跡を見る

ブラウザで動く霧箱シミュレーター「ヴァーチャル霧箱」を公開しました。開くと暗い箱の中に霧が漂っていて、そこに放射線の飛跡が白い線として浮かびます。線源は入れていません。見えているのは、いまあなたのいる部屋を飛んでいるのと同じ量の放射線です。

霧箱は、過飽和にしたアルコール蒸気の中を荷電粒子が通ると、その通り道に霧の粒が並んで飛跡が見える装置です。発明したC.T.R.ウィルソンは、この方法で1927年のノーベル物理学賞を受けています。いまでも科学館の展示や理科の教材に使われています。ドライアイスとエタノールがあれば自宅でも作れますが、準備と後片付けがそれなりにかかります。それをブラウザで開くだけにしました。

3種類の線が、別の形で見える

飛跡は3種類あって、形で見分けられます。

  • α線: 太く短い直線。長さは3〜6cm。空気の中を進める距離が決まっているので、途中で曲がらず、現れてすぐ消えます
  • β線: 細い筋から、蛇行する長い線まで。エネルギーの幅が広いので長さも揃いません。終端が濃い玉になって終わります
  • 宇宙線ミューオン: 細くて長い直線。箱を上から下へ貫きます。減速も散乱もしないので、定規で引いたようにまっすぐ伸びます

α線の長さは、飛んでくる元の核種ごとに決まっています。ラドン222が5.49MeV、ポロニウム218が6.0MeV、ポロニウム214が7.69MeV。この差が冷えた層の中で3.5cm・4.0cm・6.0cmという飛跡の長さになります。霧箱が計測器として使われたのは、長さを測ればどの核種から出たのかが分かるからでした。

霧の粒は0.1秒ほどで凝結し、育って沈みながら、1〜1.75秒で拡散して消えます。実物の映像を見ると、飛跡は現れてからにじんで崩れるまでが速い。そこに合わせて寿命を決めました。

線源を置かず、部屋の空気のままにした

発生する本数は、何も置いていない室内の空気に合わせました。

  • ミューオン: 毎秒15本。宇宙線は地上で1分あたり1cm²に1個ほど降ってくるので、30cm角の箱ならこの本数になります
  • α線: 20秒に1本くらい。室内空気のラドン濃度(10〜50Bq/m³)と、感度がある層の体積1.35Lから計算した値です
  • β線: 毎秒0.5本。ラドンの娘核種や、建材に含まれるカリウム40から出ます

本数を増やすほど画面は賑やかになります。飛跡が10本同時に走っていれば、初めて見た人は「すごい」と思うでしょう。でもそれは実物と違う絵です。実際の拡散霧箱で凝結が起きる層は厚さ1.5cmほどしかなく、そこを通った区間だけが線になります。縁のほうは冷え方が弱いので凝結も弱い。結果として、同時に見えているのは数本です。

だから本数は増やしませんでした。この画面は静かです。ときどき何も起きない数秒があります。それが本物の空気の姿なので、そのままにしています。

どこまでが物理で、どこからが演出か

「実測値に基づく」と書くときは、基づいていない箇所も自分で書いておくのが筋だと思っています。

物理から計算しているのは、飛跡の形と長さに関わるところです。α線の飛程は標準空気での実測値を冷えた層の密度で換算し、エネルギーが落ちるほど電離が濃くなるブラッグ曲線の形も入れました。β線のエネルギーは実在の核種のスペクトルから抽選し、減速はNISTの阻止能表、散乱の広がりはHighlandの式で出しています。霧の粒が沈む速さもストークスの法則どおりで、直径10〜20μm相当で毎秒0.3〜1cmです。

一方、素直に盛っている箇所が2つあります。

1つはα線の霧の粒の密度です。実物のα線は1cmあたり10万イオン対ほどを作ります。β線やミューオンの数百倍の濃さです。画面では1cmあたり800粒に落としました。100倍以上の圧縮ですが、「α線は桁違いに濃い」という差の向きだけは残っています。同じ比率で描こうとすると、必要な粒の数が現実的でなくなります。

もう1つは「月明かり」の照明モードです。LEDのシート光を消して、無限遠からの平行光で箱全体を淡く満たす見せ方に切り替わります。きれいなのですが、実際の月明かりは0.05〜0.25luxしかなく、その明るさで飛跡を肉眼で見るのは無理です。長時間露光の写真に近い見え方だと考えてください。散乱の計算と霧の粒の動きは両モードで同じで、変えているのは光源の位置と広がりと色と強さだけです。

動く環境と、操作できること

WebGPUが使えるブラウザ(Chrome・Edge・Safariの最新版)では、霧の粒を約22.6万個動かします。背景の霧が16万個、飛跡用のバッファが6.5万個です。スマートフォンは初期化の時間を考えて14.6万個に落としています。WebGPUに対応していない環境ではWebGL2に自動で切り替わり、こちらは8.9万個です。

フレームレートの既定は30fpsにしました。眺めるためのものなので、電池を減らしてまで60fpsで回す必要はないと考えたからです。動きを滑らかにしたいときはURLに ?fps=60 を付けてください。

画面上で切り替えられるのは2つです。視点を「斜め」と「真上」で行き来できます。斜めは覗き込む定番のアングルで、真上は飛跡の長さや曲がり方が投影で歪まずに読めます。飛跡が薄い層に寝ているので、真上から見るとほぼ同一平面に並ぶわけです。もう1つが照明の「LED」と「月明かり」で、こちらは上に書いたとおりです。

描画にはthree.jsを使いました。物理の定数はすべて1つのファイルにまとめてあるので、発生率や飛程を書き換えて遊べます。

理科の授業で放射線を扱うとき、教科書の図では「α線は紙で止まる」までしか分かりません。飛跡が現れて消えるまでを眺めていると、放射線が「いま、ここを通り過ぎているもの」として見えてきます。それが伝わればと思って作りました。

記事の一覧へ