SlideShare a Scribd company logo
1 of 34
Tokyo HoloLens Meetup vol.2
鈴木 孝明
Sharing Deep Dive
- 30 分で掴み取る HoloLens で最もクールな機能の勘所 -
Name
鈴木 孝明 a.k.a @xin9le
Work
XR Engineer
Award
Microsoft MVP for Visual Studio
and Development Technologies
Web Site
http://xin9le.net
About Me
No-Wall Communication Platform
AR / VR の壁、言語の壁がない
世界中の誰とでも会話ができる空間
SxSW 2017 で 1st デモを披露
開発は 5 名 (エンジニア 2 名) で 1 ヵ月
自分たちが想像した以上に反響があった
Project Sonata
http://connect.sonata.world
Alex Kipman にも知ってもらえた
HoloLens が指す「共有」とは
What’s Sharing
複数人で同一のホログラムを
操作/閲覧する体験
前回 80 台以上で繋いで話題に
同一空間内で
同じ室内で HoloLens を被ってホログラムを見るケース
HoloLens における「Sharing」は基本的にコレ
異なる空間で
地理的に異なる場所にいる (e.g. 別室) ケース
AR / VR をまたぐ体験の場合もこっち
Sharing Patterns
本日扱うのは
こっち
Holograms 240 : Sharing Holograms
Windows Holographic – Academy という公式チュートリアルの一部
とりあえず動かして試したい場合はコレがお手軽
https://developer.microsoft.com/en-us/windows/mixed-reality/holograms_240
今回ピックアップする内容
チュートリアルではあまり表に出てこない基本的な考え方
実装上のポイントやハマりポイント
How To Learn Sharing
Sharing で最も大事な「錨」を下ろそう
World Anchor
位置/姿勢を固定する Component
GameObject に引っ付けると transform をオーバーライド
空間における「ココ!」の決定に利用 (= 地図にピンを刺す的な)
https://docs.unity3d.com/ScriptReference/VR.WSA.WorldAnchor.html
Sharing のキモは「座標系」の共有
複数のユーザーで共通の空間アンカーを設定
それを原点としたローカル座標系として GameObject を扱う
WorldAnchor (= 空間アンカー) #とは
𝑍 𝐴
𝑥 𝐴
𝑂 𝐴
𝑥 𝐵
𝑍 𝐵
𝑂 𝐵
A / B で同じ座標系を共有
𝑍𝑆
𝑂𝑆
𝑥 𝑆
※ 実際は 3 次元だけど便宜上 2 次元で表現
共有座標系で GameObject を扱う
空間アンカーが設定された GameObject の子要素とする
localPosition / localRotation で相対座標として位置/姿勢を制御
双方向通信による変更通知
ネットワークを介して位置/姿勢をリアルタイムに通知/反映
HoloToolkit-Unity の SharingService.exe がサーバーとして機能
オブジェクト共有の仕組み
var anchor = gameObject.AddComponent<WorldAnchor>(); // 空間アンカーを設置
if (!anchor.isLocated) // 即座に空間アンカーが設定されないときは変更を監視
{
WorldAnchor.OnTrackingChangedDelegate handler = null;
handler = (_, located) =>
{
if (!located) return;
anchor.OnTrackingChanged -= handler;
};
anchor.OnTrackingChanged += handler;
}
How To Add
var anchor = gameObject.GetComponent<WorldAnchor>();
if (anchor != null)
DestroyImmediate(anchor); // 普段使わないコレを使うらしい
How To Remove
空間アンカーの前回値保持
Previous Value Holding
WorldAnchorStore
ローカルストレージに空間アンカーをシリアライズ
[Key : 名前 / Value : WorldAnchor] の辞書型ストレージ
メリット / デメリット
アプリを再起動しても高速に空間アンカーを復帰させられる
保存/読み込みが別空間で行われると全く使い物にならない
前回値保持の仕組み
// 非同期に取得する必要があるので若干めんどくさい
WorldAnchorStore.GetAsync(store =>
{
this.AnchorStore = store; // プロパティなどに保持
var anchor = store.Load(name, gameObject); // 前回値読み込み
});
// 名前と空間アンカーをペアにして保存
var anchor = gameObject.AddComponent<WorldAnchor>();
var name = "何か一意な名称";
this.AnchorStore.Save(name, anchor);
How To Implement
空間アンカーを他のユーザーと共有する
Share World Anchor
WorldAnchorTransferBatch
空間アンカーに関する情報を丸ッと byte 配列にシリアライズ
ネットワーク経由で全ユーザーに送信してデシリアライズ
位置合わせのアルゴリズム
WorldAnchorTransferBatch が内部で何をしているのかは不明
空間メッシュ / 特徴点 / 空間アンカーを使って計算している予感
空間アンカー共有の仕組み
var batch = new WorldAnchorTransferBatch();
batch.AddWorldAnchor(anchor.name, anchor);
var buffer = new List<byte>(); // ここにシリアライズ結果を入れてもらう
WorldAnchorTransferBatch.ExportAsync(batch, x => buffer.AddRange(x), x =>
{
const int minAnchorDataSize = 100000; // 適当に最低保証値を設定
if (x != SerializationCompletionReason.Succeeded) return;
if (buffer.Count <= minAnchorDataSize) return;
// 空間アンカーの共有のために buffer をサーバーに送信したり
});
How To Serialize
// data (byte[]) : 何らかの方法で手に入れた空間アンカー情報
WorldAnchorTransferBatch.ImportAsync(data, (reason, batch) =>
{
if (reason != SerializationCompletionReason.Succeeded) return;
if (!batch.GetAllIds().Any()) return; // 空間アンカー情報が含まれるか
var name = batch.GetAllIds().First(); // 最初のひとつを使うとする
batch.LockObject(name, gameObject); // 設置したい GameObject に適用
});
How To Deserialize
小さ過ぎるデータサイズ
シリアライズ結果が小さいとデシリアライズに失敗しやすい
HoloToolkit-Unity のサンプルでは 100 KB を最低保証値としている
滅多に成功しない保存/読み込み
まずまずシリアライズに全然成功しない #成功率 10 % 未満なのでは
データサイズが一定以上あってもデシリアライズに失敗しまくる
成功するまでリトライするような地道な実装が必要
ハマりポイント #1
大き過ぎるデータサイズ
100 KB どころか簡単に 10 MB とか超えてくる
弊社内で実験したときは 50 MB を超えたことも
バカにならないデータ転送量
50 MB を全ユーザーにブロードキャストするとか危険の極み
海外でデモするときレンタル Wi-Fi (500 MB/day) とかだと即死
相当な実装上の工夫と安定した Wi-Fi 環境が必須
ハマりポイント #2
保存/読み込みが超絶遅い
シリアライズ / デシリアライズにそれぞれ 30 秒かかるとかザラ
1 分以上待って失敗とかもザラで圧倒的イラ壁
圧倒的デバッガビリティの低さ
Sharing の検証は実機を使って部屋中を動き回る必要がある
にも関わらずデバッグ時は PC にケーブルを繋いでないとダメ
そしてエミュレーターは何の役にも立たない…
ハマりポイント #3
ちょっとした余談
Additional Talk
Pros
Sharing はもちろん、音声通信など豊富な機能が用意されている
クライアント実装だけに集中して開発できる
Cons
カスタマイズ性が一切なく、ボトルネックになった際に対処不能
(簡単に) スケールアウトできないので少人数利用に限られる
自前 API がある場合、それと異なる通信の口を持つことになる
SharingService.exe の是非
SharingService.exe 不採用
サーバー側の開発は得意分野なので自由度を得る方が重要
MagicOnion を採用
弊社 CTO (@neuecc) 謹製の gRPC Wrapper ライブラリ
HTTP/2 ベースの通信なので非常に高速 #なハズ
Project Sonata は gRPC を Unity で動作させた世界初の公開事例
MessagePack for C# によりバイナリのサイズ/生成速度とも最適化
Grani の出した答え
これだけは覚えて帰りましょう
Today’s Summary
本日のまとめ
共有座標系
相対座標操作
同一空間内
かどうか考慮 注意点多し
Grani さん
頑張ってます
空間アンカー 前回値保持 空間アンカー
の共有
Project Sonata
Sharing に夢を見ても
甘く見るな
Grani leads VR/AR/MR future using C#!!
Thank you

