ページ

2013年11月21日木曜日

チューリングパターンが面白い

久々にブログ更新。

「波紋と螺旋とフィボナッチ:数理の眼鏡でみえてくる生命の神秘」(近藤滋 著)という本の書評をネットを徘徊中に目にした。

残念ながら本書は読んでいないけれども、書評を読んで以下のことがわかった。

・動物の体の模様というのは、予め決まっているのでなく、物質の反応の仕方でその時の状況に応じて作り出される、ということを著者の近藤さんは推測した。
・発見のきっかけになったのはアラン・チューリングという人が論文。
・その論文には方程式が載っていて、近藤さんはこの方程式を使って模様をコンピュータ上でシミュレーションしたみた所、どうやらこの方程式は正しいことがわかった。
・上記の方程式で生成されるパターンをチューリングパターンと呼ぶようです。

動物の体の模様が方程式で書き記されていることに、これはスゴイと興奮してしまいました。
さっそくネット上をいろいろと調べてみたら、既にチューリングパターンを実装している人たちを発見。

下のブログの方がC++とopenGLにて実装したものが、わかりやすそうだったのでProcessingに移植してみました。
http://elephnote.com/blog/archives/191(プログラムを参考にさせていただいたブログです)

縄文土器のような模様が浮かび上がってきて楽しい!
これを応用して何か作ってみようと思った。





2013年9月4日水曜日

xtion demo(2)

ユーザートラッキングによるデモを追加しました。
今回はユーザーごとに取得できるピクセルデータを元に映像を生成しています。

この動画、quickTimeを使ってmacの画面を直接キャプチャしてるんですが、openFrameworksのofxQTVideoSaverっていうアドオン使って録画するのが普通っぽいですね。

2013年9月1日日曜日

xtion demo(1)

xtion + OpenNI2 + openFrameworks
による、ユーザートラッキングのデモプログラムを作って見ました。



動画ではわかりにくですが、手のひらに連動して光が動きます。

【書籍】OpenNI 3Dセンサープログラミング

8月30日に知って31日に購入。

OpenNIの日本語情報は限られているので、こういう本が出版されるのは、ありがたい。
mac + openFrameworks + xtionで趣味をプログラムをしているが、この本にはバッチリ、同じ環境での環境構築方法が載っているので、そっちを参照した方が良いと思う。

巻末にOpenNI2、NiTE2のリファレンスも載っている。
公式のプログラマーズガイドを見れば良いんだけど、英語が得意でない人間としては日本語でのリファレンスの方がやっぱり理解しやすいな、と思った。

ちなみにPrimeSense社のcarmineはこの本読んで初めて知った。

認識距離がcarmine1.09では0.35mってのは魅力的で心惹かれた。

2013年8月21日水曜日

mac + xtion + openFrameworks(3)

なんとかxtionでちょっとしたデモを動作させることができた。
以下、動作させた時のメモ。

【環境】

  • MacBookPro Retina, Mid 2012 + osx(10.7.4 / Lion)
  • Xtion Pro Live
  • OpenNI2.2(Beta) + NiTE2.2(Beta)
  • openFrameworks 0.8.0
【前提】
  • openFrameworksは動作していること
  • OpenNIとNiTEはダウンロード済みでサンプルデモが動作していること
【手順】


  1. openFrameworksのプロジェクトジェネレータで空のプロジェクトを作成。
  2. 新しいグループ、includeとlibsを作成
  3. 新しく作ったinculudeグループに${OpenNI2インストールディレクトリ}/Include以下の全ヘッダファイルをプロジェクトに追加。${NiTE2インストールディレクトリ}/include以下の全ヘッダファイルをプロジェクトに追加。
  4. 新しく作ったlibsグループに${OpenNI2インストールディレクトリ}/Redist以下の全ファイルを追加。${NiTE2インストールディレクトリ}/Redist以下の全ファイルをプロジェクトに追加。
  5. TARGETS -> Build Setting -> Search Paths -> Always Search User PathsをYesにする。
  6. TARGETS -> Build Phasesで Add Build Phase する。選択するのはAdd Copy Files。
  7. 追加したPhaseのDestinationを[ Executables ]にする。Subpathは空。ファイル一覧にOpenNI.ini,NiTE.ini,OpenNI2ディレクトリ,NiTE2ディレクトリを追加
  8. /usr/lib配下に${OpenNI2インストールディレクトリ}/Redist以下のダイナミックライブラリを全て移動。
  9. /usr/lib配下に${NiTE2インストールディレクトリ}/Redist以下のダイナミックライブラリを全て移動。
これでopenFrameworksからOpenNI2 SDKで用意されているAPIが叩けるようになった。

ただ手順の8〜9についてだけが実は今でも謎で、最初はCopy Filesにダイナミックライブラリとかも指定していたが、どうにも実行環境にコピーされないようで、実行する度に/usr/libにOpenNI2のライブラリがない、と怒られていた。

仕方なく/usr/libにライブラリを配置したら正しく動作した。
このやり方だと他の環境でOpenNI使った開発環境を作りたい時に上のような手順を踏まないといけないのがダサい。
個人的なopenFrameworksのaddonにしようと思っていたんで、うーん、って感じ。

一番の問題はxcodeへの理解不足なのは理解しているが。

2013年8月8日木曜日

memo : DalekJS

WebのUIテスティングフレームワークの進化が速い。
ちょっと前まではそういうのは、selenium一択ぐらいの勢いだったんだけど、
最近はPhantomJSとかCasperJSとかもいろんなブログで記事を見かけるようになって、
だいぶ事情が変わったように思う。

seleniumとPhantomJSを仕事に絡めて試したことはあるけど、感想は以下のとおり。
  • selenium(web driver)は対応言語も多くて、手慣れた環境ですぐにテストできるのは正直、楽だけども、やっぱりブラウザを起動しちゃうんで正直、遅い。
  • PhantomJSはヘッドレスブラウザでUIテストできる部分はスゴく良いけど、Qtのせいなのかなんなのか、妙な部分動作をすることがあって扱いづらかったのが本音。CasperJSから使うのが正解なんだろうな。

それで今日は偶然、DalekJSという、新しいUIテストフレームワークを知った。
これといった特徴はなさそうだけど、モダンなブラウザには対応しているし、スマフォ向けブラウザでも動作するし、インストールは簡単だし、テストの記述も簡潔っぽい。
今度、試してみよう。
http://dalekjs.com/index.html

JavaScriptの世界はここ数年、もの凄い勢いでいろんなライブラリが出てくるな・・・

2013年8月6日火曜日

mac + xtion + openFrameworks(2)

結局、ofxOpenNI2も実行すると、なぜかデバイスが見つからない、という意味合いのエラーメッセージが出て初期化処理で止まってしまった。

仕方がないので、それなりに情報が出回っているopenNI1.5とNITEの組み合わせで試してみようと思う。
とりあえず、OpenNI1.5のサンプルとNITEのサンプルは動作した。

2013年8月5日月曜日

mac + xtion + openFrameworks

今更ながら、kinect hackをやろうと思って始めたが、開発環境を構築する部分が難しい。
環境は以下のとおり。

mac osx(10.7 Lion)
xtion + openFrameworks 0.7.4 + OpenNI2

アドオンでofxOpenNIを使ってみたが、どうやらkinect専用らしく、openFrameworksからはうまく認識してくれない。
ターミナルからOpenNI2のサンプルは正常に動作しているんで何か方法はあるハズだが・・・

明日はofxOpenNI2を試してみよう。
ダメならもうアドオンは諦めてOpenNIをopenFrameworksから直叩きするしかない。