Previous month:
October 2014
Next month:
October 2015

Apple Watch 向けアプリ「iBacknine」の日本国内での使用上の注意

私としては、初めての Apple Watch 向けのアプリ「iBacknine for serious golfer」が iTunes ストアに並びました。Apple Watch を持っていなくとも、iPhone だけでも使えるように設計してあるので、是非ともゴルファーの方々には試していただきたいと思います。

使い方はいたって簡単で、ラウンドの前にコース情報(各ホールのパーとハンデ)とプレーヤー情報(名前とハンデ)を入力しておき、プレー中はホールごとに各人のスコアを入力するだけです。すると、ラウンド後にはこんな形で結果を表示してくれます。

Ibacknine

 

Apple Watch を持っている場合には、各人のスコアは2タップ(スペシャルがある場合は3タップ)で入力出来るように設計してあります。

500x500bb-80 500x500bb-80-2

ちなみに、このアプリには一つだけ問題があるので注意が必要です。私の暮らす米国では、仲間内のゴルフでは「握る」のが一般的なので、その握りの結果を計算する機能を付けたのです。前半9ホール、後半9ホール、18ホールの三つのマッチプレーでをハンデ付きで各人の間で行うのですが(ナッソーゲームと呼ばれています)、ハンデの計算がとても面倒なので、それを自動化したのです(ニアピンやバーディなどのスペシャルの 点数計算もします)。

日本の場合、たとえ1ポイント100円の握りゴルフであっても、法律を厳密に適用すれば賭博罪が適用されるそうです(2万円以上のやりとりが違法だという「2万円説」もありますが、真偽のほどは未確認です)。なので、日本国内での使用に際しては「ポイント制にして実際には現金は賭けない」などの配慮が必要なので、そこのところは是非ともよろしくお願いします。


VideoShader をオープンソース化しました

昨年 iTunes ストアで公開し、オースチンの SXSW でもブースを持ってデモをした VideoShader ですが、このたび一周年を記念して、エンジン部分のソースコードをすべてオープンソース化しました。

https://github.com/snakajima/videoshader

Instagram などが行っている写真のフィルター(「Toy Cameraフィルター」や「アニメフィルター」)は、複数のフィルターを組み合わせて実装しますが、カメラから入ってくる映像をリアルタイムで処理する際には、高速に動作するフィルターをパイプライン上に繋げて実行する必要があります。

数年前までは、高性能なパソコンでしか無理でしたが、GPU 性能の向上により、ようやくスマフォでもそんな処理が可能になりました。

VideoShader は、スクリプト言語 VSScript を使ってビデオパイプラインを記述できるという手軽さを持ちながらも、実行時にはそれを OpenGL の GLSL にまでコンパイルして落とし込み、CPU をほとんど使わず、大半の処理を GPU に並列処理させるという設計により、iPhone5 で 720p/30fps の処理を可能にしています。

アニメフィルターを VSScript で記述すると、以下のようになります(VideoShader Composer を使って、インタラクティブにフィルターを作ることも可能です)。

{
   "title":"Cartoon I",
   "pipeline":[
       { "filter":"boxblur", "ui":{ "primary":["radius"] }, "attr":{"radius":2.0} },
       { "control":"fork" },
       { "filter":"boxblur", "attr":{"radius":2.0} },
       { "filter":"toone", "ui":{ "hidden":["weight"] } },
       { "control":"swap" },
       { "filter":"sobel" },
       { "filter":"canny_edge", "attr":{ "threshold":0.19, "thin":0.50 } },
       { "filter":"anti_alias" },
       { "blender":"alpha" }
   ]
}

これを VideoShader で実行すると、世の中の景色をアニメ化して見ることができるのです。下のビデオは VideoShader を使ったサンプルです。

OpenGL をいかに効率的に使うか、iOS 上でカメラから取り込んだ動画をいかに CPU を介さずに GPU に渡して処理させるかなど、さまざまなノウハウがぎっしりと詰まったソースコードなので、OpenGL や AVFoundation の勉強にも持ってこいだと思います。

【追記】Node.js アプリケーションを iPhone/iPad 上で動かすための neunode もフルにオープンソース化したので、こちらもよろしくお願いします(https://github.com/snakajima/neunode)。こちらには、iOS 上で HTTP サーバーを走らせるためのノウハウが詰まっています。