More Related Content

What's hot

Mesh tensorflow
Mesh tensorflowMesh tensorflow
Mesh tensorflowkuroko
 
TensorFlow Operation 作ってみた
TensorFlow Operation 作ってみたTensorFlow Operation 作ってみた
TensorFlow Operation 作ってみたTakuya Sakamoto
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ ExtensionsKouji Matsui
 
effective modern c++ chapeter36
effective modern c++ chapeter36effective modern c++ chapeter36
effective modern c++ chapeter36Tatsuki SHIMIZU
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方Yoshifumi Kawai
 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflowionis111
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由kikairoya
 
知って得するC#
知って得するC#知って得するC#
知って得するC#Shota Baba
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode ContractsYoshifumi Kawai
 
Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16Mitsuru Kariya
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかYuki Miyatake
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ信之 岩永
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しようUnity Technologies Japan K.K.
 
Async design with Unity3D
Async design with Unity3DAsync design with Unity3D
Async design with Unity3DKouji Hosoda
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングKohsuke Yuasa
 

What's hot (20)

Unityで覚えるC#
Unityで覚えるC#Unityで覚えるC#
Unityで覚えるC#
 
Mesh tensorflow
Mesh tensorflowMesh tensorflow
Mesh tensorflow
 
TensorFlow Operation 作ってみた
TensorFlow Operation 作ってみたTensorFlow Operation 作ってみた
TensorFlow Operation 作ってみた
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ Extensions
 
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
 
