なるように、なる

徒然なつぶやき、備忘録です。

NDI on WSL(Windows Subsystem for Linux)

WSLでUSBカメラ画像を使いたかったのですが、WSLは現状デバイスアクセスできないということだったので、NDI(Network Device Interface)でWinからWSLに画像を送り込む環境を構築しました、という話。

 

ポイント

通常、NDI ReceiverはマルチキャストDNS(mDNS)でSenderを自動認識するのだが、WSLはmDNSに対応していない。そのため、NDI Discovery Serverを利用し、ReceiverとSenderを接続する。

 

環境構築

  1. WSL環境の構築:省略
  2. NDI SDKのWSLへのインストール:省略
  3. NDI SDKのWinへのインストール:省略
  4. NDI ToolsのWinへのインストール
    SDKとは別途インストールする必要がある。
      -> https://ndi.tv/tools/
  5. NDI Access Manager for LinuxのWSLへのインストール
    NDI ToolsはWin版しか提供していない。その代わりのもの。
      -> http://www.sienna-tv.com/ndi/accessmanager.html
          リクエストするとメールでzipのダウンロードアドレスが送られてくる。

接続手順

  1. NDI Access ManagerでNDI Discovery Serverを利用するように設定(Win)
    C:\Program Files\NewTek\NDI 4 Tools\Access Manager\
      Application.NdiGroupEditor.exe

    f:id:Shampagne:20200201232654j:plain

  2. NDI Access ManagerでNDI Discovery Serverを利用するように設定(WSL)
    以下のバイナリを叩く。
    /PATH_TO_INSTALL/Access Manager Ubuntu$ ./NDI\ Access\ Manager

    f:id:Shampagne:20200201233832j:plain

    ブラウザからアクセスする(事前にポート9091を開放しておく)

    f:id:Shampagne:20200201233940p:plain

  3. NDI Discovery Serverを起動する(Win)
    C:\Program Files\NewTek\NDI 4 SDK\Bin\Utilities\x64\
    NewTek NDI Discovery Service.exe
  4. 送受信アプリを起動する
    私の場合は、
    WSL: Receiver
      /PATH_TO_INSTALL/NDI SDK for Linux/examples/C++/NDIlib_Recv
    WIN: Sender
      C:\Program Files\NewTek\NDI 4 Tools\Test Patterns

    上手くいってると疎通する。

    f:id:Shampagne:20200201234816j:plain

     

NDIビギナーなので、誤りなどありましたらご指摘ください。

RealSense T265 環境構築メモ

www.youtube.com

 

SDKのインストール

 DL元:https://www.intelrealsense.com/developers#firmware

 インストール先(任意):C:\Program Files (x86)\Intel RealSense SDK 2.0

 

バイスの接続確認

Intel RealSense Viewer」で接続確認する。

 

サンプルコードを動かす

「Examples for Intel RealSense SDK 2.0」で、コードと挙動を把握する。

  1. rs-ar-basic : cordinate translation(ここのReadMeは必ず読むこと)
  2. pose : single thread
  3. pose-predict : call back
  4. trajectory

開発環境構築(VisualStudio2015)

  • additional include dir
    $(RSSDK2_DIR)include\librealsense2
  • additional lib dir
    $(RSSDK2_DIR)lib\x64
  • additional lib
    realsense2.lib
  • PATHの追加
    C:\Program Files (x86)\Intel RealSense SDK 2.0\bin\x64

取得できるデータ(ReadMeのコピペ)

  • **Translation** (in meters, relative to initial position)
  • **Velocity** (in meter/sec)
  • **Rotation** (as represented in quaternion rotation, relative to initial position)
  • **Angular velocity** (in radians/sec)
  • **Angular acceleration** (in radians/sec^2)
  • **Tracker confidence** (pose data confidence 0x0 - Failed, 0x1 - Low, 0x2 - Medium, 0x3 - High)
  • **Mapper confidence** (pose data confidence 0x0 - Failed, 0x1 - Low, 0x2 - Medium, 0x3 - High)

メモ

  • rs2::video_frame
    メンバ変数に保持しようとすると死亡した

サンプル

   https://github.com/thinpedelica/t265t

TouchDesignerの勉強方法

はじめに

TouchDesigner(TD)をはじめて2か月が経ちました。
ほんとに良い感じの絵が簡単に出るので、驚きの日々を過ごしています。
(自分はこれまでopenFrameworksを使ってきたのですが、「なぜ、あんなにコードを書ける人がTDに移ったんだろう?」というモヤモヤがあったのですが、自分で使ってみたら納得しました)

今日はこの2か月のまとめとして、自分が辿ったTDの学習方法(というかお世話になった方々)を紹介します。
いつも通り、誰かのお役に立てばいいなぁ、と。

 

おすすめ学習方法

コーディングを覚えるのに比べたら圧倒的に簡単に使えるTDですが、
それでもいきなりでは何していいか分からないと思います。自分はそうでした。
SOP?CHOP?って感じでした。

なので、自分の経験を踏まえて、おすすめの学習フローをご紹介します。

  1. TDSWの初級ワークショップに参加する
  2. 比嘉先生の資料でベンキョする
  3. 日本語のビデオチュートリアルをやる
  4. 英語のビデオチュートリアルをやる

