差分を探しに行った¶
アービトラージという言葉があります。
同じものの値段が二つの市場で食い違っているとき、安いほうで買って高いほうで売る。差があるうちだけ成立する商売です。
AIが急に強くなったので、似たことが起きているはずだと考えました。
これまで「難しい」「割に合わない」とされてきたことの一部が、いま実は解けるようになっている。世間の認識はまだ追いついていない。その差が閉じるまでの間に、自分の経験を使って何かできないか。
そう思って、自分が作ってきたものを並べてみました。
三つ並べてみる¶
去年から今年にかけて、Macやスマホのアプリをいくつか作りました。
仕事ではなく、自分のために作ったものです。
一つめは GainForge です。
LightroomからHDR書き出ししたJPEGを、ゲインマップを保ったままHEICに変換します。ファイルサイズが四割ほど減ります。
二つめは RAW-Trash です。
撮影後のフォルダから、対応するJPGが残っていないRAWファイルを見つけて分別します。現像するつもりのないRAWだけが浮かび上がります。
三つめは組み合わせです。GeoShutter と GeoTagger。
スマホでGPXログを取りながら歩き、帰宅後に写真へジオタグを付けます。
技術的には、どれも難しくありません。
画像フォーマットの変換、ファイル名の突き合わせ、時刻とGPS座標の対応づけ。教科書に載っている処理の組み合わせです。AIに手伝ってもらえば、週末で形になります。
だから最初は、これを「AIで作れるようになった話」だと思っていました。
実装は前から難しくなかった¶
よく考えると、おかしいのです。
この三つは、AIがなくても作れました。
十年前でも、たぶん二十年前のスキルでも同じです。業務システムを長く書いてきたので、この程度の処理で手が止まることはありません。実装が障壁だったことは、一度もなかったのです。
では、なぜ十年前に作らなかったのか。
作る理由がなかったからです。
HDRのゲインマップという概念は、数年前まで存在しませんでした。RAWを何万枚も撮って捨てる生活も、していませんでした。要件のほうが、まだ生まれていなかった。
順番が逆でした。
実装できるようになったから作ったのではなく、欲しいものが分かったから作ったのです。
空白の位置¶
AIが安くしたのは、実装です。
設計して、コードを書いて、動かして、直す。この工程の値段が下がりました。かつて三ヶ月かかったものが、いま数日で形になります。
工程の値段が下がると、ボトルネックは残ったほうへ移ります。
残っているのは、何を作るかを決める工程です。ここは一円も安くなっていません。むしろ相対的に高くなりました。
AIに探させてみた¶
隙間の位置が分かったなら、あとは探すだけです。
そう考えて、AIに調べてもらいました。写真・映像・GPS・3Dプリント。自分の得意な領域で、新しい規格が生まれて道具が追いついていない場所はどこか。
出てきました。それも、かなりの精度で。
3MFという3Dプリントのファイル形式に色情報を載せると、CADから書き出す段階で全部消えてしまう。OpenSCADには2025年に issue が立っていて、対応しないという判断で閉じられています。QGISでHEIC写真のジオタグが読めない件も、同じように報告され、同じように閉じられていました。
Apple Logで撮った動画の話も出てきました。
公式の変換LUTをAppleが配布していないので、みんなが非公式のものを探し回っている。世代ごとに色が合わず、iPhone 15用のものを16の素材に当てると肌が変な色になる。実名と日付つきの不満が、そのまま引用されてきます。
眺めながら、これは使えるなと思いました。
どれも小さい。数百行で埋まる。埋めれば確実に感謝されます。
そして、乗り気になりませんでした。
書かれた不便は、遅れてきた不便¶
しばらく考えて、理由が分かりました。
issueに書かれている時点で、その不便はもう意識化されているのです。
誰かが困り、言葉にし、投稿するところまで済んでいる。要件がすでに完成した形で置いてあります。だから確実に埋まりますし、埋めれば喜ばれます。実際、そういうツールに私も日々助けられています。
ただ、自分がいま作りたいものとは、少し違いました。
iPhoneのとき、何が起きていたか¶
iPhoneが出たときのことを思い出します。
あれは、要望に応えて出てきたものではありませんでした。
当時みんなが携帯電話に望んでいたのは、もっと薄いこと、電池が持つこと、ボタンが押しやすいこと。要望を集めれば、そういうリストになったと思います。ボタンを全部なくしてガラス板にしてくれ、という声は、あまりなかったはずです。
それでも、触った瞬間に分かりました。
指で直接触れる。つまんで広げると大きくなる。慣性がついて滑る。誰も欲しいと言っていなかったのに、触ってみると「これだ」と思えるものでした。
欲しかったものは、ずっと前からあったのです。
ただ、体験するまで自分でも気づいていなかった。地図をつまんで広げたいという気持ちは、たぶん紙の地図の時代からありました。言葉になっていなかっただけです。
そしてその後の数年で、何が起きたか。
画面を指で触ることを前提に、あらゆるものが作り直されました。音楽プレイヤー、カメラ、ゲーム、楽器、水準器、懐中電灯。ハードは一つなのに、そこから出てくるものが無数にありました。誰も要望を出していない領域が、まるごと空いていたのです。
私はそこに、鍵盤を出しました。
FingerPianoというアプリです。ガラスを指で押さえたら音が鳴る、それだけのものが、思いのほか多くの人に使われました。
作れる人が、極端に少なかったからです。当時のiOS開発者は数が知れていました。
そして手元に、その前に作っていたWindows版がありました。iPhoneのために準備したわけではありません。ただ鍵盤を画面に出したくて作っていただけです。出たときに、もう動くものがありました。
二種類の不便¶
こういう隙間は、要望リストにはなかなか載りません。
体験する前は、欲しいと気づきにくいからだと思います。
不便には二種類あるようです。
すでに困っていて、言葉になっていて、誰かが書き留めている不便。これは探せば見つかります。AIが得意なのはここです。
もう一種類は、まだ体験していないので不便だと気づいていない不便です。
こちらは検索しても出てきません。まだどこにも書かれていないからです。書かれていないものは、AIにも読みようがありません。
感じるだけでは足りない¶
ここで一つ、反論が来ます。
不便を感じる人なら世の中に何億人もいる。希少なのは作れる能力のほうで、AIが実装を安くしたなら価値は実装できる人に集まるはずだ、と。
半分は当たっています。ただ、途中が抜けています。
不便を感じることと、それを解ける形に分解することは、別の能力です。
たいていは「なんか使いにくい」で終わります。私もそうです。
そこから先が仕事なのです。何がどう使いにくいのか。どこを直せば消えるのか。直すと別の何が壊れるのか。この分解を経て、はじめて要件になります。
分解自体は、AIも速くやってくれます。ただし材料を渡したときだけです。
「なんか使いにくい」を渡しても、返ってくるのは一般論です。何がどう違うのかを最初に言葉にするところは、身体を持っている側にしか始められません。
私はこれを、受託の仕事で二十年やってきました。
顧客の「なんとなく面倒くさい」を聞き取って、動くシステムの形にする。そればかりやってきたのです。
だから、たぶんこういうことです。
趣味の道具作りがうまくいくのは、自分が客だからだけではありません。客から要件を引き出す技術を、自分自身に対して使っているのです。不便の産地が自分の身体で、翻訳者も自分。両方あって、はじめて成立しています。
片方だけでは足りません。
不便を感じるだけの人は作れません。作れるだけの人は、何を作るかが分かりません。
便利では足りない¶
ただ、要件が分かれば当たるかというと、それも違う気がしています。
よくできた道具が欲しい人は、そんなに多くありません。
たぶん、多くの人が求めているのは気持ちが動くもののほうです。
FingerPianoが受け入れられた理由を、私は長いあいだ「触って弾ける鍵盤がなかったから」だと思っていました。たぶん違います。ガラスを押さえたら音が出た、その瞬間に少し嬉しかったからでしょう。楽器としての出来は、正直たいしたものではありませんでした。それでも、その嬉しさのほうに価値があったのだと思います。
便利さは、比較されます。
もっと速い、もっと安い、もっと軽い。誰かがすぐに追い越していきます。
気持ちが動いた記憶のほうは、あまり比較されません。
初めてiPhoneの地図をつまんで広げたときのことを、私はいまでも覚えています。便利だったから覚えているのではないと思います。
そしてここが、AIの苦手なところではないかと思っています。
分解はできます。整理もできます。ただ、それを触ったときに心が動くかどうかは、たぶん判定できません。動いたことがないからです。分かるのは、実際に動いた人だけでしょう。
次のiPhoneはどこか¶
そうすると、探すべきものがはっきりします。
issueに書かれた不便ではなく、iPhoneのときと同じ四つが重なる場所です。
- 新しい場が生まれていること
- そこで何をしたいのかを、まだ誰も知らないこと
- 作れる人が少ないこと
- 自分に在庫があること
いま自分の周りを見て、この四つが揃っている場所が一つあります。
AIエージェントです。
エージェントは去年から実用になりました。私は毎日使っています。
AIが自分でコンピュータを操作する。これはかなり大きな変化だと思うのですが、人間の側の触り方は、まだ追いついていません。
これは、初代iPhoneが出る前の画面に少し似ています。
あの頃の携帯にも画面はありました。ただ、その中身はパソコンを小さくしたものか、ボタンで操作するメニューでした。指で触ることを前提に設計し直されるまでに、時間がかかりました。
いまのエージェントも、その前夜の位置にある気がします。
向こうは何十もの作業を勝手に進められるのに、こちらの窓口は文字を打つところだけです。
作れる人は、少ないはずです。
エージェントを毎日使い倒していて、かつ画面もサーバも自分で作れる人。この二つが重なる人口は、そう多くありません。
在庫もあります。
二十年、机の前でコードを書いてきました。
うまくいかない理由を考えて、直して、また考えて。その一番しんどい部分を、AIが肩代わりするようになりました。
大きかったのは、AIが直接コンピュータを操作できるようになったことです。
賢い返事が返ってくるだけなら、結局こちらが手を動かすことになります。そうではなく、AIにコンピュータを使わせる。ファイルを開いて、コマンドを走らせて、コミットまでやってもらう。ここが変わり目でした。
そこまでできるなら、こちらが机にいる必要はありません。
苦労していた頃は、その場所にいなければ何も進みませんでした。いまは指示さえ出せれば、向こうで進みます。
そう思って作ったのがAgentNestです。
自宅の開発マシンで動いているエージェントを、外出先のiPhoneのブラウザから操作します。指示を出し、権限の確認に答え、ファイルを覗き、コミットまでできます。手元にパソコンがなくても開発が進みます。
作っているうちに、UIの大半がiPhoneのための処理になりました。
ソフトウェアキーボードが出たときの高さの検出、セーフエリアの回避、片手で押せる位置へのボタンの配置。エージェントを操作するアプリを作っているつもりが、気づけば画面と親指の話ばかりしていました。
これはたぶん、偶然ではありません。
エージェントは、机の前にいなくてもよくなった最初の道具です。指示を出したら数分は待つだけなので、その間どこにいてもかまいません。だとすれば触る場所は机ではなく、電車の中や布団の上になります。
ほかにもClaudeViewerとCSDevToolsを作りました。会話ログを読むものと、複数のAIのログを横断して検索するものです。どれも自分が使いたくて作ったもので、誰かのために準備したわけではありません。
何が欲しいのかは、まだ分からない¶
正直に言うと、何を作れば当たるのかは分かっていません。
分かっていたら、それはもう意識化された不便です。
分かっているのは、いまの触り方が正解ではないということだけです。
エージェントに仕事を投げて、待って、結果を読む。この待ち時間に何をしていいのか分かりません。進捗の見え方も、途中で口を挟む方法も、複数動かしたときの並べ方も、決定版がありません。毎日「なんか違う」と思いながら使っています。
AgentNestを作ってみて、そのことがかえってはっきりしました。
外から操作させる部分は、形になりました。けれど、それを人がどう見て、どこで口を挟むのか。iPhoneの小さい画面に何を出せばいいのか。全部出せば読めません。要約すれば判断できません。いま出しているものは、結局パソコン版を小さくしただけです。
コンピュータを操作するAIを、指先で扱うための形。
それがどんなものなのかを、私はまだ見たことがありません。
その「なんか違う」が、いま一番価値のある信号です。
自分への方針¶
そこで、自分なりに決めたことがいくつかあります。
隙間探しはAIに任せない。 任せると、書かれた不便が出てきます。埋めるべき穴の一覧としては優秀ですが、当てにいく場所の一覧ではないようです。
新しい場には、なるべく早く触っておく。 FingerPianoのときにやっていたのも、結局これでした。準備のつもりはなく、ただ面白がって触っていただけです。それが後から在庫になりました。
「なんか違う」は、その日のうちに書き留める。 翌日には慣れて、感じなくなります。慣れるというのは、不便が消えることではなく、不便を感じる力が鈍ることなのだと思います。もったいない話です。
分解までは自分でやる。 何がどう違うのかを言葉にするところは、人にもAIにも渡しにくい。渡せるのは、そこから先です。
便利なだけで満足しないようにする。 作ったものを自分で触って、気持ちが動かなければ、まだ途中ということにしています。便利どまりのものを作っているときは、たいてい安全な側に寄っている気がします。
実装は、もう障害ではありません。
残っているのは、自分の気持ちが動いた瞬間に、それを見逃さない速度だけです。
二十年後に効いた¶
FingerPianoのWindows版を作っていた頃、iPhoneはまだありませんでした。
何かの役に立てようと思って作ったわけでもありません。ただ、鍵盤を画面に出したかっただけです。
役に立ったのは、ずいぶん後でした。
だから、いま海に潜って魚を撮って、山を歩いてログを取って、標本を作って、3Dプリンタで部品を出していることも、たぶん同じです。何の準備でもありません。ただ好きでやっています。
それが在庫になるのかどうかは、その場が来るまで分かりません。
来たときに手元に何もない人と、何かある人。差があるのは、たぶんここでした。安く買って高く売る話ではありませんでした。
いま手元にあるものを数えてみて、悪くない、と思いました。
欄外 - AIが見つけてきた隙間の一覧¶
乗り気にはなりませんでしたが、調査結果そのものは面白いものでした。
一次情報(GitHub Issues、メーカー公式フォーラム、開発者ブログ)から裏を取ったもので、裏取りで消えた候補も末尾に置いてあります。埋めれば確実に使われる種類の隙間です。
HDRゲインマップの相互変換
ISO 21496-1 が2025年7月に規格化されましたが、Apple形式とGoogle/Adobe形式に互換がなく、変換する手段が事実上Lightroomでの再保存しかありません。Affinity、Capture One、Adobe Bridge、Finderのサムネイルはいずれも未対応。libultrahdr がJPEGのみでHEICのゲインマップを扱えないため、Immichでは対応要望が188票集まったまま止まっています。
HEIC変換ペアの重複検出
iCloudやSynologyがHEICをJPEGに自動変換するため、「見た目は同一だがバイナリが全く違う」ペアが大量に発生します。ハッシュ方式の重複検出はこれを取りこぼします。Immichに複数のissueがあり、「重複時にHEICを残す」という設定も要望されたまま未実装です。
3MFの色情報が消える
3MFがISO標準になり、スライサー側が3MF主軸へ移行しました。ところがCAD側の書き出しで色が落ちます。OpenSCADのissueは「対応しない」で閉じられ、CadQueryの報告は2023年から返信がありません。3MFはZIPとXMLなので、後段で修復するツールとして成立します。
Apple Log / Log 2 の変換LUT
Appleが公式LUTを配布していないため、非公式のものが有料無料で乱立しています。世代ごとに色が合わず、iPhone 15用を16の素材に当てると肌が破綻するという報告があります。Final Cutには内蔵されているのに、ファイルとして取り出せません。素材のメタデータから世代を判定してLUTを生成する、という形なら小さく作れます。
HDR HEICのサムネイルが潰れる
Photomatorから書き出したHDR HEICが、Immichのサムネイル生成で色が抜けます。iPhone製のものでは起きません。差は10bit RGBAか8bit 3チャンネルかという点にあり、関連するオープンissueが複数あります。
なお調査では、GoProのHERO13でGPSが失われたという前提と、Googleのspatial-mediaがアーカイブされたという前提が、どちらも事実と違うことも分かりました。前者はHERO12の話で13では復活しており、後者はソースが生きていて配布バイナリだけが2018年のまま古びていました。
こういうものが十分ほどで出てくるので、道具としては大したものです。