Three.js
WebGLでブラウザ上の3D表現を実現するJavaScriptライブラリ。移動式クレーン安全シミュレーターの3D描画に使っています。ゲームエンジンではなく軽さを取った理由と、荷振れを振り子モデルで表す設計を記録します。
Three.jsは、WebGLを利用してブラウザ上で3D表現を実現するJavaScriptライブラリです。BenriWorksでは、建設現場の安全教育向け「移動式クレーン安全シミュレーター」の3D描画に使用しており、荷振れのような物理現象の表現から現場シーンの構築までを担っています。
ゲームエンジンではなくThree.jsを選ぶ理由
3D教育コンテンツを作る選択肢としては、UnityなどのゲームエンジンをWebGLビルドで配信する方法もあります。それでもThree.jsを選んでいるのは、成果物の軽さと配信の自由度のためです。ゲームエンジンのWebGLビルドは数十MBのダウンロードが前提になりがちですが、Three.jsなら必要なコードとモデルだけを載せられ、現場のスマートフォン回線でも実用的な初期読み込みに収まります。Next.jsアプリの1ページとして自然に組み込めるため、教材ページとシミュレーターを同じサイト内で行き来させる構成も作りやすくなります。
引き換えに、物理・アニメーション・UIはすべて自前で組むことになります。この「自前で組む」部分こそが、開発記事として発信している知見の中心です。
物理表現は「現象の芯」だけを数式にする
クレーンの荷振れ表現では、汎用の物理エンジンを使わず、ブームの先端を支点とした振り子運動+減衰という最小のモデルを自前実装しました。安全教育で伝えたいのは「旋回すると荷が遅れてついてくる」「急停止すると振れが残る」という現象の芯であり、それは振り子の運動方程式だけで再現できます。汎用エンジンを使うより挙動が安定し、「この揺れはどのパラメータから来るのか」を教育的に説明できることが利点です。この設計と検証は開発記事「Three.jsでクレーンの荷振れを表現する」で公開しています。
スマートフォンで動かすための画作り
現場での利用を想定すると、描画性能の下限は低価格帯のスマートフォンになります。クレーンシミュレーターがローポリゴン・フラットシェーディング寄りの画作りなのは、この下限で実用的な応答を保つためです。写実性を上げるほど教育効果が上がるわけではなく、「どの操作がどの結果を生んだか」が視認できることのほうが重要だ、というのが運用してみての実感です。
Three.jsによる物理表現・シーン設計の知見を探している開発者の参考になるよう、試した内容は数式とあわせて記事化していきます。
この技術を使うアプリ
関連記事

ガイド公開
移動式クレーンの定格荷重とは — 作業半径との関係をわかりやすく
移動式クレーンの定格荷重・定格総荷重・つり上げ荷重の違いと、作業半径が大きくなるほど吊れる重さが減る理由を解説します。転倒災害の典型パターンと必要資格の区分もまとめます

ガイド公開
自由空間伝搬損失の計算 — 32.45の式の意味と覚え方
無線工学の頻出計算「自由空間伝搬損失」を、公式の意味から解説します。32.45+20log f+20log d の由来、距離2倍で6dB増える理由、試験での計算のコツをまとめます

開発記事公開
教科書の式の不連続を、直さずにテストで固定する
学習ツールwavelaneで、ナイフエッジ回折の近似式に残る区分境界の不連続を、式を歪めずに既知の性質としてテストで文書化した判断を紹介します

開発記事公開
支持多角形でクレーンの転倒を判定する
クレーン安全シミュレーターで、支持多角形と安定余裕から転倒の危険を判定し、アウトリガーの張出しが効く理由を体感できるようにした実装を紹介します

開発記事公開
物理エンジンでクレーンの荷振れとワイヤー破断を表現する
クレーン安全シミュレーターで、振り子近似からRapier3Dの剛体とバネダンパーケーブルへ移行し、荷振れと破断を創発させた実装を紹介します

開発記事公開
買い切りアプリのライセンスをオフラインで検証する
学習ツールwavelaneで、Ed25519署名トークンによりサーバー通信なしでライセンスを検証し、個人情報も持たない設計にした実装を紹介します

開発記事公開
マントル対流をWeb Workerでリアルタイムに計算する
教育用3D地球シミュレータで、渦度と流れ関数による対流計算をWeb Workerで安定して動かし続けた実装を紹介します

開発記事公開
地震波の波線追跡でシャドウゾーンを再現する
教育用3D地球シミュレータで、スネルの法則による波線追跡からS波シャドウゾーンを再現した実装を紹介します

開発記事公開
Three.jsで移動式クレーンの荷振れを表現する方法
振り子運動と減衰を使った荷振れ表現の設計方針を、運動モデルとフレーム更新の観点から解説します

ガイド公開
クレーン安全教育に3Dシミュレーターを使う利点と限界
3Dシミュレーターをクレーンの安全教育に取り入れる場合の一般的な利点と、実機訓練や法令上の教育を代替できない限界を整理します


