「IT、ガジェットなど」カテゴリーアーカイブ

キネクト賛

何周もの周回遅れ(5年くらい遅れてる?)ながら、最近kinect v1を中古で購入し遊んでいる。言わずと知れたxbox 360用の深度センサー&モーションキャプチャデバイス。Processingやopenframeworks(oF)からも使えるということなので、今回購入してみた。実際に触れてみると、これがまたなかなか楽しい。

Mac用のProcessing 3で使うにはドライバなどは不要。ただしライブラリ(アドオン)としてSimpleOpenNIなどが必要になる。oFのほうでは、ofxOpenNIやofxKinectといったアドオンが必要。mac用のoFでは、ofxKinectはすでに標準で入っている。ただofxKinectは少し用途が限られている印象で、少し制約もあるようだ(スケルトンの追跡とかができない)。ofxOpenNIもインストールしてみたものの、コードをコンパイルしようとするとエラーが多々噴出する。macのXcode 11ではコンパイルできないし、qtcreatorでもダメ。というわけで、とりあえずoFではofxKinect、ProcessingではSimpleOpenNIを使うことに落ち着く。

ためしに、こちらの「simple-openniの覚え書き」を参考に、「こじ研」のチュートリアルでofxOpenNIでやっている近距離レーダーみたいなやつを、Processing + SimpleOpenNIで再現してみる。

sketch_radar

画像の深度を上から見た図、ということのようで、これはいろいろ応用できそうな気がする。四肢のトラッキングもできるようなので、たとえばバロックダンスの舞踏譜のような記録を取ったりとか(個人的にバロックダンスは踊れないけれど……)。活用の妄想が膨らむ(苦笑)。

このところの設定作業

2週間ほどブログも本読みもお休みして、とくに今週は各種の環境設定に明け暮れる。こういうのは久々だ。まず古いMacBook Airをchrome端末にすべくCloudReadyを入れる。これは簡単。で、それに付属するLinuxをオンにして、Visual Studio Code(VSC)などをインストールして使えるようにする。これも問題なし。で、ProcessingをVSCから行えるようにしてみた。これはすでにWin10の環境でやっていた作業なので、これまたとくに問題なく完了(メモ。こちらの記述を参考。ただし、tasks.jsonに指定するsketch=以下は、${workspaceRoot}ではなく${fileDirname}とかにする)。

さて、問題はここから。せっかくなので、もう一つのアート系プログラミングフレームワーク、openframeworks(oF)もインストールしてみようかと考えた。すでにWin10でVisual Studio版(メモ:なんとVSも2019版では正しく動かず、2017版にダウングレード)、macでqtcreator版(メモ:qtcreatorもoF最新版もダメで、こちらの記事にあるように、qtは4.6.1、oFは0.10.0にする必要あり)のインストールを果たしたので、次はLinux版に挑戦というわけだ。ところがこれでハマる。手順は公式サイトにあるとおり。ところが、cloudreadyに入っているLinux(debianベースのpenguinというもの)では、そもそもinstall_dependencies.shがエラーで止まる。ライブラリの依存関係が変だという表示がでる。問題がありそうなライブラリなどを手動インストールするなどいろいろ試すも、うまく動いてくれない。試しにと、win10環境のWSLで入れたpengwin環境(これもdebian派生のディストリビューション)でもインストールを試みるが、ほぼ同じエラーが出て中断してしまう。

そのWin10環境で、試しにWSLにubuntuを入れて、そちらでoFが入れられるかどうかを試すと、install_dependencies.shは通るものの、compileOF.shがエラーで止まってしまう。エラーで検索をかけたりするも、解決できず。それで試しに、今度はoFのwin10のコマンドライン版というのを入れてみる。msys2という環境を入れなくてはならず結構面倒なのだが、そちらでもoFコンパイルは当初はエラーが出たものの、エラーで検索かけたところmsys2シェルではなくmingw2シェルで行えばよいということがわかり(!)、それで難なくコンパイル成功。ちゃんとサンプルコードのコンパイルもできた。これは単純にうれしい(メモ:ちなみに普通のコマンドシェルでは、やはりエラーが出てダメ)。

そこでちょっと、WSLのubuntuでも別シェルにすればうまくいくんじゃないかと思いつき、zshを入れてみる。そのzshからなら、なんとoFのコンパイル成功。やった、と思いきや、サンプルについてはコンパイルまでできるものの、実行するとディスプレイ系のエラーでコアを吐いて終了してしまう。うーん……。というわけで、いろいろやったものの、今のところLinux系はまだうまく動いていない。こんなことしてないで、早くコードそのものを書きたいのだけれどなあ。全般的にoFはすでに古くなっている(2017年止まり?)のが気になった。

Processing礼賛

初めてのProcessing 第2版趣味のコーディングということで、pythonの機械学習ものやらC#のUnityやらいろいろ雑然とやっているけれど(笑)、最近はとりわけこれに凝っている。Processing。Alife系で刺激をもらったので、それに合った作業環境を探そうと思い、すぐに遭遇した。基本的にはjavaやpythonによるデジタルアート作成系のフレームワークという感じで、とっつきもよいし、作業のスタイルも好みに合っている。これまで個人的にjavaはあまり好きでない言語だったが、それは結局、周辺的な手続きが煩雑で、簡単な処理を簡単にかけないように思えたから。けれどもこのフレームワークなら、余計な手続きが不要で、実行したい処理をいきなり書くことができる印象。

