表紙画像

HTML5による物理シミュレーション
拡散・波動編
JavaScriptライブラリとCanvas 2D Context/Web Workersを使う

2013年6月10日 初版第1刷発行

three.jsの仕様変更に伴い本書の記載に変更点があります。追加情報を参照してください。

本書について

 本書は、HTML5を利用しウェブブラウザのみで完結した物理シミュレーション環境(仮想物理実験室)の構築手法と物理学の基礎を実践を交えながら習得することを目的とした『HTML5による物理シミュレーション』(以下『前編』と表記)の続編です。

 HTML5で作成したアプリケーションは、ウェブブラウザを介して様々な環境で実行することができる上に、当然ながら、HTMLの本領であるウェブ上での公開も容易です。本書では、アプリケーションの共通プラットフォームであるHTML5の一つの応用例として、インタラクティブな新しい科学コミュニケーションツールとしての可能性を提案します。
 物理シミュレーション環境の構築には、【入力】【演算】【描画】の3要素が必要となります。これまで、【入力】は各実行環境に応じたGUI、【演算】はC言語などのプログラミング言語、【描画】は2次元グラフ描写ならgnuplot、3次元グラフィックスならOpenGLというように、それぞれ独立に環境を用意し、技術を習得する必要がありました。
 これに対してHTML5では、これら3要素を統一的に扱うことができ、かつ環境を別途用意する必要もなく、ウェブブラウザのみで実行可能になったことが、本書がHTML5による物理シミュレーションを提案する最大の根拠です。各ブラウザの性能が飛躍的に向上した恩恵により、これまで敷居の高かった物理シミレーションが、簡単かつ高水準で実行可能となったのです。
 さらに今回、嬉しい誤算として、これまでボトルネックと考えられていた【演算】を担うJavaScriptの計算速度が、科学計算などの高速な数値計算に利用されるC言語と比べて、わずか1割程度しか遅くないことを示すことができました(詳細は本書2.3.3項を参照)。一般的にJavaScriptは、様々な形式のオブジェクトを取り扱うツールとして利用する場合、コンパイル言語と比べて処理速度が10倍ほど遅いと言われていますが、こと数値計算に限れば、C言語にも劣らない計算速度を、現ブラウザで実現できるようになったのです。
 このことは、ウェブブラウザが、これまでの単なるウェブページを閲覧するためだけのツールではなく、本格的な数値計算やシミュレーションなどを実行するプラットフォームとしての性能を十分に有していることを意味します。HTML5が新しいインタラクティブな科学コミュニケーションツールとして、世界中で活躍する日も近づいているでしょう。

目 次