TDSWの初級ワークショップに参加する

tdsw.peatix.com

TDのお作法、オペレータ(op)の基本的な使い方がわずか2~3時間で学べます。
予習不要。親切丁寧にバナナを回させてくれます。

 

比嘉先生の資料でベンキョする

station.backspace.tokyo

これ見れちゃっていいのでしょうか?という感がありますが、大先生の講義資料です。
テキスト&ビデオなので、自分のペースで理解していくことができます。
SOPの基礎とかGPUインスタンシングなどの基礎を、ビデオチュートリアルに臨む前に抑えておく。

 

日本語のビデオチュートリアルをやる

www.youtube.com

英語のビデオチュートリアルにトライする前に、日本語でチュートリアル慣れしておく。
Mutek2018のチュートリアルが最高。
英語分からなくてもビデオチュートリアル出来るけど、やっぱり日本語で説明聞きながらのほうが理解し易く進めやすい。

以下がおすすめ。

英語のビデオチュートリアルをやる

チュートリアルに慣れたら、英語のチュートリアルも(たぶんn)出来るようになってるはず。英語分からなくても、絶対トライしたほうが良いです。有益過ぎます。

以下、おすすめを通り越した必修科目。

DERIVATIVE公式

www.derivative.ca

bileam tschepe

www.youtube.com

Matthew Ragan

www.youtube.com

 

おわりに

チュートリアルをアップしてくださっている方々や、TDSW運営に感謝いたします。
自分も今後コミュニティに貢献できるよう、がんばります。

自分の2か月の成果物も置いておきます。

www.youtube.com

 

https://github.com/thinpedelica/TouchYoga

 

Enjoy!

TouchDesingerでヨガ

TouchDesignerでYogaの姿勢推定しました。

youtu.be

去年はopenFrameworks、一昨年はvvvvで作成したものです。
過去と比べるとだいぶ見栄えが良くなったと思います。
TDのおかげです。

3Dモデルを描画する(ofxAssimpModelLoader)

気付いたら(気付いてたけど)最後にブログを書いてから半年過ぎてしまっていました。なので最近やった3Dモデルの描画についてちょっと書いてみます。

きっかけ

先日、テクノ法要のVJを観ていて自分も神様を描画したくなり、3Dモデルの描画にトライしました。アドオンのofxAssimpModelLoaderをサンプル通りに使えばできたのですが、1点だけハマった箇所があったので記録しておきます(調べたけど出てこなかったので)。誰かのお役にたちますように。。

※コードの全文はgithubにあげてます。

※3Dモデル初心者なので、間違ってたら(正しいアプローチじゃないとか)あったらゴメンナサイ

課題

 

3DモデルをdrawVertices()やdrawWireframe()で描画すると、テクスチャの色がついてて、コレジャナイ感がつよい。

対応

描画の前にdisableTextures()をコールする。

これで思った通りのワイヤフレーム(や頂点)が描画された。

で、出来た絵がこれ。すき。

f:id:Shampagne:20190708224854j:plain

 

 

 

 

Flyng Tokyo #21

Kyleさんのワークショップに参加してきました。
特に印象に残ったことをメモに残しておきます。


What is art?
  • 関係性を問い直すこと、問い直す機会を与えるもの
  • コンセプトが一番大事
  • artと他のもの(デザイン、広告など)との違いを意識しておくとよい
    (ただし、"違い"は0/1ではない)
Machine Learning
  • 機械化(自動化)により淘汰され、残るものは人と人との関係性があるもの
  • AIが判断や推定をしたりすることや、AIか人間か見分けがつかなくなっていくことに、驚きとともに不安などの否定的な気持ちを感じる人がいる。
  • AIと人間との関係性について「問い」を発信し、(説明的ではなく)人に考えてもらえるような作品により、理解に繋げていきたい。

 

あと、広告代理店などへ作品を提案する過程や見積書など、普通じゃ絶対見れないものを見せてもらえて、ぬぉ!っていう感じでしたん。

あとあと、Kyleさんはめちゃめちゃ優しくてフレンドリーな人でした。
日頃ライブラリ使わせてもらっている感謝を伝えられて感無量。

FFTとちょっとだけ仲良くなる夏

今年の夏はFFTの気持ちを理解することに費やした夏でした。
まだまだ片思いのままなので、これからもアプローチをつづけます。。

Box

youtu.be

「タイムベンド」@かずち (カズチ)様

https://github.com/thinpedelica/FFTTS/tree/master/FftBox/FftBox/src

Triangle

youtu.be

「Floor_Monster」@MFP【Marron Fields Production】様

https://github.com/thinpedelica/FFTTS/tree/master/FftTriangle/FftTriangle/src

GPUCircle

youtu.be

「Homework」@MFP【Marron Fields Production】様

https://github.com/thinpedelica/FFTTS/tree/master/FftGpuCircle/FftGpuCircle

Grid

youtu.be

「Wave_Domination」@MFP【Marron Fields Production】様

https://github.com/thinpedelica/FFTTS/tree/master/FftGrid/FftGrid/src