tag:blogger.com,1999:blog-29507259023531564312024-03-06T05:48:59.936+09:00Takeshi MiyajimaAnonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-2950725902353156431.post-31844769360982701652015-11-10T18:40:00.003+09:002015-11-10T18:44:40.459+09:00ofxNI2の使い方昔のメモをとりあえず、こちらに。<br />
xtionをoFで使うのであれば、今だとこちらaddonが簡単だと思うので導入メモを残す。<br />
https://github.com/satoruhiga/ofxNI2<br />
<br />
1. ofxNI2をダウンロードしてoFのaddOnsフォルダにコピー。普通のアドオンと一緒。<br />
2. openNI2のドライバがアドオンに同梱されているのでそれらを実行時に読み込まれる場所にコピーするシェルを設定する。<br />
2-1. プロジェクトの画面(?)のTARGETSを開いて、Build Phasesを選択。<br />
2-2. 左上の+ボタンを押して(意外とわかりづらい)「New Run Script Phase」を選択する。それで Run ScriptgScriptが追加される筈。<br />
2-3. ofxNI2のreadmeにあるRun Scriptをコピペ。<br />
<br />
2.の手順は文章だけだとわかりづらいのでスクリーンショットも。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigOxI9G0JCA7kJ30G7x2lbTkb8Uq6PovzvxzvqoaPBaEsAgDBMGge6qzjTf0Nu1GTXqvG2XybauPx5n8SkUpaA92tQck2gstc199l_V7qstN80AgDqTZM6GAzL2X_8NdR6fVEQYc7QLTl4/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-11-10+18.37.13.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="452" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigOxI9G0JCA7kJ30G7x2lbTkb8Uq6PovzvxzvqoaPBaEsAgDBMGge6qzjTf0Nu1GTXqvG2XybauPx5n8SkUpaA92tQck2gstc199l_V7qstN80AgDqTZM6GAzL2X_8NdR6fVEQYc7QLTl4/s640/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-11-10+18.37.13.png" width="640" /></a></div>
<br />
<br />
それにしてもxtion、中古の値段がひどい・・・Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-84927754842934724862015-06-16T11:48:00.004+09:002015-06-16T11:51:01.458+09:00忘備録2(パーリンノイズ編)ベジェ曲線での何本か引いてみて面白かったので次はパーリンノイズを組み合わせて何か出来ないか、というテーマで作ったのが以下の画像です。<br />
<br />
「ジェネレイティブ・アート」という、ストレートな題名の本があるのですが、その中でもパーリンノイズに触れられていて、それを読んだ時には「丁度いい塩梅の適度な乱数」程度のふんわりとした理解でいました。<br />
<br />
それでふんわり理解すぎたのでもうちょい理解したいと思って作ったのが下の画像です。<br />
基本的には画像のx軸とy軸をパーリンノイズの元にして、そのノイズを元に縦方向へベジェ曲線を引く、ということをやっています。<br />
<br />
ちょっとした滝の流れみたいで個人的には気にいってます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOZJjkdY7Wp9Ony0tYoa4hsJ2GyySXT7pd3sLzNVn9xTzeCtY9QIbVXELirmjYibjaU0kE-T3aV1U5tasPjlxY_eMlZqxPRpBMuv7eZisPjgJgri4f0DAHLqUK-uoZRtQbdvyoHH3WpSwo/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-06-04+22.11.46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOZJjkdY7Wp9Ony0tYoa4hsJ2GyySXT7pd3sLzNVn9xTzeCtY9QIbVXELirmjYibjaU0kE-T3aV1U5tasPjlxY_eMlZqxPRpBMuv7eZisPjgJgri4f0DAHLqUK-uoZRtQbdvyoHH3WpSwo/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-06-04+22.11.46.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGU8p3qrsPpAnBXmYYJyYif23XwIub7m-FH8PC34ldjuB6B8wl8zY7KGCv2vi3wXv0wbXVgIQsxzHznhWFDmO-c307opRRoFOorI2zaKGwm53NnMaV38KFKm0yP8bVt7d8gaN2CzvUVqVf/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-06-04+22.22.42.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGU8p3qrsPpAnBXmYYJyYif23XwIub7m-FH8PC34ldjuB6B8wl8zY7KGCv2vi3wXv0wbXVgIQsxzHznhWFDmO-c307opRRoFOorI2zaKGwm53NnMaV38KFKm0yP8bVt7d8gaN2CzvUVqVf/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-06-04+22.22.42.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxv-jfHSdBCyqU4YwTUy3gKNzguuQHlj1rnaio3OxPJxzzE4Zr8k7p8qJ-0yBieM8JIxYnuTdJjlKZvC_hTqq2PEpZ5h4nSvxpJcidopYqHHnq4450ExMDPuCs3ilv3qe0NBn7-_aWK_1Q/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-06-04+22.57.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxv-jfHSdBCyqU4YwTUy3gKNzguuQHlj1rnaio3OxPJxzzE4Zr8k7p8qJ-0yBieM8JIxYnuTdJjlKZvC_hTqq2PEpZ5h4nSvxpJcidopYqHHnq4450ExMDPuCs3ilv3qe0NBn7-_aWK_1Q/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-06-04+22.57.39.png" width="320" /></a></div>
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-33054667481557107812015-06-16T11:28:00.002+09:002015-06-16T11:52:22.936+09:00最近、作ったものの忘備録(ベジェ曲線編)自動生成されるような画像に興味が急に出てきて、いくつかチャレンジしてみました。<br />
仕事の谷間でもあったので何回化にわけて最近、作ったものをまとめてみます。一応のテーマみたいなものもあるのでそれも一緒に紹介しつつ。<br />
<br />
この学習のテーマはベジェ曲線。<br />
下のような画像を学習用に作成しました。<br />
<br />
これは最低2点の点を定義して、その2点を移動させながら、線を引いただけのものなのですが、それっぽい画像が出来て満足できました。<br />
ただ、この画像が物足りないのはこれが何の規則性も持っていないので、まとまりに欠けすぎている点で面白みが感じられないのは課題。<br />
<br />
それでもタマにそれっぽい画像が出てくるのがこういうプログラムの面白いところではあります。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX92p8njWj-NLcmp5zeetE-ktCvqXoLQoSsGYcuTzW3wU6urEEF4uzYam6zJadYXLdNYWjMO0ZBUfuWUvSBZ6HqHH1MqbX6QM8uJ-w9K3EU-bOPRpwltcOLVgYHsFA1sKouVcX1oEn9Dpg/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-05-20+23.10.27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX92p8njWj-NLcmp5zeetE-ktCvqXoLQoSsGYcuTzW3wU6urEEF4uzYam6zJadYXLdNYWjMO0ZBUfuWUvSBZ6HqHH1MqbX6QM8uJ-w9K3EU-bOPRpwltcOLVgYHsFA1sKouVcX1oEn9Dpg/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-05-20+23.10.27.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJMvcHGOesLryN7E0K33a51anz_5hXDK5bAVCuuk8sxIH36twfSCemeDgEE6O4nOSboCNS4BmpmHO3IhUbooQOXdUy4zgeEd_wa4f2CpG-gI2DyWoo2jzUzQUvQDmD9rd75ZCEFFq8Ctw8/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-05-20+23.31.12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="317" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJMvcHGOesLryN7E0K33a51anz_5hXDK5bAVCuuk8sxIH36twfSCemeDgEE6O4nOSboCNS4BmpmHO3IhUbooQOXdUy4zgeEd_wa4f2CpG-gI2DyWoo2jzUzQUvQDmD9rd75ZCEFFq8Ctw8/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-05-20+23.31.12.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-ZKAhuEDcEPj3gjQk7sE8DjaNkiZ1q54trZes8Zt0DSQywJTjqBO_b3TTIedpS7NGcL8WkYidNPfqcP80JpBCzvR3Dd-tgBtgrwHMqQZeKbx2P4MHmiG3h62gGowqyEM7j1sScngRC4LM/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-05-20+23.32.53.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-ZKAhuEDcEPj3gjQk7sE8DjaNkiZ1q54trZes8Zt0DSQywJTjqBO_b3TTIedpS7NGcL8WkYidNPfqcP80JpBCzvR3Dd-tgBtgrwHMqQZeKbx2P4MHmiG3h62gGowqyEM7j1sScngRC4LM/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-05-20+23.32.53.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVPZF-4GZLhX1VrFumGhrl5Ol4L9PogCCBGh53GHpl407Ihm9nKzJ-fkON5bIYuAazymH6cwzqZlxNIO1p0zuc-ODacPJki1XkAlUWnms3JiT2yMCVfbeeFQC1UlGVtJqQq3XujcatusM7/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-05-20+23.00.23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVPZF-4GZLhX1VrFumGhrl5Ol4L9PogCCBGh53GHpl407Ihm9nKzJ-fkON5bIYuAazymH6cwzqZlxNIO1p0zuc-ODacPJki1XkAlUWnms3JiT2yMCVfbeeFQC1UlGVtJqQq3XujcatusM7/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2015-05-20+23.00.23.png" width="320" /></a></div>
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-40865602296434539092014-05-18T22:41:00.002+09:002014-05-18T22:41:05.143+09:00デザインフェスタ vol.39にて展示を行いました5月19日(土)・20日(日)にて行われたデザインフェスタ vol.39にて展示を行いました。<br />
まずはブースにて遊びにきていただいた皆様、本当にありがとうございました!<br/>
<br/>
とても楽しい展示となりました。<br/>
<br/>
とりあえず展示したものと展示の様子がわかる動画と写真をアップします。<br />
<br />
まず、展示した作品。
<iframe width="420" height="315" src="//www.youtube.com/embed/wYyUKclcw8I" frameborder="0" allowfullscreen></iframe>
<br/>
それから展示の様子。
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbumm-8l1bT6sHBFTX2s3_REdH6zEzzwEOfTa5m7ucJ5bWhax3t-oZAoIcu9XroWCEv24dAoa-XzgtlAq6vbnY-b5JMDiT4AX5AUN2V1XSaFFn9olLUaSwa9JcTFNzXVwcgvlRvHls1SNo/s1600/IMG_0766.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbumm-8l1bT6sHBFTX2s3_REdH6zEzzwEOfTa5m7ucJ5bWhax3t-oZAoIcu9XroWCEv24dAoa-XzgtlAq6vbnY-b5JMDiT4AX5AUN2V1XSaFFn9olLUaSwa9JcTFNzXVwcgvlRvHls1SNo/s320/IMG_0766.JPG" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmDwGZC8duzKBrcREAlZc9o9VCuD-6pQUMIblkTq_SOvGBrCHQcT6C06vC-2yZLZr5wXtZ72ZZ5XBoGkXuX2qlTD7PxUZ-HSZVaMT6XZB4-uK1xpLjaMjK5EmjiX1U1Et1releHzKEcbb7/s1600/IMG_0778.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmDwGZC8duzKBrcREAlZc9o9VCuD-6pQUMIblkTq_SOvGBrCHQcT6C06vC-2yZLZr5wXtZ72ZZ5XBoGkXuX2qlTD7PxUZ-HSZVaMT6XZB4-uK1xpLjaMjK5EmjiX1U1Et1releHzKEcbb7/s320/IMG_0778.JPG" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbBcizBVZSlAs46us8ItVzRHZamw62R7lyCt0dsxhTkK_FxiQncWKiXgq39vgl6xWcOTwx2kbnUUVGxRZkLP8gAPS_6ABoJnON_6DHa9UYX0GrtRT9rO9uiEvSeyLLe9t5fwk0coD_bnl_/s1600/IMG_0782.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbBcizBVZSlAs46us8ItVzRHZamw62R7lyCt0dsxhTkK_FxiQncWKiXgq39vgl6xWcOTwx2kbnUUVGxRZkLP8gAPS_6ABoJnON_6DHa9UYX0GrtRT9rO9uiEvSeyLLe9t5fwk0coD_bnl_/s320/IMG_0782.JPG" /></a></div>
<br/>
<iframe width="560" height="315" src="//www.youtube.com/embed/h97jd7wO4m8" frameborder="0" allowfullscreen></iframe>
<iframe width="560" height="315" src="//www.youtube.com/embed/j1qV38lGU7Y" frameborder="0" allowfullscreen></iframe>
<br/>
展示前は準備不足すぎて、結局、その場でコードを修正しながらの展示(というより公開開発)というデタラメな内容だったんですが、<br/>
逆にこれがよかったようで、コード修正中はなぜかギャラリーが出来ていました(笑)<br/>
<br/>
最初はわりとプログラムが好きな方が反応してくれたりしてたんですが、<br/>
コードを改良していくにつれて、子供と身体表現をする方(ダンサーなど)が面白がってくれていたのが、<br/>
予想外で、本当に楽しいデキゴトでした。<br/>
<br/>
次回のデザインフェスタにも是非、参加しようと思っています。<br/>
Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-33313101971725272712014-03-16T18:44:00.003+09:002014-03-16T18:57:34.345+09:00過去にprocessingで作成したもの<iframe width="420" height="315" src="//www.youtube.com/embed/tPx3hgb8f0A"
frameborder="0" allowfullscreen></iframe></br>
</br>
<iframe width="420" height="315" src="//www.youtube.com/embed/t2i45PcBcnE"
frameborder="0" allowfullscreen></iframe></br>
</br>
processingにハマっていた時になんとなく作ったもの。</br>
ちょうど、これを作る直前に宇宙についての動画を見てなんとなく、</br>
惑星同士の関係を簡単なモデルにしてプログラミングしたら、</br>
面白いのができるかも、という単純な理由で作りました。</br>
</br>
結果としてはなんだかわからないものが出来たけど、</br>
ちょっと面白いと思ったので公開してみました。</br>
</br>
</br>
</br>
<iframe width="420" height="315" src="//www.youtube.com/embed/hpo6-F1nMDY" frameborder="0" allowfullscreen></iframe></br>
</br>
こちらは自分で描いた軌跡を</br>
もう一度、追体験できる、というプログラム。</br>
本当は動画でなく、webアプリとして公開すれば、</br>
良いのだと思いますが、</br>
あいにくサーバを構築していないのでとりあえず、</br>
動画の形で公開してみようと思いました。</br>
</br>
これについては別の形で誰でも体験できる状態で</br>
再公開したいと考えています。</br>Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-65533011388271714202014-03-14T19:52:00.002+09:002014-03-14T19:53:02.956+09:00デジタル・マーブリング<iframe width="420" height="315" src="//www.youtube.com/embed/cywCKZZkQZU" frameborder="0" allowfullscreen></iframe></br>
</br>
<iframe width="420" height="315" src="//www.youtube.com/embed/CTw7GMJ3enA" frameborder="0" allowfullscreen></iframe></br>
</br>
本当は<a href="http://www.sicf.jp/
http://www.sicf.jp/">SICF</a>というイベントで発表できたら、と考えていたのですが、</br>
あえなく落選してしまい、発表場所もなくなったのでブログに公開します。</br>
</br>
最初の構想の元になっていたのは</br>
マーブリングという水の上に絵の具を落としていく技法です。</br>
子供の頃に水の上の絵の具を流して遊んだことがある人は多いと思いますが、</br>
あれです。</br>
</br>
動画はトルコの職人さんによるもの。</br>
見入ってしまいます。</br>
</br>
<iframe src="//player.vimeo.com/video/24709888" width="500" height="281" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
</br>
で、これをPC上で再現したら面白いんじゃないかと思い、</br>
まず考えたのが、水流を再現するにはどうしたら?</br>
ということでした。</br>
</br>
で、調べた結果、どうやら流体力学というものをPC上で</br>
再現できれば、出来そうだということはなんとなくわかったのですが、</br>
正直、数学・物理に疎いので理解できず・・・</br>
</br>
幸い、流体シミュレーションを開発・公開されている方が</br>
それなりにいて、今回の制作には以下のライブラリを参考にしました。</br>
ソースコードから理解していくという作戦です。</br>
</br>
Thomas Diewald</br>
<a href="http://thomasdiewald.com/blog/?p=95">http://thomasdiewald.com/blog/?p=95</a></br>
</br>
</br>
このライブラリはjavaで記述されていて、GPUを使うバージョンも</br>
公開されていたのですが、ダウンロードして動作したのはCPUバージョンのみ。</br>
CPUバージョンだからかパフォーマンスも正直、イマイチ。</br>
</br>
今回はopenFrameworksを使うつもりでいたのと、</br>
パフォーマンスを改善することを目的に</br>
まずはライブラリをC++に移植するところから開発をスタート。</br>
</br>
とりあえず、単純にjavaの文法をC++にするレベルの移植を終えて、</br>
動かしたところ、パフォーマンスはそれほど変わらず・・・</br>
マシンにインストールされているのはjava6なんですが、</br>
java6、かなり速いです。</br>
</br>
次にロジックを見直して不要そうな部分をどんどん省いていったんですが、</br>
これも対して効果なし。</br>
</br>
残る作戦はGPUを使った並列処理化しかない、</br>
と思いはOpenCLでロジック部分を実装。</br>
結果はかえって遅くなる始末。</br>
さすがにこれにはヘコみました。</br>
</br>
それでも納得できなかったので</br>
いろいろと試した結果、GPUでの並列化でなく、</br>
CPUでの並列化の方が速いことが判明。</br>
やっと満足いくパフォーマンスを得ることができました。</br>
たぶん、内部的にはCPUコアをフル活用しているんだと思っています。</br>
</br>
GPUでの並列処理が遅い明確な理由は未だにわかってないのですが、</br>
今回、プログラムでは2次元配列を多用しており、</br>
GPU側のメモリへの転送速度がネックになっているんだと推測しています。</br>
</br>
openCL慣れてくれば、かなり応用範囲の広い技術な気がしています。</br>
今回はデータ並列(同じ処理を複数同時に行う)しかしてないんですが、</br>
タスク並列(違う処理を同時に行う)でやれる部分もあったりしますし、</br>
openGLとメモリ領域を共用して描画速度をもっと早めたりもできそうですし。</br>
以前、作成したチューリングパターンなんかにも応用できそうです。</br>
</br>
ちなみに今回の開発環境は以下のとおりです。</br>
何かの参考になれば。</br>
</br>
【Hardware】</br>
PC : mac book pro(Late 2012 15-inch)</br>
CPU : Intel Core i7 2.3GHz</br>
GPU : NDIVIA GeForce GT650M</br>
</br>
【Software】</br>
OS : mac os x 10.8.5</br>
openFrameworks : v0.8</br>
OpenCL : 1.1</br>
Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com1tag:blogger.com,1999:blog-2950725902353156431.post-19418518222061407122014-03-14T11:55:00.000+09:002014-03-14T12:03:21.525+09:00スイミー<div>
<iframe allowfullscreen="" frameborder="0" height="200" src="//www.youtube.com/embed/84jPCN_RAwc" width="300"></iframe>
</div>
<br />
もう発表済みなんでここに載っけてもいいかと思ってブログに載せます。<br />
この動画は今年の2月22日にapple store 銀座で発表したものです。<br />
<br />
実は去年、「MeMe2013「動き」の設計」という短期の授業を受講したのですが、<br />
その授業での動きの考え方に基づいて作成したのが、この動画です。<br />
<br />
「画面上に表現できる動きは無限にあるけれど、<br />
最小単位は1つのピクセルであり、<br />
全
ての表現はピクセルの集合体である」というコンセプトで、<br />
これは
授業で一緒になった佐藤さんによるもの。<br />
実装面は僕がやりました。<br />
それから、ビジュアルイメージ的には絵本のスイミーを参考に。<br />
<br />
このコンセプトを聞いて最初に思ったのが、boids。<br />
一度やってみたかったのです。<br />
<br />
プログラムそのものはそんなに難しくないんですけど、<br />
パラメータの調整が繊細で、そっちに時間をとられました。
<br />
<br />
たぶん、processingにもパラメータなんかを<br />
動的に調整できるGUIキットみたいなもの(openFrameworksにおけるofxGUI)<br />
があるんだろうと思いますが、<br />
開発時はパラメータの数が多すぎてそういうのを入れる気にならなかったです。<br />
今から考えたら入れたらよかった・・・Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-18298041462500665392013-11-21T22:57:00.000+09:002013-12-09T19:23:01.855+09:00チューリングパターンが面白い久々にブログ更新。<br />
<br />
「波紋と螺旋とフィボナッチ:数理の眼鏡でみえてくる生命の神秘」(近藤滋 著)という本の書評をネットを徘徊中に目にした。<br />
<br />
残念ながら本書は読んでいないけれども、書評を読んで以下のことがわかった。<br />
<br />
・動物の体の模様というのは、予め決まっているのでなく、物質の反応の仕方でその時の状況に応じて作り出される、ということを著者の近藤さんは推測した。<br />
・発見のきっかけになったのはアラン・チューリングという人が論文。<br />
・その論文には方程式が載っていて、近藤さんはこの方程式を使って模様をコンピュータ上でシミュレーションしたみた所、どうやらこの方程式は正しいことがわかった。<br />
・上記の方程式で生成されるパターンをチューリングパターンと呼ぶようです。<br />
<div>
<br /></div>
動物の体の模様が方程式で書き記されていることに、これはスゴイと興奮してしまいました。<br />
さっそくネット上をいろいろと調べてみたら、既にチューリングパターンを実装している人たちを発見。<br />
<br />
下のブログの方がC++とopenGLにて実装したものが、わかりやすそうだったのでProcessingに移植してみました。<br />
<a href="http://elephnote.com/blog/archives/191">http://elephnote.com/blog/archives/191</a>(プログラムを参考にさせていただいたブログです)<br />
<br />
縄文土器のような模様が浮かび上がってきて楽しい!<br />
これを応用して何か作ってみようと思った。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/tgsGDBUnQ8c?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-71685012390828269362013-09-04T17:53:00.001+09:002013-09-04T17:57:58.893+09:00xtion demo(2)ユーザートラッキングによるデモを追加しました。<br />
今回はユーザーごとに取得できるピクセルデータを元に映像を生成しています。<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/prmy7mXPgZ4" width="420"></iframe>
この動画、quickTimeを使ってmacの画面を直接キャプチャしてるんですが、openFrameworksのofxQTVideoSaverっていうアドオン使って録画するのが普通っぽいですね。<br />
<br />Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-48396406130309042232013-09-01T21:29:00.006+09:002013-12-09T19:24:52.184+09:00xtion demo(1)xtion + OpenNI2 + openFrameworks<br />
による、ユーザートラッキングのデモプログラムを作って見ました。<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/OTDGYhVQaTE" width="420"></iframe>
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/qXX3OjxcvA4" width="420"></iframe>
<br />
<div class="p1">
<br /></div>
動画ではわかりにくですが、手のひらに連動して光が動きます。<br />
<br />Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-66515116916503891072013-09-01T13:18:00.004+09:002013-09-01T13:19:09.359+09:00【書籍】OpenNI 3Dセンサープログラミング<div>
8月30日に知って31日に購入。</div>
<div>
<a href="http://amzn.to/1aQKbTF" style="-webkit-transition: 1s ease-in-out; background-color: #ececec; color: #cccccc; font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 22.5px; margin: 0px; padding: 0px; text-align: center; text-decoration: none; transition: 1s ease-in-out;">http://amzn.to/1aQKbTF</a></div>
<div>
<br /></div>
<div>
OpenNIの日本語情報は限られているので、こういう本が出版されるのは、ありがたい。</div>
<div>
mac + openFrameworks + xtionで趣味をプログラムをしているが、この本にはバッチリ、同じ環境での環境構築方法が載っているので、そっちを参照した方が良いと思う。</div>
<div>
<br /></div>
<div>
巻末にOpenNI2、NiTE2のリファレンスも載っている。</div>
<div>
公式のプログラマーズガイドを見れば良いんだけど、英語が得意でない人間としては日本語でのリファレンスの方がやっぱり理解しやすいな、と思った。</div>
<div>
<br /></div>
<div>
ちなみにPrimeSense社のcarmineはこの本読んで初めて知った。</div>
<div>
<a href="http://www.primesense.com/solutions/sensor/">http://www.primesense.com/solutions/sensor/</a></div>
<div>
<br /></div>
<div>
認識距離がcarmine1.09では0.35mってのは魅力的で心惹かれた。</div>
Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-53416311619974361242013-08-21T10:36:00.004+09:002013-08-21T10:42:10.431+09:00mac + xtion + openFrameworks(3)なんとかxtionでちょっとしたデモを動作させることができた。<br />
以下、動作させた時のメモ。<br />
<br />
【環境】<br />
<br />
<ul>
<li>MacBookPro Retina, Mid 2012 + osx(10.7.4 / Lion)</li>
<li>Xtion Pro Live</li>
<li>OpenNI2.2(Beta) + NiTE2.2(Beta)</li>
<li>openFrameworks 0.8.0</li>
</ul>
<div>
【前提】</div>
<div>
<ul>
<li>openFrameworksは動作していること</li>
<li>OpenNIとNiTEはダウンロード済みでサンプルデモが動作していること</li>
</ul>
</div>
<div>
【手順】</div>
<br />
<br />
<ol>
<li>openFrameworksのプロジェクトジェネレータで空のプロジェクトを作成。</li>
<li>新しいグループ、includeとlibsを作成</li>
<li>新しく作ったinculudeグループに${OpenNI2インストールディレクトリ}/Include以下の全ヘッダファイルをプロジェクトに追加。${NiTE2インストールディレクトリ}/include以下の全ヘッダファイルをプロジェクトに追加。</li>
<li>新しく作ったlibsグループに${OpenNI2インストールディレクトリ}/Redist以下の全ファイルを追加。${NiTE2インストールディレクトリ}/Redist以下の全ファイルをプロジェクトに追加。</li>
<li>TARGETS -> Build Setting -> Search Paths -> Always Search User PathsをYesにする。</li>
<li>TARGETS -> Build Phasesで Add Build Phase する。選択するのはAdd Copy Files。</li>
<li>追加したPhaseのDestinationを[ Executables ]にする。Subpathは空。ファイル一覧にOpenNI.ini,NiTE.ini,OpenNI2ディレクトリ,NiTE2ディレクトリを追加</li>
<li>/usr/lib配下に${OpenNI2インストールディレクトリ}/Redist以下のダイナミックライブラリを全て移動。</li>
<li>/usr/lib配下に${NiTE2インストールディレクトリ}/Redist以下のダイナミックライブラリを全て移動。</li>
</ol>
<div>
これでopenFrameworksからOpenNI2 SDKで用意されているAPIが叩けるようになった。</div>
<div>
<br /></div>
<div>
ただ手順の8〜9についてだけが実は今でも謎で、最初はCopy Filesにダイナミックライブラリとかも指定していたが、どうにも実行環境にコピーされないようで、実行する度に/usr/libにOpenNI2のライブラリがない、と怒られていた。</div>
<div>
<br /></div>
<div>
仕方なく/usr/libにライブラリを配置したら正しく動作した。</div>
<div>
このやり方だと他の環境でOpenNI使った開発環境を作りたい時に上のような手順を踏まないといけないのがダサい。</div>
<div>
個人的なopenFrameworksのaddonにしようと思っていたんで、うーん、って感じ。</div>
<div>
<br /></div>
<div>
一番の問題はxcodeへの理解不足なのは理解しているが。</div>
Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-26206831405495922472013-08-08T23:38:00.002+09:002013-08-21T10:41:49.889+09:00memo : DalekJSWebのUIテスティングフレームワークの進化が速い。<br />
<div>
ちょっと前まではそういうのは、selenium一択ぐらいの勢いだったんだけど、</div>
<div>
最近はPhantomJSとかCasperJSとかもいろんなブログで記事を見かけるようになって、</div>
<div>
だいぶ事情が変わったように思う。</div>
<div>
<br /></div>
<div>
seleniumとPhantomJSを仕事に絡めて試したことはあるけど、感想は以下のとおり。</div>
<div>
<ul>
<li>selenium(web driver)は対応言語も多くて、手慣れた環境ですぐにテストできるのは正直、楽だけども、やっぱりブラウザを起動しちゃうんで正直、遅い。</li>
<li>PhantomJSはヘッドレスブラウザでUIテストできる部分はスゴく良いけど、Qtのせいなのかなんなのか、妙な部分動作をすることがあって扱いづらかったのが本音。CasperJSから使うのが正解なんだろうな。</li>
</ul>
</div>
<div>
<br /></div>
<div>
それで今日は偶然、DalekJSという、新しいUIテストフレームワークを知った。</div>
<div>
これといった特徴はなさそうだけど、モダンなブラウザには対応しているし、スマフォ向けブラウザでも動作するし、インストールは簡単だし、テストの記述も簡潔っぽい。</div>
<div>
今度、試してみよう。</div>
<div>
http://dalekjs.com/index.html<br />
<br />
JavaScriptの世界はここ数年、もの凄い勢いでいろんなライブラリが出てくるな・・・</div>
Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-2763605735621309222013-08-06T21:32:00.002+09:002013-08-21T10:42:26.203+09:00mac + xtion + openFrameworks(2)結局、ofxOpenNI2も実行すると、なぜかデバイスが見つからない、という意味合いのエラーメッセージが出て初期化処理で止まってしまった。<br />
<br />
仕方がないので、それなりに情報が出回っているopenNI1.5とNITEの組み合わせで試してみようと思う。<br />
とりあえず、OpenNI1.5のサンプルとNITEのサンプルは動作した。Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0tag:blogger.com,1999:blog-2950725902353156431.post-21497875132644627912013-08-05T21:50:00.003+09:002013-08-21T10:42:41.909+09:00mac + xtion + openFrameworks<div>
今更ながら、kinect hackをやろうと思って始めたが、開発環境を構築する部分が難しい。</div>
<div>
環境は以下のとおり。</div>
<div>
<br /></div>
<div>
mac osx(10.7 Lion)</div>
xtion + openFrameworks 0.7.4 + OpenNI2<br />
<div>
<br /></div>
<div>
アドオンでofxOpenNIを使ってみたが、どうやらkinect専用らしく、openFrameworksからはうまく認識してくれない。</div>
<div>
ターミナルからOpenNI2のサンプルは正常に動作しているんで何か方法はあるハズだが・・・</div>
<div>
<br /></div>
<div>
明日はofxOpenNI2を試してみよう。</div>
<div>
ダメならもうアドオンは諦めてOpenNIをopenFrameworksから直叩きするしかない。</div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/01483612991644682480noreply@blogger.com0