JavaScriptで使える3D物理エンジンを作ってみた

2018/01/13 15:48

昔作ったActionScript 3.0向けの物理エンジンであるOimoPhysicsを全て書き直し、機能を大幅強化してJavaScriptから使えるようにしました。ようやく機能的にもAmmo.jsに対抗できるレベルになってきたかと思います。

デモは文字をクリックするかキー入力することで操作できます。Q, E キーで前後のデモと切り替えます。

>> Launch Demo (Click text on the left or press keys to control)
>> Open OimoPhysics GitHub page

(続きを読む…)

粒子法

2017/12/19 00:28

SPH法とMPS法で流体シミュレーションしてみました。ついでにリアルタイム計算向けの手法を考えました。
デモは加速度センサーに対応しているので、スマートフォンから見ると面白いかもしれません。

>> Open fluid demo

* この記事は rogy Advent Calendar 2017 の記事です

※注:記事の続きにはgif動画が10個くらい貼ってあるので、全部読み込むと結構な通信量になります。一応注意してください。

(続きを読む…)

雪玉レースゲーム

2017/11/03 22:02

しばらく前に某所で展示していた雪玉レースゲームを公開しました。
1~2分で終わる簡単なゲームなのでお気軽にどうぞ。

(Java 7 以上が必要です)

>> Download (for 64-bit Windows)
>> Download (for 32-bit Windows)
>> Download (for MacOSX)

(続きを読む…)

基本図形とレイの交差判定

2017/08/16 14:45

物理エンジンにレイキャストを実装したときの覚え書きです。
球、直方体、円柱、円錐とレイ(半直線)の交点と法線ベクトルを求めます。

(続きを読む…)

単体と点の最接近点を求める その2

2017/08/12 17:08

3次元空間内の単体(線分、三角形、四面体)と原点の最接近点を求めるコードを書きました。
前回は三角形までやりましたが、それの続きです。今回はあっさり終わります。
ヘッダ画像とデモは前回の使い回しです。

>> Run Demo (HTML5+JS)

(続きを読む…)

氷ステージ

2017/03/12 20:27

氷のステージを作っています。

(続きを読む…)

リバーシAIを作ってみた

2017/02/20 21:40

PCやスマートフォンのブラウザ上で動くリバーシ(オセロ)AIを作りました。
棋譜の読み込み・優劣のグラフ表示機能があるので対局の研究に使えます。

>> Run Application (HTML5+JS)

(続きを読む…)

単体と点の最接近点を求める その1

2016/12/27 21:40

3次元空間内の単体(線分、三角形、四面体)と原点の最接近点を求めるコードを書きました。
以下アルゴリズムに関する解説とメモですが、長いので2回に分けて解説します(その2はこちら)。今回は点、線分、三角形の場合です(下のデモは四面体ですが……w)。

>> Run Demo (HTML5+JS)

(続きを読む…)

粒子法で弾性体シミュレーション

2016/08/31 22:04

粒子法で3Dの弾性体シミュレーションを作りました。
CPUで物理演算、GPUでメッシュの変形を計算します。

>> Run simulation (Required Flash Player 18 or later)
>> View source code

(続きを読む…)

GPGPUでオイル時計のシミュレーションを作ってみた

2015/12/31 23:59

Flash+Stage3Dでオイル時計のシミュレーションを作ってみました。
流体は全てGPGPUで計算しています。

ドラッグで流体を混ぜられます。
スペースキーを押すと上下をひっくり返します。

>> Open simulation (Required Flash Player 18 or later)
>> View source code

以下は主に流体のシミュレーション方法についての解説です。

(続きを読む…)