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

st study 2011 09 30 Recent site activity smalltalkusers.jp

N/A
N/A
Protected

Academic year: 2018

シェア "st study 2011 09 30 Recent site activity smalltalkusers.jp"

Copied!
98
0
0

読み込み中.... (全文を見る)

全文

(1)

2011/9/30 Smalltalk勉強会 1

HoneyGinger:

粒子法流体シミュレーションを

オレオレ

Smalltalk

っぽく作ってみたら、

こんなんなりました。ツ

(2)

2011/9/30 Smalltalk勉強会 2

(3)

2011/9/30 Smalltalk勉強会 3

小田朋宏

● E-mail: tomohiro.tomo.oda@gmail.com

● twitter ID: @tomooda

(4)

2011/9/30 Smalltalk勉強会 4

Smalltalk遍歴

● 大学編

– 大学入学時に、Dolphinワークステーションを見かけた

(5)

2011/9/30 Smalltalk勉強会 5

(株)SRA編

– PARTS Workbench

– VisualSmalltalk Enterprise – VisualWorks

● じゅん

– Squeak/Pharo

● NaturalSmalltalk

(6)

2011/9/30 Smalltalk勉強会 6

(7)

2011/9/30 Smalltalk勉強会 7

表向きは

(8)

2011/9/30 Smalltalk勉強会 8

実は

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

(9)

2011/9/30 Smalltalk勉強会 9

Danger lies before you, while safey lies behind, Two of us wil help you, whichever you would ind,

One among us seven wil let you move ahead, Anoher wil ransport he drinker back insead,

Two among our number hold only netle-wine, hree of us are kilers, waiing hidden in line Choose, unless you wish o stay here forevermore To help you in your choice, we give you hese clues four:

First, however slyly he poison ries o hide You wil always ind some on netle wine's left side Second, diferent are hose who stand at eiher end But if you would move onward, neiher is your riend;

hird as you see clearly, al are diferent size Neiher dwarf nor giant hold deah in heir insides;

Fourh, he second left and he second on he right Are twins once you tase hem, hough diferent at irst sight.

(10)

2011/9/30 Smalltalk勉強会 10

● もちろんSmaltalkで解きましたとも!

(11)

2011/9/30 Smalltalk勉強会 11

(12)

2011/9/30 Smalltalk勉強会 12

SPH法

Smoothed Particle Hydrodynamics Method

なめろうした

つぶつぶの

にゅるにゅる流れとう

(13)

2011/9/30 Smalltalk勉強会 13

(14)

2011/9/30 Smalltalk勉強会 14

(15)

2011/9/30 Smalltalk勉強会 15

ナビエ・ストークス方程式

http://upload.wikimedia.org/math/8/b/8/8b86dfc3e7718c881e72c9067b7c54c4.png

● これが解ければ、本田△のシュートも読めるはず、

(16)

2011/9/30 Smalltalk勉強会 16

この方程式の一般解はミレニアム問題の1

19世紀に定式化されてから、

(17)

2011/9/30 Smalltalk勉強会 17

(18)

2011/9/30 Smalltalk勉強会 18

そこで

もっと粗い近似のストークス方程式

● 右側を計算すれば、時間巾ごとにその値を加速度にし

(19)

2011/9/30 Smalltalk勉強会 19

(20)

2011/9/30 Smalltalk勉強会 20

流体に方程式を適用するには

流体をどうモデル化するかが問題

● パーティクル法

(21)

2011/9/30 Smalltalk勉強会 21

パーティクル法

● 流体とはいえ、相手は粒子の集まりだ : 幾何的

(22)

2011/9/30 Smalltalk勉強会 22

メッシュ法

● 流体とはいえ、相手は区画の集まりだ : トポロジー的

: VisualAgentsheet

(23)

2011/9/30 Smalltalk勉強会 23

SPHはパーティクル法の代表

(24)

2011/9/30 Smalltalk勉強会 24

(25)

2011/9/30 Smalltalk勉強会 25

粒同士の相互作用なんだから、

(26)

2011/9/30 Smalltalk勉強会 26

おまえとの距離はどれぐらいだから、 どれぐらいの力で押すのか、とか、

(27)

2011/9/30 Smalltalk勉強会 27

おまえとの距離はどれぐらいだから、

どれぐらいの力で引き摺られるのか、とか、

self viscosity * (self area + aParticle area)

