• 検索結果がありません。

2011/9/30 Smalltalk勉強会 46

2011/9/30 Smalltalk勉強会 47

流体以外は扱えないの?

2011/9/30 Smalltalk勉強会 48

● バターの塊はどうするのさ?

● ナイフはどうするのさ?

● 壁はどうするのさ?

2011/9/30 Smalltalk勉強会 49

最近、

SPH

でも流体以外のものを扱うのが流行中

http://www.youtube.com/watch?v=BP6C8-UZWzc

弾体

剛体

2011/9/30 Smalltalk勉強会 50

例えば、弾体

(Elastic Body)

HoneyGinger

の場合、三角形パッチを形成して、

弾性のある物体を表現する

● 三角形の辺の距離を記憶しておいて、

その距離をできるだけ保つようにする

2011/9/30 Smalltalk勉強会 51

SPHSimulator rocknjello

2011/9/30 Smalltalk勉強会 52

例えば、剛体

(Rigid Body)

HoneyGinger

の場合、

円とか三角形など、幾何的な形状を置いて、

● 粒子がその内部に入らないようにできる

2011/9/30 Smalltalk勉強会 53

SPHSimulator butterBall

SPHSimualtor butterBallAtDie

SPHSimulator butterBallAtTriangle

2011/9/30 Smalltalk勉強会 54

どうやって流体とお話しするの?

2011/9/30 Smalltalk勉強会 55

● お話しする人その

1

シミュレーションをつくる人

● お話しする人その

2

シミュレーションをつかう人

2011/9/30 Smalltalk勉強会 56

まずは、シミュレーションをつくる場合

2011/9/30 Smalltalk勉強会 57

シミュレーションを、

1

連のアクションとして記述

2011/9/30 Smalltalk勉強会 58

アクション

:

弾体系

流体系

(

ニュートン粘性、ストークス

)

熱力系

(

ニュートン冷却

)

積分系

(

加速度

速度

,

速度

位置

)

環境系

(

空間定義、局所アクション、発火条件付アクション

)

通信系

(

状態データの同期

)

UI

(

シミュレーションへの干渉、可視化

)

2011/9/30 Smalltalk勉強会 59

これを適当な順番に並べると、

好きな法則の組み合わせでシミュレーションでき る。

2011/9/30 Smalltalk勉強会 60

ほんとうはこれで

スクラッチ的なものを作りたいんだよねー

2011/9/30 Smalltalk勉強会 61

つぎに、

シミュレーションを使う人とのお話し

2011/9/30 Smalltalk勉強会 62

まずは可視化

2011/9/30 Smalltalk勉強会 63

● 粒を見せる

(

その

1)

点を表示

SPHSimulator impossibleRiver

2011/9/30 Smalltalk勉強会 64

● 粒を見せる

(

その

2)

画像を見せる

(SPHSimulator stickybeans)

2011/9/30 Smalltalk勉強会 65

● 場を見せる

(

その

1)

定点上の「流速」を見せる

(SPHSimulator impossibleRiverSensor)

2011/9/30 Smalltalk勉強会 66

● 場を見せる

(

その

2)

格子上の「流速」を見せる

SPHSimulator impossibleRiverMesh

2011/9/30 Smalltalk勉強会 67

● 流体を見せる

点を頂点にしたドロネー三角形分割

– SPHSimulator impossibleRiverPolygon

2011/9/30 Smalltalk勉強会 68

● 三角形分割のようす

SPHSimulator impossibleRiverWireframe

ステップ毎に三角形分割をやり直してます

2011/9/30 Smalltalk勉強会 69

ドロネー三角形分割

できるだけ「尖った」三角形をつくらないように三角形に分割する

http://t1.gstatic.com/images?q=tbn:ANd9GcQp15JKOsQkZdtl5Fh5e26Z7w7UCJGsJXb5wyK_21NNMqhLG6omxw http://t2.gstatic.com/images?q=tbn:ANd9GcQgWTzMeWFc6Ny39VDlA4zmiPeDPWQzOy9-qDki3y5yKL5JJ4gF

2011/9/30 Smalltalk勉強会 70

● 弾体、剛体を見せる

弾体、剛体をシミュレートする「アクション」が描画する

SPHSimulator rockAtDie

SPHSimulator rockAtMouse

2011/9/30 Smalltalk勉強会 71

● 流れを感じさせる

ニセ

HandMorph

を流体に流させる

SPHSimulator mouseInCreek2

SPHSimulator mouseInCreekPoygon

2011/9/30 Smalltalk勉強会 72

さらに入力

2011/9/30 Smalltalk勉強会 73

● 特定の粒をつかむ

/

投げる

SPHParticleHand

SPHSimulator bouncingBalls

2011/9/30 Smalltalk勉強会 74

● 周辺の粒をつかむ

/

投げる

SPHParticleGripper

SPHSimulator rocknjello

2011/9/30 Smalltalk勉強会 75

● マウスカーソル自体を粒にする

SPHFakeHand

SPHSimulator mouseInCreek

2011/9/30 Smalltalk勉強会 76

多人数もできるよ!

2011/9/30 Smalltalk勉強会 77

詳しくは「非対称分散」で検索!

2011/9/30 Smalltalk勉強会 78

非対称分散

2011/9/30 Smalltalk勉強会 79

シミュレーション =

人間からの干渉 + 計算 + 人間への干渉

2011/9/30 Smalltalk勉強会 80

シミュレーション計算

デスクトップとかサーバとか

人間との対話

マルチタッチタブレットとかノート

PC

とか

3DS

とか

2011/9/30 Smalltalk勉強会 81

コンピュータによって、得意不得意があるよね

2011/9/30 Smalltalk勉強会 82

だから分担しましょう

2011/9/30 Smalltalk勉強会 83

共有レポジトリとのデータ同期を介した

ゆる〜〜〜〜い

分散協調

2011/9/30 Smalltalk勉強会 84

MapReduce

みたいに

均質的で計算を平等に分散するんじゃなくて、

2011/9/30 Smalltalk勉強会 85

動的で

自分ができることを

自分の責任で飛び入り参加できるようなヤツ

2011/9/30 Smalltalk勉強会 86

記憶

(

レポジトリ

)

HoneyGinger

サーバ

計算

(

シミュレータ

)

SPHSimulator (

アクションの組み合わせ

)

人間とのメッセージング

SPHSimulator (

アクションの組み合わせ

)

2011/9/30 Smalltalk勉強会 87

(HoneyGingerServer port: 9800) startup.

SPHSimulator bouncingBallsServer.

SPHSimulator footballViewer.

2011/9/30 Smalltalk勉強会 88

まとめ

バターを熱いナイフで切る?

バターの塊を壁にベチャっと投げつける?

Jello

の塊を壁にベチャっと投げつける?

とにかく壁に投げつける!

● 流体シミュレーション

● 計算速度とかより柔軟性です

● 計算だけじゃなくインタラクションも大事なんです

● スタンドアロンでも分散

UI

でも動くよ

“This isn't magic - it's logic.”

“Simulation isn't computation – it's interaction!”

オブジェクト指向は計算モデルじゃないんだぜ という熱い心!

今後の課題

計算を分散

アクションの組み立て

UI

もっと

Smalltalk

臭く!

今後の課題

計算を分散

更新の同期

できるだけ非同期にやりたいなあ

アクション分担のネゴ

今後の課題

アクションの組み立て

UI

タイル的なやつとか

スクラッチ的なやつとか

ドキュメント内 st study 2011 09 30 Recent site activity smalltalkusers.jp (ページ 46-98)

関連したドキュメント