
【フリーのJSライブラリ、LiquidFunでサイエンス vol.3】異星の海を見てみよう~世界の重力と粒子の密度を変えてみる〔試行編〕~
あまり身近でなかった「液体」のシミュレート画像を見る機会が増えてきました。
液体をシミュレートする方法は以前からありましたが、最近特に目にするのが、しぶき、波など、対象がダイナミックに変形するケースです。

液体のふるまいをシミュレートする手法のひとつが「粒子法」です。
粒子法は、液体を粒子の集まりと見なしてその振る舞いを計算する方法で、特に、大きく形が変わる現象を得意としています。
その特徴を活かして、洪水など防災関連のシミュレーションに使われる事もあります。

ただし、この分野でのフリーソフトはまだ少なく、アマチュアがちょっと試してみるのが難しいのが悩みです。
粒子法で扱う粒子は液体の法則に従うもので、固体の砂粒などとは違います。なお、計算過程については色々な流儀があるようです。
「LiquidFun(リキッド・ファン)」はGoogle社が提供するソフトで、2次元ながら、粒子法によるシミュレートが可能な数少ないフリーソフトで、JavaScriptという言語で表記することで、アマチュアでも手軽に操る事ができます。
本来はゲーム用途の本ソフトですが、根本原理は高額なソフトと同じであり、現実世界で役立てることがあるかもしれません。
LiquidFunの紹介記事はこちらです。
前置きが長くなりましたが、今回は、重力と粒子密度を変えることを行ってみます。そしてシミュレーションソフトならではの、「まだ見たことが無い世界を予想する」ことにトライしてみました。
LiquidFunの重力と粒子密度のパラメータを変える~土星の衛星タイタンのメタンの海の波打ちをシミュレートする~
今回は、LiquidFunの重力と粒子密度のパラメータを変えた結果をシミュレートします。
ただし適用できる現象が、地球上にはななそうなので、日常離れした話題ではありますが、土星の衛星タイタンのメタンの海の波打ちを簡単にシミュレートしてみることにしました。
土星の衛星タイタン
太陽系の惑星はどれも個性豊かですが、とりわけ目を引くのは、目立った輪を持つ惑星、土星でしょう。

土星自身とてもユニークですが、それに劣らずユニークなのが、土星の衛星タイタンです。
タイタンは、衛星の中で、唯一厚い大気をまとった衛星です。

小さな天体で大気がある事もユニークですが、更にユニークなのがどうやら液体の海があるらしいことです。
近くに行った無人探査機がレーダーで調べたところ、明らかに液体があるとしか思えない反射波があったそうです。

地球の海と違って、惑星全体を覆うものではない様ですが、タイタンの様な極寒の世界で液体の海がある事は驚くべき事で、水では無くメタン(天然ガスの主成分)が液体になったものと予想されている様です。

海があり、大気があるなら、風が起き、波立つこともあるかもしれません。
重力と粒子密度を変えられる、LiquidFunを利用して、この様子をささやかにシミュレートしてみます。
地球に比べて重力が約7分の1、海の密度が約4割の世界
タイタンの重力と、海を満たすメタンの密度をWikipediaで調べてみました。
タイタンの表面重力:0.14G(地球表面の約1/7)
液体メタンの密度:415 kg/m3(水の約4割)
LiquidFunでは、パラメータとして、重力と粒子密度を簡単に加減できます。
パラメータを変えて、上記の液面の振る舞いをシミュレートしてみました。
タイタンでの「水中崩壊」シミュレーション
今回は、LiquidFunにある「DamBreak(水中崩壊)」という簡単なデモプログラムをアレンジしてみました。
水中崩壊は粒子法でしばしば出される初歩的なデモです。プログラムの「hello World」デモの様なものです。

重力と粒子密度を変えた他、波の大小が判る様に、器の底に傾斜をつけて、「浜辺」っぽくし、初期の水の塊を少し高い位置から落としてしぶきが上がる様にしました。
変えたのは以下4点です。
系の重力を0.14倍にした
粒子密度をデフォルトの0.415倍にした
器の形を変えて傾斜を付けた(浜辺)
初期の水塊を少し高い位置に置いた
シミュレート結果
重力と粒子密度がデフォルトの状態と、タイタンを想定した状態(重力が1/7、粒子密度が0.4)での結果をご覧にいれましょう。
重力が小さいということは、波の動きはゆっくりでしょうか。また、波の勢いが小さいと、しぶきも穏やかでしょうか・・・色々予想してみました。
重力と粒子密度がデフォルト
シミュレート結果をご覧にいれます。

(noteではうまく表示されない動画を掲示するために、ツイッターを使いました。それだけの為のツイートですのでご注意ください)
on the EARTH pic.twitter.com/mqePMONuYg
— Method Particle (@method_particle) October 20, 2022
普通の感覚での波としぶきです。浜辺を模した右の方にしぶきが溜まった潮だまりがあります。
タイタン表面での重力と粒子密度
では、タイタン表面での同じ現象です。

まるでスローモーションの様に動き、しぶきの上がり方も非常に大きいものです。
— Method Particle (@method_particle) October 20, 2022
浜辺を駆け上がる液体の量も大きく、右の潮だまりも2倍程度の深さになります。
実際には大気がある(LiquidFunでは扱えません)ので、空気抵抗から、さらにしぶきは舞い上がると思われます。
少しの波で盛大にしぶきが上がる世界(たぶん)
重力が地表の1/7しかないタイタンの表面は、少しの波立ちがあれば、盛大に海が浜辺を上がり、しぶきが舞う世界でした。(たぶん)

コードについては、次の記事でご紹介します。
