Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jun4Pharo @ Smalltalk勉強会 2015/5/29

901 views

Published on

VisualWorks上の3DライブラリJun for SmalltalkのPharo移植Jun4Pharoの紹介

Published in: Software
  • Be the first to comment

Jun4Pharo @ Smalltalk勉強会 2015/5/29

  1. 1. Jun4Pharo ~まだ登り始めたばかりだからな この果てしなく遠いJun坂をよ~ Tomohiro "tomo" Oda @tomooda
  2. 2. installation
  3. 3. repository http://smalltalkhub.com/#!/~tomooda/Jun4Pharo Gofer new smalltalkhubUser: 'tomooda' project: 'Jun4Pharo'; configurationOf: #Jun; load. (Smalltalk at: #ConfigurationOfJun) load.
  4. 4. CI server https://ci.inria.fr/pharo-contribution/job/Jun4Pharo/
  5. 5. 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
  6. 6. good old days in 90s
  7. 7. 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、工場シミュレーション、化学情 報学などで利用されている
  8. 8. Jun for Smalltalkの歴史 ● 青木さんが z-sort法による3D描画ライブラリと して作成 ● 電子マネキン時代: ○ Mei由来のコードを投入 ○ 小田が加わり、OpenGL、ソリッドモデル、ナドナドを実 装 ● みんなでよってたかってマルチメディアだの何だ のを拡張
  9. 9. Jun for Smalltalk 機能 ● 幾何 ○ Point, Curve, Surface, ParametricCurve, ... ○ Transformation, ... ○ Delauney, Voronoi, ... ● グラフィックス ○ Vertex, Polylines, Polygons, NURBS, ... ○ RenderingContext, DisplayModel, ... ○ VRML, ... ● ソリッド ○ Breps, CSG, Octree, Metaball, ... ● 可視化 ○ Chart, Grapher, ...
  10. 10. Jun for Smalltalk 機能 ● データ処理 ○ Matrix, SVD, Random, FFT, ... ● メディア ○ QuickTime, Midi, Gif, ... ● ソース管理 ○ JunSystem ○ Encyclopedia ● Smalltalkユーティリティ ○ MVC互換レイヤ, File, Progress, MessageSpy, ... ● 言語 ○ Lisp, Prolog, Plotter
  11. 11. related work
  12. 12. RMapViewer 同じ化学組成を持つ分子の取りうる構造の マップを可視化して、 反応経路を探索して可視化する GRRM:量子力学的に可能な構造とその変化を全探索する http://grrm.chem.tohoku.ac.jp/GRRM/ RMapViewer:探索結果を可視化する http://sourceforge.net/projects/rmapviewer/
  13. 13. Roassal 可視化フレームワーク Roassal City Layouts https://www.youtube.com/watch?v=CuimMwuZiGA
  14. 14. Woden シェーダー Woden Demo for ESUG https://www.youtube.com/watch?v=1Nze9tnwYxY
  15. 15. design rationale
  16. 16. Jun4Pharo Jun4Pharoが目指すのは GrapherやShaderというよりも ● 幾何とかBodyとかをちゃんと扱える ● 自分で3DなMorphをゴリゴリ書ける ○ DisplayModelばっかり使いまわしてほしくない ● でもお気楽に3D可視化できるようにしたい ○ データマイニングとかでも使えるように ● 他のライブラリと相互連携したい
  17. 17. Jun4Pharo ● Smalltalk-80的な丸鍋的なライブラリからPharo 的なモジュール化されたライブラリへ ○ なんでも抱え込まない ○ 芋づる的依存性の解消 ● Pharo上の他の3Dライブラリとの連携 ○ Roassal - ビジュアライゼーション ○ Woden - シェーダフレームワーク ● OpenGLに依存しない ○ Canvasでもがんばる! ○ もっとすごいライブラリが来たら乗っかる!
  18. 18. Jun4Pharo One more thing...
  19. 19. Jun4Pharo One more thing... ● いわゆるBSDライセンスです ○ なので、本当はJunではなくTakenokoベース
  20. 20. Demonstration
  21. 21. Jun4Pharo デモ JunGeometryでゴリゴリ JunCanvasRenderingContextでゴリゴリ JunNBGLRenderingContextでゴリゴリ asWodenRenderableでゴリゴリ HoneyGingerとゴリゴリ
  22. 22. JunGeometryでゴリゴリ JunCanvasRenderingContextでゴリゴリ
  23. 23. NBGLRenderingContextでゴリゴリ
  24. 24. asWodenRenderableでゴリゴリ
  25. 25. HoneyGingerとゴリゴリ
  26. 26. コードはこんな感じ | form rc | form := Form extent: 500@500 depth: 32. rc := form renderingContext. rc clear. Jun3dDisplayObject benzene renderOn: rc. rc flush. form asMorph openInWorld
  27. 27. まとめ ● 巨大なJun for SmalltalkからPharoに移植はじ めたばかりです。 ● 少しずつ移植を進めていきます。 ● ぜひ遊んでやってください ○ http://smalltalkhub.com/#!/~tomooda/Jun4Pharo

×