Google Cloud AIハッカソンVol.4にBrickQuestを出品した。ありがたいことに本選に進めたが、まだまだ課題が多い。
Questシリーズに新しい実験が一つ加わった。今回はレゴ。
🔬 ハッカソンに出てみよう
日本の開発者の間で広く使われているZennというプラットフォームがある。技術ブログ+開発者コミュニティで、定期的にハッカソンも開催している。今回、Zennで第4回 Agentic AI Hackathon with Google Cloudが開催された。核心テーマはAgentic AI——自分で考えて自分で動くAIエージェントを作ること。
何で出品しようか悩んでいたら、前からちょっと不便に思っていたことが一つ浮かんだ。うちには6歳と8歳の子どもがいて、レゴセットを買うと一度組み立てて、説明書はどこかに消え、ブリックは全部一つの箱にごちゃ混ぜになる。その箱を見るたびに「これで何か新しいもの作れないかな」と思っていた。作ってみたらどうだろう?ということで始めた。
🚀 BrickQuestでできること
2つのモードを作った。
Designモード
写真をアップロードすると、AIがレゴ設計に変換してくれる。正面・側面・背面の図面を作って、3D組み立てガイドが出てくる。BrickLinkのパーツリストも一緒に出る。ただ、複雑なモデルはまだちょっと微妙。
MyBrickモード
家に転がってるブリックを撮影すると、AIが一つずつ識別してくれる。「2x4赤ブリック」「1x2青プレート」みたいな感じ。パーツが溜まると「今あるもので作れるもの」を提案してくれるが、認識精度はまだまだ。
💎 物理エンジンでAIを補正する試み
Geminiにレゴ設計をさせると、デザイン自体はけっこういいのが出る。でも空間の感覚がない。ブリック同士が重なったり、空中に浮いたり、レゴのグリッドからずれてたりすることがかなりある。
そこでフィードバックループを作ってみた:
アイデアは悪くないと思うけど、実際に動かすとまだ不安定。頭の中のイメージと実際の出力はけっこう違う。
🛠️ 技術スタック
- フロントエンド: Next.js 16 + React 19 + Three.js(3Dビューア)
- AI: Gemini 3 Pro(構造化出力 + 拡張思考トークン)
- バックエンド: Cloud Functions 2nd gen + Firestore(リアルタイムリスナー)
- インフラ: Firebase App Hosting + GitHub Actions CI/CD
- i18n: next-intl(韓/英/日)
FirestoreのonSnapshotで、AIがブロックを生成するたびに3Dビューアにすぐ反映されるようにした。この部分はけっこう気に入ってる。
🏆 運良く本選進出
出品作一覧を見たら、合計254プロジェクトが参加していた。1次審査でトップ30に入り、2次審査を通過して最終トップ10に入った。
結果のメールが来た時は正直めちゃくちゃ嬉しかった。締め切り前日から開発を始めたので、全然期待してなかった。運が良かったと思う。他の方々のプロジェクトを見ると、もっと完成度の高いものがたくさんあって、なんで自分が選ばれたのか正直わからない。
2次審査の協議会で寄せられたコメントも一緒にいただいた:
> 手持ちのレゴブロックを画像認識で分析し、そこから作れるものを提案するというアプローチが、既存のブロック組み立て体験にはない独自の価値として評価されました。リアル世界との接合によって生まれるユーザー体験の魅力を最終ピッチでお聞きしたいと思いました。
ありがたいコメントだ。ピッチの方向性が少し見えてきた気がする。
本選は3月19日のAgentic AI Summit '26 Springで開催される。ただ参加するだけじゃなくて、実際にステージに立ってピッチをしなきゃいけない。最優秀賞50万円(1チーム)、優秀賞各25万円(3チーム)、奨励賞各10万円(5チーム)。9チームまで賞金があって、最下位だけなし。10チーム中9チームだから確率は悪くないけど…最下位はちょっとつらい。会場にはプロジェクト展示エリアもあって、A1パネルを作って掲示する。
当日のスケジュールも届いた:
準備の締め切りもタイト。展示パネルが3/9まで、ピッチ資料が3/13まで。あまり時間がない。
💡 学んだこと
AIが苦手な部分をシステムで補うパターンはなかなか面白い。レゴ以外にも建築モデリングや家具配置とかに使えそうな気はするけど、まだ頭の中の話。実際に作るとなると先は長い。
あと、ハッカソンは締め切りに追われずに余裕を持って準備しよう。今回痛感した。
🎯 次にやること
運良くここまで来た。粗い部分を直して、精一杯やろう。賞をもらえたら嬉しいし、もらえなくてもいい経験だ。