effective modern c++ chapeter36
effective modern c++ chapeter36effective modern c++ chapeter36
effective modern c++ chapeter36
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
 
Emcpp item31
Emcpp item31Emcpp item31
Emcpp item31
 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflow
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
Effective modern-c++#9
Effective modern-c++#9Effective modern-c++#9
Effective modern-c++#9
 
知って得するC#
知って得するC#知って得するC#
知って得するC#
 
emc++ chapter32
emc++ chapter32emc++ chapter32
emc++ chapter32
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode Contracts
 
Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
 
Async design with Unity3D
Async design with Unity3DAsync design with Unity3D
Async design with Unity3D
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
 

Similar to Sharing Deep Dive

Azure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたいAzure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたいTakahiro Miyaura
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性 Mr. Vengineer
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念Masahito Zembutsu
 
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Masahito Zembutsu
 
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...Takahiro Miyaura
 
Stormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPIStormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPIAdvancedTechNight
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 TipsTakaaki Suzuki
 
World Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになったWorld Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになったTakahiro Miyaura
 
PUN2 × OculusQuest でハンドトラッキング同期実装(プロジェクト公開しました)
PUN2 × OculusQuest でハンドトラッキング同期実装(プロジェクト公開しました)PUN2 × OculusQuest でハンドトラッキング同期実装(プロジェクト公開しました)
PUN2 × OculusQuest でハンドトラッキング同期実装(プロジェクト公開しました)尾上 兼透
 
今改めて見る Plane finding
今改めて見る Plane finding今改めて見る Plane finding
今改めて見る Plane findingTakahiro Miyaura
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio CodeAkira Inoue
 
2007 10 27_fsij_xc-tokai
2007 10 27_fsij_xc-tokai2007 10 27_fsij_xc-tokai
2007 10 27_fsij_xc-tokaiTom Hayakawa
 
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニックOpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニックEtsuji Nakai
 
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)Koki Natsume
 
Mixed Reality Toolkit V2におけるマルチデバイス対応 ~ Azure Spatial Anchorsとphotonによるシェアリング...
Mixed Reality Toolkit V2におけるマルチデバイス対応~ Azure Spatial Anchorsとphotonによるシェアリング...Mixed Reality Toolkit V2におけるマルチデバイス対応~ Azure Spatial Anchorsとphotonによるシェアリング...
Mixed Reality Toolkit V2におけるマルチデバイス対応 ~ Azure Spatial Anchorsとphotonによるシェアリング...Takahiro Miyaura
 
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
Hyperledger Hands-on 2019-03-30 @ Singularity HIVEHyperledger Hands-on 2019-03-30 @ Singularity HIVE
Hyperledger Hands-on 2019-03-30 @ Singularity HIVEK Kimura
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
DockerクイックツアーEtsuji Nakai
 

Similar to Sharing Deep Dive (20)

Azure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたいAzure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたい
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性
 
はじめようARCore
はじめようARCoreはじめようARCore
はじめようARCore
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
 
Android T2 on cloud
Android T2 on cloudAndroid T2 on cloud
Android T2 on cloud
 
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
 
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
 
Stormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPIStormの注目の新機能TridentAPI
Stormの注目の新機能TridentAPI
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
World Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになったWorld Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになった
 
OpenStack Updates
OpenStack UpdatesOpenStack Updates
OpenStack Updates
 
PUN2 × OculusQuest でハンドトラッキング同期実装(プロジェクト公開しました)
PUN2 × OculusQuest でハンドトラッキング同期実装(プロジェクト公開しました)PUN2 × OculusQuest でハンドトラッキング同期実装(プロジェクト公開しました)
PUN2 × OculusQuest でハンドトラッキング同期実装(プロジェクト公開しました)
 
