狠狠撸

狠狠撸Share a Scribd company logo
Shinjuku.rs #3
Visualization System in Rust
- - - Rustで作る可視化サーバの紹介 - - -
Author: Toshihiro YAMAGUCHI
Date: 2019-03-12
??紹介
?? 聖弘 (やまぐち としひろ)
Twitter: @toshihiro_yama
興味のあること
機械学習、データマイニング
セキュリティ技術
OpenGLによる3D CG (今?はこちらの話)
最近、Happy Hacking Keyboardの??流を始めました。
Shinjuku.rs #3 :: Visualization System in Rust 2
可視化システムって何ですか?
CTFという、セキュリティ技術のイベントをご存知でしょうか?
そこでは、イベントの可視化システムが活躍しています。
画像引?: 左上から反時計回りに、Nirvana改、Etnoscope、Amaterasu零、Trend Micro CTF 可視化サーバ
Shinjuku.rs #3 :: Visualization System in Rust 3
可視化システムの役割
CTFの競技状況を?える化する
理由?競技の状況がわからないから
?える化する例
各チームの得点?ランキング
各チームが解けた問題を表?
(Nice to Have)
各チームが出しているネットワークパケットを表?
問題がどこまで解けたのか表?
問題が解けると出現する、カッコいいエフェクト
etc, etc, etc
Shinjuku.rs #3 :: Visualization System in Rust 4
可視化システムにRustを使うと得られる恩恵
処理速度が速い
60 fpsを維持するための?速な処理が可能。
ガベージコレクションがない
GCによる画?のカクツキが起きない。
クロスプラットフォームで動作するアプリが作りやすい
開発はLinux、本番はWindowsという環境でも、Rustのコ
ンパイラでどちらでも動作可能なアプリを作成可能。
さらにSDL2 + OpenGLは多くの環境で動作可能。
新規ライブラリの導?が楽
Crateのおかげで導?が簡単。
たとえクロスプラットフォームな開発環境でも、多くの
ライブラリが両?の環境で動いてくれる。
Shinjuku.rs #3 :: Visualization System in Rust 5
OpenGLでGUIを作るのに便利な「Dear ImGui」はおススメ
「imgui-sdl2」Crateで導?も簡単。
Shinjuku.rs #3 :: Visualization System in Rust 6
実装するのに苦労したこと
Shinjuku.rs #3 :: Visualization System in Rust 7
C++で作ってたときの話
よくあるOpenGLによる描画システム
次のタイミングで3Dオブジェクトがどこにいるべきかを計算
するスレッドと、描画スレッドが交互に動作。
Shinjuku.rs #3 :: Visualization System in Rust 8
C++で作ってたときの話
外部コマンドを受け付けるスレッドも追加
外部コマンド受信?にサーバ?スレッドが登場。
イベント処理?スレッドも登場。
Shinjuku.rs #3 :: Visualization System in Rust 9
Rustでこれを実装しようとすると
Arc<Mutex<*>>地獄になる。
様々なものをArc<Mutex<*>>しないと、計算スレッドと
描画スレッドの間を?き来できない。
終いにはArc<Mutex<Vec<Arc<Mutec<*>>>>>とか登場
する。 (括弧の数が合わなくて数えたりもする。)
もうArc<Mutex<*>>を?たくなくなる。
Shinjuku.rs #3 :: Visualization System in Rust 10
Slackのコミュニティでいただいた?葉で?から鱗
Arc-Mutex関連問題の最中にいただいた?葉
ただ、正直なところMutexに頼らないよう構造を変えるのが
ベストだと思います
アドバイスありがとうございました。
??のRustaceanが救われました。
Shinjuku.rs #3 :: Visualization System in Rust 11
現在のフロー
いったんスレッドやめました。
私のレベルが上がったら再チャレンジします。
HTTPサーバは別スレッドで動作するが、やりとりするデータ
がイベントデータだけなので影響が少ない。
Shinjuku.rs #3 :: Visualization System in Rust 12
教訓
マルチスレッドな環境でもデータを便利に扱えるような、
そんな抽象的なライブラリを作れる?ならともかく、
初?者にスレッドが乱?するプログラムは???
最初は、可能な限りスレッドがいらない構造にするのもアリ。
Shinjuku.rs #3 :: Visualization System in Rust 13
Thank You!
Shinjuku.rs #3 :: Visualization System in Rust 14

