空間ジェスチャーアプリを作る
こんにちは、還暦を迎える現役プログラマーの@AlohaYosです。
私はNewton MessagePadからAppleの世界に入り、iPhone→ iPad→ Watch→ TV→ Vision Proとアプリを作り続けてきました。顧客企業のプロトタイプ制作が多かったので、自社アプリはそんなに多くありませんけど。
中島さんのTweetでSingularity Societyを知ったのが2023年6月頃のことでした。面白そうなイベントを見つけたので、息子とユニットを組んで7月からのBootCampに参加。6月のWWDCで発表されたばかりのVision Proのアプリ制作を題材にすることにしました。
この話はVision Proの実機も無いのにvisionOSで空間ジェスチャーを使ったアプリを発売し、そのテクニックをオープンソース化するまでの物語です。
BootCampを通じて出来上がったアプリ “Air Poolbar“は、こんな感じ。
なぜVision Pro?
2023年7月にBootCampのキックオフがあり、錚々たるSingularity Societyメンターやスタッフと参加者の中、東京から遥か遠い金沢に陣取っている地味な私達。
みんながAIについて熱く語っている中、BootCamp的にそこはレッドオーシャンだと思って(笑)、誰もやりそうにないVision Proのアプリ制作を選択しました。じつは「誰もやりそうにない」からこそ大変な思いをしていく事になるのですが…。
空間コンピューティング・インターフェイスとは何だろう
私は元々、工場の現場にメカトロニクス系のコンピュータシステムを導入する泥臭いプログラマを長くしていたので「人間とのインターフェイス」をずっと考え続けて来ました。ソフトとハードとメカも含めて「使い易い」とは、どういう事なのか。そしてAppleが提唱する「空間コンピューティング」ではどのようなインターフェイスが最適なのか。
理解できないことはやってみるしかないわけで、今までに無かった「空間ジェスチャー」を使った製品を作ってみようと思い立ったわけです。若い頃、近所に耳の聞こえない子供が住んでいて、その子と会話するために手話を独学した事がありますが、手話というのはシンプルなようで非常に表現力があります。それを想い出し「空間ジェスチャー」の可能性を感じたわけです。
無いものは作る。とにかく出来るところから始めよう
ところがベータ版のXcodeでvisionOSのサンプルコードを読み始めてみると、さっそく壁に突き当りました。
- visionOSはNDAが多くて英語の情報さえも少なすぎる。
- 誰もジェスチャーをやっている人がいない。
- ハンドトラッキングはVision Pro実機でしかできない!
- Vision Proの発売は未定!
どうしよう…BootCampの成果発表は半年後の2024年3月。成果が出せるメドが立たない…。
こういう時にムクムクと闘争心が沸き立つのが私の性格で(笑)
シャープのMZ-80Kから始まった私のプログラマー歴。当時は乱数を発生させるルーチンや矩形を塗りつぶすルーチンさえもアセンブラで自作する時代でしたから、とにかく無いなら作るというのが普通でした。
今回も「ハンドトラッキングできないなら、できるようにする」と決め、Macのカメラに写った自分の手の画像を使ってvisionOSのハンドトラッキングを置き換えるHandTrackFakeという仕組みを作りました(後にオープンソース化)。
Macカメラに向かって手を動かし、それをvisionOSシミュレータの中に投影して、シミュレータ内の空間オブジェクトを動かしてみます。
動いた!
ここまで2ヶ月ちょっと掛かりました。
HandTrackFakeの仕組み
Vision Proラボへ通う
Appleに行けばVision Proの実機が使えるという話を聞いて、さっそくvisionOSラボに参加申請。Apple側も新しいデバイスを世に問うという姿勢でヤル気を出しています。
(ラボでの情報は全てNDA)
仕事の合間を縫ってアプリを試作してvisionOSラボに持ち込み。HandTrackFakeを使って何週間も机上デバッグしていたアプリが実機で1発で動いた時は感動しました😭
その後、ラボで発見した新しい課題を金沢に持ち帰ってはHandTrackFakeでデバッグし再びラボへ。金沢から六本木まで日帰りで8回参加しました。
通算で50時間ほど実機を使い、アップルWWDR部門のスタッフとは顔見知りになって、私には毎回同じデスクが用意されるようになりました(笑)
ラボにはvisionOSを開発しているエンジニア本人が参加してくれていて、質問をするとその場で一緒に考えてくれます。ただし全ての疑問が解消するわけでもなく、分からない事も増えていきます。
Apple本社へ行く
ここはひとつ、アップル本社エンジニアに聞くしかないと考えた私は、格安航空券と格安Airbnbを駆使して本社で開催されるvisionOSセッションに参加(WWDCをvisionOS専用に小さくしたようなセッション)。
セッション後の懇親会では、Reality Composer Proを作っているチームやvisionOSチームのメンバーに直に質問をし、自分の作ってきたアプリを見せてアピール。
HandTrackFakeに食いつくエンジニアが多かったです。セッション参加者の中には「このFake機能をVisionProシミュレータに内蔵してよ」とvisionOSチームに進言してくれた人もいました(笑)
Air Poolbar発売
11月のBootCamp中間発表で方向性は間違っていないと確認した上で「Vision Pro発売初日からアプリを売り出す」と決めて、本当のビリヤードのようなアクションでプレイできるアプリ「Air Poolbar」を完成に向けて作り続けました。この時点でも実機の発売日は決まっていません。
2023→2024年の年越しをvisionOSアプリ制作に費やし、やがて2024年1月8日に「Vision Proは2月2日に発売」という発表。私達のアプリは1月9日にApp Store審査に提出しましたが、この時点では製品版のVision Proが存在していません。
ラボでは試作機でテストしていたので、本当にうまく動くのか不安が残った状態でした。
不安な製品を利用者に使ってもらうわけにはいきませんよね。
私は製品版Vision Proを買いに行くことにしました。
現在までに6度の修正版をアップデートし、ようやく落ち着いてきました。
アプリはそこそこ売れていて、夏の終わりまでにはVision Proのモトが取れそうな感じです(WWDC2024までに日本発売されるというウワサが出てきたので、もっと早く回収できるかもw)
仲間を求めてオープンソースへ
Singularity SocietyのBootCampでの私達の目標は次の3つでした。
1.空間ジェスチャーを使ったvisionOSアプリをDay1から販売すること
2.アプリ制作で使ったテクニックをオープンソースにすること
3.参加エンジニアを募って空間ジェスチャーライブラリを作ること
アプリの販売に漕ぎ着けた後は、空間ジェスチャーで遊べるシンプルなアプリを作り、そこに独自のジェスチャーを追加できるテンプレートを添付してオープンソース化しました。技術的に詳しい内容は以下の記事を読んでみてください。
公開したオープンソースに含まれるプレイグラウンドは、こんな感じです。
これからは仲間を集める3番めのフェーズに入ります。
まだ海のものとも山のものとも分からない空間コンピューティングですが、だからこそ試行錯誤して楽しめる時期でもあります。興味のある方はオープンソースVisionGestureをforkして、ぜひ自分の空間ジェスチャーを作ってみてください。みんなで空間ジェスチャーライブラリを作っていきましょう。プルリクエスト待ってます!
私自身の次の目標は、空間ジェスチャーと自然言語UIをミックスして、手話のように人間の表現力を育てるようなアプリやシステムを手掛けてみたいです。
できる道を作るのがエンジニア
テック業界にそれなりに長くいて会社も経営しているので、新技術を使ったビジネスも考えてはいますが、やはり自分の手を動かしてモノを作り出し、それが人の役に立って評価された時には喜びを感じます。
半年近く、ガムシャラにvisionOSアプリを作り続けてきましたが、「できない理由を探すぐらいなら、できる道を探すほうが楽しい」という基本に戻る旅でした。
今回、アップルWWDRスタッフとBootCamp関係者のみなさんには、本当にたくさんの刺激をもらいました。締切り設定してもらったからこそDay1からvisionOSアプリが販売できたと痛感しています。長期間にわたるサポートをありがとうございました!
BootCampに参加しませんか
みなさんも次のBootCampに参加してみませんか!
関連ページ
- 私の寿命、あと何年?
- HtmlRAG: HTML is Better Than Plain Text for Modeling Retrieved Knowledge in RAG Systemsの紹介
- Magentic-One: A Generalist Multi-Agent System for Solving Complex Tasksの紹介
- 書評:LangChainとLangGraphによるRAG・AIエージェント[実践]入門 (エンジニア選書)
- SS推薦の図書
- Singularity Societyに入るには?
- 話題のネコ型ロボット「ミーア」!パワーアップします!
- 「世界モデルを持たないLLM」にとって難しい質問のリスト
- Raycastの機能拡張をカスタマイズ(テンプレート解説)
- RaycastJapan Meetup 第0回 イベントレポート
- Raycastのイベント発表資料
- Macの生産性を10倍上げるRaycastのイベント開催!!
- 「蔦屋家電+」ミーアの展示期間を延長しました!
- 安野たかひろ × 中島聡 緊急対談 書き起こし
- 蔦屋家電+でミーアたちに合う
- 安野たかひろ × 中島聡 緊急対談
- 蔦屋家電+とTi B SHOPでおしゃべり型ロボット「ミーア」に会いに行こう🐾
- W&Bミートアップ#13in東京 Stability AIとTuringからモデルサービングの最新手法を学ぶMeetup
- Turing CTOが語る自動運転2.0 生成AIで実現する次世代自律運転
- サンノゼで開かれたVisionProハッカソンに参加しました!
- おしゃべり猫型ロボット「ミーア」を開発
- コストコを超えるイノベーション!高品質・サプライズ価格なECの立ち上げ
- 空間ジェスチャーアプリを作る
- Turing Semiconductor/AI Day潜入レポ
- アーバンデータチャレンジ2023にてW受賞しました
- visionOSアプリ、Teegardenの開発物語
- エンジニア未経験のPMがChatGPTを使って簡単なプログラミングだけでプロダクトを作った話
- 新しい挑戦を躊躇する心理:優先順位の真実
- 時を超える知の投資:良書と大学教育の意義
- 動画生成AI SORAの革新とサム・アルトマンのビジョン
- イノベーションを起こしやすい組織について
- サッカー選手になりたいが、サッカーボールを蹴ったことがない人の話
- 2024年、国産クラウドに期待
- 仕事と焼肉、意外な共通点とは?
- 業界に激震!!Llama2オープン化がいかにすごいかを解説。
- OpenAIによる今回のアップデートがなぜ私たち開発者たちの間で「神アップデート」と呼ばれているか解説!!
- 統計的自然言語処理によりおぼろげながら浮かんできた思考の仕組みと教育の未来
- アプリ開発の常識を覆す? GPT-4の凄さに魅了された体験談
- あなたの NFT がゴミになるかもよ?
- GPT3の本質を理解し、ChatGPTを使いこなす為に知っておきたい事!!
- 今世紀のベストペーパー
- 「Web3がもたらす未来を考える」中島聡×塚田学対談
- これが未来の生活スタイル。遊牧民のように旅をしながら暮らす理想のノマドライフの提案。
- あなたのNFTは大丈夫?!某NFTが存在するのか確認してみました。
- 元米マイクロソフトのソフトウェアエンジニアが教える「エンジニアになりたいなら知っておいた方がいいコト!」
- 「フルオンチェーンでないNFTの怖さ」が現実に!〜フルオンチェーンNFTを可能にする技術
- 知らないと恐ろしい事に!AM/PM表記のなぞ?!
- DAOに対する「株式会社に代わる新しい仕組み」や「参加者全員が成功の果実を共有できる」という認識は間違いです。DAOの本質とは?
- スマートコントラクトが人々の行動を変え世界を変える!!
- フルブロックチェーンのスマートコントラクトは世の中に価値を提供し続ける!
- ビットコインこそ「究極のDAO」
- Pride Squiggle で画像をオンチェーンでダイナミックに生成するために使ったテクニック
- Netscapeからシェアを奪い取ったInternet Explorerが、終焉してしまった理由
- ソフトウェア・アーキテクチャの面からWeb2.0とWeb3の違いを分かり易く解説
- Web3の技術は素晴らしいがそれを生かすも殺すもエンジニア次第!
- AppleのWWDC22の基調講演で、最も私に刺さったのはCarPlay!!これが何を意味するのか?!
- Web3時代!NounsDAOの最大の発明はこれだ!
- 日本のシステムは最大のポンジースキームだった!?
- そして、すべてはソフトウェアになった
- パーソナル・ブランディング
- あなたの知らないWeb3/NFT/DAOの真実
- ハッカソン開会式のご挨拶「過去の戦争と比べて違うなと思うところ」
- NounsDAOをフォークした人にインタビューを受けました(翻訳)
- すでに解散したバンドのファンになった話
- 帝国化する企業と民主主義の末路
- 衰退していく日本のテレビ業界について語る
- Youtube のダークサイド
- 「理解できない」と言える強さ
- Oculus Go
- メタバース時代に掘り起こせそうな本屋さん
- 日本は少子高齢化・人口減少で新しい枠組みを作るのに良い実験場-<コモン>の領域を再建し人々の生活を安定させる
- Nintendo Switch とエクササイズ・バイク
- こんなダメな日本がかわるきっかけは「戦争か大災害しかない」噴火・地震・メタバースなど
- カルト・オンライン
- 中島聡×草場 壽一 「ソサエティを立ち上げた思い」
- 人工知能・機械学習の父
- 起業家と現実歪曲空間
- デマンド交通『おでかけ号』のタクシー予約/配車システムをDX化、高知・土佐清水で新登場
- 中島聡×SONY社内イベント
- メルカリ × 中島聡 ディスカッション イベントレポート
- 自動車業界の近未来
- 未来の社会のあり方
- SS推薦の動画
- 汎用人工知能・強いAIの開発にまつわる懸念点
- 未来のソフトウェアエンジニア教育を考える
- 財政出前講座 SIM2030
- Elon Musk の悩み
- Elon Musk のビジョン
- 自動運転社会のひとつの形
- Amazon Goに行ってみた
- 中島さん関連動画