狠狠撸

狠狠撸Share a Scribd company logo
Jun4Pharo
~まだ登り始めたばかりだからな
この果てしなく遠いJun坂をよ~
Tomohiro "tomo" Oda
@tomooda
installation
repository
http://smalltalkhub.com/#!/~tomooda/Jun4Pharo
Gofer new
smalltalkhubUser: 'tomooda' project: 'Jun4Pharo';
configurationOf: #Jun;
load.
(Smalltalk at: #ConfigurationOfJun) load.
CI server
https://ci.inria.fr/pharo-contribution/job/Jun4Pharo/
CIサーバ
Nightly build
● Pharo 4.0
https://ci.inria.fr/pharo-
contribution/job/Jun4Pharo/lastCompletedBu
ild/PHARO=40,VERSION=stable,
VM=vm/artifact/Jun4Pharo.zip
● Pharo 3.0
https://ci.inria.fr/pharo-
contribution/job/Jun4Pharo/lastCompletedBu
ild/PHARO=30,VERSION=stable,
VM=vm/artifact/Jun4Pharo.zip
good old days in 90s
Jun for Smalltalk
● Jun for Smalltalk
○ VisualWorks上で動く3Dライブラリ
○ 開発期間 1996~現在
○ AOKI Atsushi, ODA Tomohiro, HOSHI Takanori, NISHINAKA
Yoshiyuki, YAMADA Ryousuke, WATANABE Katsuhiro, Ankur J.
Chavda, NISHIHARA Satoshi, MATSUDA Ryouichi, MATSUO Minoru,
Brent N. Reeves, ASAOKA Hiroko, TANAKA Shinichi, ASADA
Mitsuhiro, Paul Guyot (and LIP6), Albert Kerssies, MATSUBARA
Nobuto, SAWAMOTO Eri, HAYASHI Koichiro, NAKAO Tatsuya,
NISHIMURA Yuuri
○ 999 classes
○ Jun4Java, ChemoJunなどを派生
○ 電子マネキン、造船CAD、工場シミュレーション、化学情
報学などで利用されている
Jun for Smalltalkの歴史
● 青木さんが z-sort法による3D描画ライブラリと
して作成
● 電子マネキン時代:
○ Mei由来のコードを投入
○ 小田が加わり、OpenGL、ソリッドモデル、ナドナドを実
装
● みんなでよってたかってマルチメディアだの何だ
のを拡張
Jun for Smalltalk
機能
● 幾何
○ Point, Curve, Surface, ParametricCurve, ...
○ Transformation, ...
○ Delauney, Voronoi, ...
● グラフィックス
○ Vertex, Polylines, Polygons, NURBS, ...
○ RenderingContext, DisplayModel, ...
○ VRML, ...
● ソリッド
○ Breps, CSG, Octree, Metaball, ...
● 可視化
○ Chart, Grapher, ...
Jun for Smalltalk
機能
● データ処理
○ Matrix, SVD, Random, FFT, ...
● メディア
○ QuickTime, Midi, Gif, ...
● ソース管理
○ JunSystem
○ Encyclopedia
● Smalltalkユーティリティ
○ MVC互換レイヤ, File, Progress, MessageSpy, ...
● 言語
○ Lisp, Prolog, Plotter
related work
RMapViewer
同じ化学組成を持つ分子の取りうる構造の
マップを可視化して、
反応経路を探索して可視化する
GRRM:量子力学的に可能な構造とその変化を全探索する
http://grrm.chem.tohoku.ac.jp/GRRM/
RMapViewer:探索結果を可視化する
http://sourceforge.net/projects/rmapviewer/
Roassal
可視化フレームワーク
Roassal City Layouts
https://www.youtube.com/watch?v=CuimMwuZiGA
Woden
シェーダー
Woden Demo for ESUG
https://www.youtube.com/watch?v=1Nze9tnwYxY
design rationale
Jun4Pharo
Jun4Pharoが目指すのは
GrapherやShaderというよりも
● 幾何とかBodyとかをちゃんと扱える
● 自分で3DなMorphをゴリゴリ書ける
○ DisplayModelばっかり使いまわしてほしくない
● でもお気楽に3D可視化できるようにしたい
○ データマイニングとかでも使えるように
● 他のライブラリと相互連携したい
Jun4Pharo
● Smalltalk-80的な丸鍋的なライブラリからPharo
的なモジュール化されたライブラリへ
○ なんでも抱え込まない
○ 芋づる的依存性の解消
● Pharo上の他の3Dライブラリとの連携
○ Roassal - ビジュアライゼーション
○ Woden - シェーダフレームワーク
● OpenGLに依存しない
○ Canvasでもがんばる!
○ もっとすごいライブラリが来たら乗っかる!
Jun4Pharo
One more thing...
Jun4Pharo
One more thing...
● いわゆるBSDライセンスです
○ なので、本当はJunではなくTakenokoベース
Demonstration
Jun4Pharo デモ
JunGeometryでゴリゴリ
JunCanvasRenderingContextでゴリゴリ
Jun狈叠骋尝搁别苍诲别谤颈苍驳颁辞苍迟别虫迟でゴリゴリ
补蝉奥辞诲别苍搁别苍诲别谤补产濒别でゴリゴリ
贬辞苍别测骋颈苍驳别谤とゴリゴリ
JunGeometryでゴリゴリ
JunCanvasRenderingContextでゴリゴリ
狈叠骋尝搁别苍诲别谤颈苍驳颁辞苍迟别虫迟でゴリゴリ
补蝉奥辞诲别苍搁别苍诲别谤补产濒别でゴリゴリ
贬辞苍别测骋颈苍驳别谤とゴリゴリ
コードはこんな感じ
| form rc |
form := Form extent: 500@500 depth: 32.
rc := form renderingContext.
rc clear.
Jun3dDisplayObject benzene renderOn: rc.
rc flush.
form asMorph openInWorld
まとめ
● 巨大なJun for SmalltalkからPharoに移植はじ
めたばかりです。
● 少しずつ移植を進めていきます。
● ぜひ遊んでやってください
○ http://smalltalkhub.com/#!/~tomooda/Jun4Pharo

More Related Content

Jun4Pharo @ Smalltalk勉強会 2015/5/29