More Related Content

Similar to 20190312 Visualization System in Rust (20)

Visual slam
Visual slamVisual slam
Visual slam
Takuya Minagawa
?
滨辞罢诊断入门
滨辞罢诊断入门滨辞罢诊断入门
滨辞罢诊断入门
黒 林檎
?
SECCON CTFの取り組み
SECCON CTFの取り組みSECCON CTFの取り組み
SECCON CTFの取り組み
Kensuke_Nezu
?
【Unite 2017 Tokyo】ゲームAI?ゲームデザインから考えるゲームの過去?現在?未来
【Unite 2017 Tokyo】ゲームAI?ゲームデザインから考えるゲームの過去?現在?未来【Unite 2017 Tokyo】ゲームAI?ゲームデザインから考えるゲームの過去?現在?未来
【Unite 2017 Tokyo】ゲームAI?ゲームデザインから考えるゲームの過去?現在?未来
Unity Technologies Japan K.K.
?
M5ATOM S3とShiftr.ioで 非接触温度センサの値をネットに流してみた
M5ATOM S3とShiftr.ioで 非接触温度センサの値をネットに流してみたM5ATOM S3とShiftr.ioで 非接触温度センサの値をネットに流してみた
M5ATOM S3とShiftr.ioで 非接触温度センサの値をネットに流してみた
MinoruInoue2
?
いわゆるマジコンを巡る法的议论の现状
いわゆるマジコンを巡る法的议论の现状いわゆるマジコンを巡る法的议论の现状
いわゆるマジコンを巡る法的议论の现状
IGDA Japan
?
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM,INC
?
搁罢ミドルウエア活用について
搁罢ミドルウエア活用について搁罢ミドルウエア活用について
搁罢ミドルウエア活用について
Yuki Suga
?
相互作用系の科学と人工知能科学(ゲームAI连続セミナー第3回付録II)
相互作用系の科学と人工知能科学(ゲームAI连続セミナー第3回付録II)相互作用系の科学と人工知能科学(ゲームAI连続セミナー第3回付録II)
相互作用系の科学と人工知能科学(ゲームAI连続セミナー第3回付録II)
Youichiro Miyake
?
CTF, What's in it for me?
CTF, What's in it for me?CTF, What's in it for me?
CTF, What's in it for me?
Hiromu Yakura
?
事例発表 小山
事例発表 小山事例発表 小山
事例発表 小山
takepu
?
データ駆动型実世界计测におけるセンサ配置とデータ収集を支援するシステムの开発(贰颁2019)
データ駆动型実世界计测におけるセンサ配置とデータ収集を支援するシステムの开発(贰颁2019)データ駆动型実世界计测におけるセンサ配置とデータ収集を支援するシステムの开発(贰颁2019)
データ駆动型実世界计测におけるセンサ配置とデータ収集を支援するシステムの开発(贰颁2019)
sugiuralab
?
インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編
Toru Makabe
?
ストリーム処理と厂别苍蝉辞谤叠别别
ストリーム処理と厂别苍蝉辞谤叠别别ストリーム処理と厂别苍蝉辞谤叠别别
ストリーム処理と厂别苍蝉辞谤叠别别
Daisuke Tanaka
?
スマートエスイーセミナー:机外学习応用システムパターンの例
スマートエスイーセミナー:机外学习応用システムパターンの例スマートエスイーセミナー:机外学习応用システムパターンの例
スマートエスイーセミナー:机外学习応用システムパターンの例
HironoriTAKEUCHI1
?
IoTセキュリティ概観 (供養)
IoTセキュリティ概観 (供養)IoTセキュリティ概観 (供養)
IoTセキュリティ概観 (供養)
trmr
?
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805
swkagami
?
生成础滨?尝尝惭システムのセキュリティ:生成础滨?尝尝惭の础滨伦理と机械学习システムセキュリティセッション
生成础滨?尝尝惭システムのセキュリティ:生成础滨?尝尝惭の础滨伦理と机械学习システムセキュリティセッション生成础滨?尝尝惭システムのセキュリティ:生成础滨?尝尝惭の础滨伦理と机械学习システムセキュリティセッション
生成础滨?尝尝惭システムのセキュリティ:生成础滨?尝尝惭の础滨伦理と机械学习システムセキュリティセッション
Nobukazu Yoshioka
?
滨辞罢诊断入门
滨辞罢诊断入门滨辞罢诊断入门
滨辞罢诊断入门
黒 林檎
?
SECCON CTFの取り組み
SECCON CTFの取り組みSECCON CTFの取り組み
SECCON CTFの取り組み
Kensuke_Nezu
?
【Unite 2017 Tokyo】ゲームAI?ゲームデザインから考えるゲームの過去?現在?未来
【Unite 2017 Tokyo】ゲームAI?ゲームデザインから考えるゲームの過去?現在?未来【Unite 2017 Tokyo】ゲームAI?ゲームデザインから考えるゲームの過去?現在?未来
【Unite 2017 Tokyo】ゲームAI?ゲームデザインから考えるゲームの過去?現在?未来
Unity Technologies Japan K.K.
?
M5ATOM S3とShiftr.ioで 非接触温度センサの値をネットに流してみた
M5ATOM S3とShiftr.ioで 非接触温度センサの値をネットに流してみたM5ATOM S3とShiftr.ioで 非接触温度センサの値をネットに流してみた
M5ATOM S3とShiftr.ioで 非接触温度センサの値をネットに流してみた
MinoruInoue2
?
いわゆるマジコンを巡る法的议论の现状
いわゆるマジコンを巡る法的议论の现状いわゆるマジコンを巡る法的议论の现状
いわゆるマジコンを巡る法的议论の现状
IGDA Japan
?
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM Technology Camp 2018 アドバンストラック4 | スモールスタートの次の一手は?成長できるIoTシステムの実例と回避した...
SORACOM,INC
?
搁罢ミドルウエア活用について
搁罢ミドルウエア活用について搁罢ミドルウエア活用について
搁罢ミドルウエア活用について
Yuki Suga
?
相互作用系の科学と人工知能科学(ゲームAI连続セミナー第3回付録II)
相互作用系の科学と人工知能科学(ゲームAI连続セミナー第3回付録II)相互作用系の科学と人工知能科学(ゲームAI连続セミナー第3回付録II)
相互作用系の科学と人工知能科学(ゲームAI连続セミナー第3回付録II)
Youichiro Miyake
?
CTF, What's in it for me?
CTF, What's in it for me?CTF, What's in it for me?
CTF, What's in it for me?
Hiromu Yakura
?
事例発表 小山
事例発表 小山事例発表 小山
事例発表 小山
takepu
?
データ駆动型実世界计测におけるセンサ配置とデータ収集を支援するシステムの开発(贰颁2019)
データ駆动型実世界计测におけるセンサ配置とデータ収集を支援するシステムの开発(贰颁2019)データ駆动型実世界计测におけるセンサ配置とデータ収集を支援するシステムの开発(贰颁2019)
データ駆动型実世界计测におけるセンサ配置とデータ収集を支援するシステムの开発(贰颁2019)
sugiuralab
?
インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編
Toru Makabe
?
ストリーム処理と厂别苍蝉辞谤叠别别
ストリーム処理と厂别苍蝉辞谤叠别别ストリーム処理と厂别苍蝉辞谤叠别别
ストリーム処理と厂别苍蝉辞谤叠别别
Daisuke Tanaka
?
スマートエスイーセミナー:机外学习応用システムパターンの例
スマートエスイーセミナー:机外学习応用システムパターンの例スマートエスイーセミナー:机外学习応用システムパターンの例
スマートエスイーセミナー:机外学习応用システムパターンの例
HironoriTAKEUCHI1
?
IoTセキュリティ概観 (供養)
IoTセキュリティ概観 (供養)IoTセキュリティ概観 (供養)
IoTセキュリティ概観 (供養)
trmr
?
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805
swkagami
?
生成础滨?尝尝惭システムのセキュリティ:生成础滨?尝尝惭の础滨伦理と机械学习システムセキュリティセッション
生成础滨?尝尝惭システムのセキュリティ:生成础滨?尝尝惭の础滨伦理と机械学习システムセキュリティセッション生成础滨?尝尝惭システムのセキュリティ:生成础滨?尝尝惭の础滨伦理と机械学习システムセキュリティセッション
生成础滨?尝尝惭システムのセキュリティ:生成础滨?尝尝惭の础滨伦理と机械学习システムセキュリティセッション
Nobukazu Yoshioka
?

20190312 Visualization System in Rust