というわけで、ネットに転がっているサンプルなども活用しつつ、とりわけ次の書籍でもって練習中。ダニエル・シフマン『初めてのProcessing 第2版』(尼岡利崇訳、オライリージャパン、2018)。個人的に、とりあえずは多少とも複雑なジェネラティブアートに取り組めるところまでもっていくことが目標。

雑感:WSL環境

世間的には連休初日だということもあり、とりあえずITがらみの雑文でお茶を濁そう。このところ実に久々に、OSのインストールから設定への流れを楽しんでいるところ。

2週間ほど前、古いiMac(2009モデル)にWindows10を入れるというのをやってみた。win10のディクスイメージをCD-ROMに焼き、そちらからブートしてインストール。古いMacOS(El Capitan)付属のBootcampユーティリティからドライバを拝借しそれらもインストール。時間はそれなりにかかったが、これで無事に古いiMacでWin10が立ち上がる。ただ、キーボードはMac仕様なので使いにくく、そのためネットで対処法を探し、レジストリなどを少々いじったりしてカスタマイズしたりした。久しぶりのインストール作業は面倒ではあったけれど、それなりに楽しい(笑)。

さらにその後、今度はWSL(Windows Subsystem for Linux)を有効にして、Windows環境にLinux環境をこしらえてみた。前に別のwinマシンのWSLにUbuntuを入れてみたことがあったので、今回は有償で出ていたPengwinパッケージ(Debianベース)とX410を入れてみた。合わせて3000円(期間限定?)なり。そちらもインストール自体は簡単だけれど、その後のカスタマイズではそれなりに時間がかかった。大きな問題はいくつかあり、そのうちの1つが日本語フォント導入後のgtk-3.0。メニューその他の表示(文字やアイコン)がとにかく大きすぎて、そのままでは使えない。けれどもどこで設定するのか探すのに手間取る。ホーム下の.configディレクトリから、gtk-3.0ディレクトリ下のsettings.iniでフォントは変更できるけれど、openboxディレクトリ内のrc.xmlも編集しないといけないことがわかるまで、ああでもないこうでもないと結構時間をロスした。

日本語入力も、fcitx-mozcの導入で入力自体はできるものの、GUIでのemacsはもとより、geditやleafpadといった軽量エディタでも、あるいはfirefoxでもインライン入力ができないという問題に遭遇。fcitxの設定で直るという情報はあちこちにあったのだけれど、何度やっても有効にならない。ところが昨日、何かの拍子にいきなりインライン入力ができるようになった(emacs以外)。なぜいきなり直ったのか不明。タイミングとしてはwindows用キーボードを別途使い始めてから直ったので、何かそのあたりに要因があった……のかしら???

残る大きな問題は二つ。一つは、Windows側でコピーしたものをXwindow側でペーストできない点。ターミナルでならできるので、ターミナルで開いたemacsとかなら問題ないが、できればGUIエディタなどでもWindows側からコピー&ペーストしたいところだ。もう一つは、Linux側に入れたVisual Stuido Code(やはり最初は表示が大きすぎたが、ユーザ設定でzoomを設定することで解決。これも設定箇所を見つけるのに手間取ったものの一つ)でのpythonの連携など。連休中にこのあたりはなんとかなるのかならないのか……。でもこういうのをいじくり続けるのは決して嫌いではない(笑)。

機械のなかの疑似生命たち

作って動かすALife ―実装を通した人工生命モデル理論入門本読みの時間があまり取れなかったが、今週の一冊はなんと言ってもこれ。岡瑞紀・池上高志・ドミニク・チェン・青木竜太・丸山典宏『作って動かすALife ―実装を通した人工生命モデル理論入門』(オライリー、2018)。AI人気の昨今ではあるけれど、こちらはさらに踏み込んだアーティフィシャルライフ(ALife)についての概説書。生命現象の様々な側面をシミュレーションするという研究領域の入門という感じ。プログラミング本ではあるけれど、打ち込んで学ぶというよりも、公開されているソースコードをローカルで実際に動かして、ALの主要な研究領域の入り口をざっと見る一冊か。たとえて言うならプログラミング絵本というところ。pythonの実行環境が必要だが、それさえ問題なければかなり刺激的なプログラムが並んでいる。当然いろいろな応用も考えられそうで、そうしたことを夢想するだけでも楽しい。

と同時に、ここには、生命現象のシミュレーションのどうしようもなく(というか絶対的に)パーシャルな性質というものを改めて突きつけられている気がする。析出され再構成される部分的な動作は、当然ながら部分的なものでしかないわけだが、それが別の部分とどうつながっていくのかといった経路は見えない。そのつなぐ部分というのが、もしかしたら現在ないしそれ以降の検討課題になっているのかもしれない……。そんなことに思いを巡らせてみるのも一興かもしれない。