今改めて見る Plane finding
今改めて見る Plane finding今改めて見る Plane finding
今改めて見る Plane finding
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 
2007 10 27_fsij_xc-tokai
2007 10 27_fsij_xc-tokai2007 10 27_fsij_xc-tokai
2007 10 27_fsij_xc-tokai
 
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニックOpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック
OpenStackをさらに”使う”技術 - OpenStack&Docker活用テクニック
 
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
 
Mixed Reality Toolkit V2におけるマルチデバイス対応 ~ Azure Spatial Anchorsとphotonによるシェアリング...
Mixed Reality Toolkit V2におけるマルチデバイス対応~ Azure Spatial Anchorsとphotonによるシェアリング...Mixed Reality Toolkit V2におけるマルチデバイス対応~ Azure Spatial Anchorsとphotonによるシェアリング...
Mixed Reality Toolkit V2におけるマルチデバイス対応 ~ Azure Spatial Anchorsとphotonによるシェアリング...
 
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
Hyperledger Hands-on 2019-03-30 @ Singularity HIVEHyperledger Hands-on 2019-03-30 @ Singularity HIVE
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 

More from Takaaki Suzuki

5 分で学ぶ Interpolated String Handler
5 分で学ぶ Interpolated String Handler5 分で学ぶ Interpolated String Handler
5 分で学ぶ Interpolated String HandlerTakaaki Suzuki
 
C# における Redis 徹底活用
C# における Redis 徹底活用C# における Redis 徹底活用
C# における Redis 徹底活用Takaaki Suzuki
 
30min Serverless xTuber
30min Serverless xTuber30min Serverless xTuber
30min Serverless xTuberTakaaki Suzuki
 
Live Coding で学ぶ C# 7
Live Coding で学ぶ C# 7Live Coding で学ぶ C# 7
Live Coding で学ぶ C# 7Takaaki Suzuki
 
4 Colors Othello’s Algorithm
4 Colors Othello’s Algorithm4 Colors Othello’s Algorithm
4 Colors Othello’s AlgorithmTakaaki Suzuki
 
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
4 Colors Othello’s Algorithm @仙台 IT 文化祭 20174 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017Takaaki Suzuki
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Takaaki Suzuki
 

More from Takaaki Suzuki (20)

5 分で学ぶ Interpolated String Handler
5 分で学ぶ Interpolated String Handler5 分で学ぶ Interpolated String Handler
5 分で学ぶ Interpolated String Handler
 
C# における Redis 徹底活用
C# における Redis 徹底活用C# における Redis 徹底活用
C# における Redis 徹底活用
 
30min Serverless xTuber
30min Serverless xTuber30min Serverless xTuber
30min Serverless xTuber
 
Tetris Algorithm
Tetris AlgorithmTetris Algorithm
Tetris Algorithm
 
C# 7 New Features
C# 7 New FeaturesC# 7 New Features
C# 7 New Features
 
Live Coding で学ぶ C# 7
Live Coding で学ぶ C# 7Live Coding で学ぶ C# 7
Live Coding で学ぶ C# 7
 
C# 7 Current Status
C# 7 Current StatusC# 7 Current Status
C# 7 Current Status
 
4 Colors Othello’s Algorithm
4 Colors Othello’s Algorithm4 Colors Othello’s Algorithm
4 Colors Othello’s Algorithm
 
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
4 Colors Othello’s Algorithm @仙台 IT 文化祭 20174 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
 
DeclarativeSql
DeclarativeSqlDeclarativeSql
DeclarativeSql
 
Sevens Algorithm
Sevens AlgorithmSevens Algorithm
Sevens Algorithm
 
Friendly
FriendlyFriendly
Friendly
 
WPF Interoperability
WPF InteroperabilityWPF Interoperability
WPF Interoperability
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
 
酒の肴はC# vNext
酒の肴はC# vNext酒の肴はC# vNext
酒の肴はC# vNext
 
Async History in .NET
Async History in .NETAsync History in .NET
Async History in .NET
 
SignalR Tune-up
SignalR Tune-upSignalR Tune-up
SignalR Tune-up
 
Twilioと.NET
Twilioと.NETTwilioと.NET
Twilioと.NET
 
Programmer's Brain
Programmer's BrainProgrammer's Brain
Programmer's Brain
 
What's MVP
What's MVPWhat's MVP
What's MVP
 

Recently uploaded

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Recently uploaded (10)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

Sharing Deep Dive