(28)

2011/9/30 Smalltalk勉強会 28

(29)

2011/9/30 Smalltalk勉強会 29

力学の場合、「場」で記述するとうまい場合が多い

(30)

2011/9/30 Smalltalk勉強会 30

つまり、

「圧力」と「流れ」という

2つの「場」が粒の動きを決める

(31)

2011/9/30 Smalltalk勉強会 31

「圧力」は粒子の数

SPHSimulator>>countAt:kernel:

「流れ」は粒子の速度

SPHSimulator>>velocityAt:kernel:

どちらも、座標とカーネル関数が引数

(32)

2011/9/30 Smalltalk勉強会 32

(33)

2011/9/30 Smalltalk勉強会 33

(34)

2011/9/30 Smalltalk勉強会 34

カーネル関数というのは

(35)

2011/9/30 Smalltalk勉強会 35

(36)

2011/9/30 Smalltalk勉強会 36

ある座標点から半径r内の円の中にある粒子の数

で圧力を計算すると

圧力変化がガタゴトしてしまう

(37)

2011/9/30 Smalltalk勉強会 37

それじゃ偏微分を扱うのに困るし、

自然条件では普通は圧力は滑らかに変化する

(38)

2011/9/30 Smalltalk勉強会 38

だから、なだらか〜に変化するように、

k(d) = 0, if d >= r

となるような滑かな関数kを使って重み付けをする

k(d)

(39)

2011/9/30 Smalltalk勉強会 39

粒の位置のカーネル関数を重ね合わせると、

● ● ● ● ● ● ● ● ● http://www.actact.co.jp/swfu/d/s_kernelsmoothing.png

(40)

2011/9/30 Smalltalk勉強会 40

ってな感じで、こいつの右辺を計算します。

(41)

2011/9/30 Smalltalk勉強会 41

(42)

2011/9/30 Smalltalk勉強会 42

目標:

● バターを熱いナイフで「ストン」と切る

(43)

2011/9/30 Smalltalk勉強会 43

デザイン上の原則:

● シミュレーション ≠ 計算

● シミュレーション =

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

(44)

● 武器:

● 「じゅん」で鍛えた幾何計算!

– 干渉計算、空間分割、三角形分割…

● Morphicフレームワークの泥縄^H^H柔軟なUI構築!

そして

● オブジェクト指向は計算モデルじゃないんだぜ

(45)

2011/9/30 Smalltalk勉強会 45

道具:

● Pharo/Squeak

● ネットワークを介したユルユルな分散協調

⇒ 処理能力が必要になったら、

(46)

2011/9/30 Smalltalk勉強会 46

SPH法

Smoothed Particle Hydrodynamics Method

なめろうした

つぶつぶの

にゅるにゅる流れとう

(47)

2011/9/30 Smalltalk勉強会 47

(48)

2011/9/30 Smalltalk勉強会 48

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

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

(49)

2011/9/30 Smalltalk勉強会 49

最近、SPHでも流体以外のものを扱うのが流行中

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

弾体

(50)

2011/9/30 Smalltalk勉強会 50

例えば、弾体(Elastic Body)

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

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

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

(51)

2011/9/30 Smalltalk勉強会 51

(52)

2011/9/30 Smalltalk勉強会 52

例えば、剛体(Rigid Body)

● HoneyGingerの場合、

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

(53)

2011/9/30 Smalltalk勉強会 53

SPHSimulator butterBall

SPHSimualtor butterBallAtDie

(54)

2011/9/30 Smalltalk勉強会 54

(55)

2011/9/30 Smalltalk勉強会 55

● お話しする人その1:

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

● お話しする人その2:

(56)

2011/9/30 Smalltalk勉強会 56

(57)

2011/9/30 Smalltalk勉強会 57

(58)

2011/9/30 Smalltalk勉強会 58

アクション:

● 弾体系

● 流体系(ニュートン粘性、ストークス)

● 熱力系(ニュートン冷却)

● 積分系(加速度→速度, 速度→位置)

● 環境系(空間定義、局所アクション、発火条件付アクション)

● 通信系(状態データの同期)

(59)

2011/9/30 Smalltalk勉強会 59

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

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

(60)

2011/9/30 Smalltalk勉強会 60

ほんとうはこれで

(61)

2011/9/30 Smalltalk勉強会 61

に、

(62)

