WebAssemblyを用いた高速・快適なインタラクティブシミュレータ開発
多田 瑛貴 ただ てるき
NIT ほんわかんふぁ 2024
公立はこだて未来大学 複雑系知能学科 複雑系コース B3
出身: 福山 (広島県) → 京都 (18年) → 函館
主な関心
使用言語: Rust/Typescript/Go
MIERUNE Inc. 副業 LTサークルMariners' Conference 設立 & 部長
入力がユーザーから与えられ リアルタイムで処理が行われるシミュレーション
City Generator by Osker Stalberg https://oskarstalberg.com/game/CityGenerator/
Fluid Simulation (with WebGL demo) by Jamie Wong https://jamie-wong.com/2016/08/05/webgl-fluid-simulation/
シミュレータ
ビジュアライザ
インタラクティブシミュレーションに限らず、 複雑な処理+ビジュアライザという関係は様々なケースに存在
(伝統的な) デスクトップアプリケーションとして作る場合...
Webフロントエンドを使うという方向性を検討してみる
TauriやElectronのアプローチもこちら側に含めるとする
インタラクティブシミュレーションの開発に ビジュアライザにWebフロントエンドを用いる
一方で
一方で、シミュレーションの実装にはあまり向いていないと考えられる
ただし、深刻な問題とは言えず、JS/TSで完結する場合も多いと考えられる そのアプローチについても後々考慮するとする
Webフロントエンドの高い表現の幅を生かしながら シミュレーションを適切な言語を使って開発できる
それだけでなく、副次的効果として
シミュレータとWebフロントエンド どのように連携するのが適切だろう?
Webサイトの場合
デスクトップアプリケーションの場合
今回は、後者については割愛 Webサイトとして作成/グローバルに公開する形式を想定
入出力を受け付けるサーバーを設置し、シミュレーションをそこで行う
具体的なアプローチ
特徴
利点
欠点
広義に言えば、ChatGPTなどもこの方法に該当する
入出力の受け付けからシミュレーションまで、すべてフロントエンドで完結
Cloudflare Pages、GitHub Pagesをはじめ 静的サイトのホスティングは無料で間に合う場合が多い
全体として、管理の負担がほとんどないのは魅力
多くのユースケースではこちらの方が望ましいと考えられる 個人や少人数向けでもこちらで十分
モダンなインタラクティブシミュレータ開発
近年のWeb開発のエコシステムの利便性を生かし 管理の負担とコストを極力省く構成を実現