SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
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でゴリゴリ
JunNBGLRenderingContextでゴリゴリ
asWodenRenderableでゴリゴリ
HoneyGingerとゴリゴリ
JunGeometryでゴリゴリ
JunCanvasRenderingContextでゴリゴリ
NBGLRenderingContextでゴリゴリ
asWodenRenderableでゴリゴリ
HoneyGingerとゴリゴリ
コードはこんな感じ
| 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

Weitere ähnliche Inhalte

Andere mochten auch

Lively Walk-Through: A Lightweight Formal Method in UI/UX design
Lively Walk-Through: A Lightweight Formal Method in UI/UX designLively Walk-Through: A Lightweight Formal Method in UI/UX design
Lively Walk-Through: A Lightweight Formal Method in UI/UX designTomohiro Oda
 
2016.03.04 NetOpsCoding#2
2016.03.04 NetOpsCoding#22016.03.04 NetOpsCoding#2
2016.03.04 NetOpsCoding#2Shuichi Ohkubo
 
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向でyaju88
 
ドメイン名の ライフサイクルマネージメント
ドメイン名の ライフサイクルマネージメントドメイン名の ライフサイクルマネージメント
ドメイン名の ライフサイクルマネージメントYoshiki Ishida
 
昨今のトラフィック状況
昨今のトラフィック状況昨今のトラフィック状況
昨今のトラフィック状況Yoshiki Ishida
 
Janogia20120921 tsuchiyashishio
Janogia20120921 tsuchiyashishioJanogia20120921 tsuchiyashishio
Janogia20120921 tsuchiyashishioKeisuke Ishibashi
 
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshiJanogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshiKeisuke Ishibashi
 
Debian tokyo-20150224-01
Debian tokyo-20150224-01Debian tokyo-20150224-01
Debian tokyo-20150224-01Yuji IMAI
 
horiyo-talk-CfS-20150527
horiyo-talk-CfS-20150527horiyo-talk-CfS-20150527
horiyo-talk-CfS-20150527Saga University
 
仮想通貨テストベッドネットワークの構築
仮想通貨テストベッドネットワークの構築仮想通貨テストベッドネットワークの構築
仮想通貨テストベッドネットワークの構築Yuichiro Shibata
 
運用自動化に向けての現場からの課題
運用自動化に向けての現場からの課題運用自動化に向けての現場からの課題
運用自動化に向けての現場からの課題Yoshiki Ishida
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計隆行 神戸
 
2016.11.29 InternetWeek マルチベンダ環境におけるEVPN構築のノウハウ
2016.11.29 InternetWeek マルチベンダ環境におけるEVPN構築のノウハウ2016.11.29 InternetWeek マルチベンダ環境におけるEVPN構築のノウハウ
2016.11.29 InternetWeek マルチベンダ環境におけるEVPN構築のノウハウShuichi Ohkubo
 
ゼロレーティングの現況について
ゼロレーティングの現況についてゼロレーティングの現況について
ゼロレーティングの現況についてYoshiki Ishida
 
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側Shuichi Ohkubo
 
ドメイン名の ライフサイクルマネージメント20170222
ドメイン名の ライフサイクルマネージメント20170222ドメイン名の ライフサイクルマネージメント20170222
ドメイン名の ライフサイクルマネージメント20170222Yoshiki Ishida
 

Andere mochten auch (20)

Fablab baisc
Fablab baiscFablab baisc
Fablab baisc
 
Lively Walk-Through: A Lightweight Formal Method in UI/UX design
Lively Walk-Through: A Lightweight Formal Method in UI/UX designLively Walk-Through: A Lightweight Formal Method in UI/UX design
Lively Walk-Through: A Lightweight Formal Method in UI/UX design
 
2016.03.04 NetOpsCoding#2
2016.03.04 NetOpsCoding#22016.03.04 NetOpsCoding#2
2016.03.04 NetOpsCoding#2
 
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で
 
ドメイン名の ライフサイクルマネージメント
ドメイン名の ライフサイクルマネージメントドメイン名の ライフサイクルマネージメント
ドメイン名の ライフサイクルマネージメント
 
昨今のトラフィック状況
昨今のトラフィック状況昨今のトラフィック状況
昨今のトラフィック状況
 
Janogia20120921 tsuchiyashishio
Janogia20120921 tsuchiyashishioJanogia20120921 tsuchiyashishio
Janogia20120921 tsuchiyashishio
 
キメチャッテ
キメチャッテキメチャッテ
キメチャッテ
 
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshiJanogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
 
Debian tokyo-20150224-01
Debian tokyo-20150224-01Debian tokyo-20150224-01
Debian tokyo-20150224-01
 
horiyo-talk-CfS-20150527
horiyo-talk-CfS-20150527horiyo-talk-CfS-20150527
horiyo-talk-CfS-20150527
 
仮想通貨テストベッドネットワークの構築
仮想通貨テストベッドネットワークの構築仮想通貨テストベッドネットワークの構築
仮想通貨テストベッドネットワークの構築
 
Benchmarkspec
BenchmarkspecBenchmarkspec
Benchmarkspec
 
ASAMAP 開発秘話
ASAMAP 開発秘話ASAMAP 開発秘話
ASAMAP 開発秘話
 
運用自動化に向けての現場からの課題
運用自動化に向けての現場からの課題運用自動化に向けての現場からの課題
運用自動化に向けての現場からの課題
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計
 
2016.11.29 InternetWeek マルチベンダ環境におけるEVPN構築のノウハウ
2016.11.29 InternetWeek マルチベンダ環境におけるEVPN構築のノウハウ2016.11.29 InternetWeek マルチベンダ環境におけるEVPN構築のノウハウ
2016.11.29 InternetWeek マルチベンダ環境におけるEVPN構築のノウハウ
 
ゼロレーティングの現況について
ゼロレーティングの現況についてゼロレーティングの現況について
ゼロレーティングの現況について
 
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
2016.7.6 さくらの夕べ@沖縄 さくらインターネットの「閉域網サービス」の裏側
 
ドメイン名の ライフサイクルマネージメント20170222
ドメイン名の ライフサイクルマネージメント20170222ドメイン名の ライフサイクルマネージメント20170222
ドメイン名の ライフサイクルマネージメント20170222
 

Jun4Pharo @ Smalltalk勉強会 2015/5/29