2011/9/30 Smalltalk勉強会 62

(63)

2011/9/30 Smalltalk勉強会 63

● 粒を見せる(その1)

(64)

2011/9/30 Smalltalk勉強会 64

● 粒を見せる(その2)

(65)

2011/9/30 Smalltalk勉強会 65

● 場を見せる(その1)

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

(66)

2011/9/30 Smalltalk勉強会 66

● 場を見せる(その2)

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

(67)

2011/9/30 Smalltalk勉強会 67

● 流体を見せる

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

(68)

2011/9/30 Smalltalk勉強会 68

● 三角形分割のようす

SPHSimulator impossibleRiverWireframe

(69)

2011/9/30 Smalltalk勉強会 69

ドロネー三角形分割

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

(70)

2011/9/30 Smalltalk勉強会 70

● 弾体、剛体を見せる

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

SPHSimulator rockAtDie

(71)

2011/9/30 Smalltalk勉強会 71

● 流れを感じさせる

● ニセHandMorphを流体に流させる

SPHSimulator mouseInCreek2

(72)

2011/9/30 Smalltalk勉強会 72

(73)

2011/9/30 Smalltalk勉強会 73

● 特定の粒をつかむ/投げる

● SPHParticleHand

(74)

2011/9/30 Smalltalk勉強会 74

● 周辺の粒をつかむ/投げる

● SPHParticleGripper

(75)

2011/9/30 Smalltalk勉強会 75

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

● SPHFakeHand

(76)

2011/9/30 Smalltalk勉強会 76

(77)

2011/9/30 Smalltalk勉強会 77

(78)
(79)

2011/9/30 Smalltalk勉強会 79

シミュレーション =

(80)

2011/9/30 Smalltalk勉強会 80

シミュレーション計算

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

人間との対話

(81)

2011/9/30 Smalltalk勉強会 81

(82)

2011/9/30 Smalltalk勉強会 82

(83)

2011/9/30 Smalltalk勉強会 83

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

ゆる〜〜〜〜い

(84)

2011/9/30 Smalltalk勉強会 84

MapReduceみたいに

(85)

2011/9/30 Smalltalk勉強会 85

動的で

自分ができることを

(86)

2011/9/30 Smalltalk勉強会 86

記憶(レポジトリ)

● HoneyGingerサーバ

計算(シミュレータ)

● SPHSimulator (アクションの組み合わせ)

人間とのメッセージング

(87)

2011/9/30 Smalltalk勉強会 87

(HoneyGingerServer port: 9800) startup. SPHSimulator bouncingBallsServer.

(88)

2011/9/30 Smalltalk勉強会 88

(89)
(90)
(91)
(92)
(93)

● 流体シミュレーション

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

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

(94)

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

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

オブジェクト指向は計算モデルじゃないんだぜ、

(95)

今後の課題

● 計算を分散

● アクションの組み立てUI

(96)

今後の課題

● 計算を分散

– 更新の同期

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

(97)

今後の課題

● アクションの組み立てUI

– タイル的なやつとか

(98)

今後の課題

● もっとSmalltalk臭く!

– もっとインタラクティブに

– さらにインタラクティブに

参照

Outline

関連したドキュメント

In this section a natural topology on these algebras is defined; the class of globally completely regular mappings is singled out for which such algebras play a role similar to that

¢−ma批Orde愕@印ringe「.jp   Subscription Information  Frequ孤Cy:2issⅦeSpery¢訂  

He 15 studied the flow that the disks start to rotate eccentrically and both the disks execute oscillations in the same direction while the disks are initially rotating about a

In he following numerical examples, for simplicity of calculations he start-up time parameter is dropped in Model 1. In order to keep system idle ime minimal, the "system

He has proven that a generic canonical curve of genus 7, a generic K3 surface of degree 12 and any nonsingular prime Fano threefold X 12 (with Picard group Z) are obtained as

Proof: The observations at the beginning of this section show for n ≥ 5 that a Moishezon twistor space, not fulfilling the conditions of Theorem 3.7, contains a real fundamental

Chiu; Asymptotic equivalence of alternately advanced and delayed differential systems with piecewise constant generalized arguments Acta Math.. Yorke; Some equations modelling

Agarwal, “Multiple positive solutions to superlinear periodic boundary value problems with repulsive singular forces,” Journal of Mathematical Analysis and Applications, vol..