Loading Park Labs...
Loading Park Labs...
LAB NOTE No.0182026.03.04マイルストーン
Questシリーズに新しい実験がひとつ加わった。今回はレゴ。Zennで開かれた第4回 Agentic AI Hackathon with Google CloudにBrickQuestを出品したら、運良く最終Top 10に入り、3月19日の本選に出ることになった。

Table 1
| 項目 | 内容 |
|---|---|
| 大会 | 第4回 Agentic AI Hackathon with Google Cloud(Zenn) |
| テーマ | Agentic AI。自分で判断して動くAIエージェント |
| 出品作 | BrickQuest・写真をレゴの設計に変え、手持ちのブロックで作れるものを提案するAI |
| 審査 | 一次審査 Top 30、二次審査 Top 10(本選進出) |
| 本選 | 2026年3月19日、Google Cloud Agentic AI Summit '26 Springでピッチ |
日本の開発者がよく使うZennというプラットフォームがある。技術ブログと開発者コミュニティを合わせたような場所で、定期的にハッカソンも開いている。今回、Zennで第4回 Agentic AI Hackathon with Google Cloudが開かれた。テーマはAgentic AI。自分で判断して動くAIエージェントを作ることだ。
何で出品しようか悩んでいたら、前からちょっと不便に思っていたことがひとつ浮かんだ。うちには6歳と8歳の子どもがいて、レゴのセットを買ってあげると、一度組み立てたあと説明書はどこかに消えてしまう。そのうちいろいろなものがひとつの箱にごちゃ混ぜになって、結局どれがどのセットかわからないブロックの山になる。その箱を見るたびに「これで何か新しいものが作れたらいいのに」と思っていた。これを作ってみたらどうだろう?と思って始めた。
2つのモードを作った。
Designモードは、写真をアップロードするとAIがレゴの設計に変えてくれる。正面・側面・背面の図面を作り、3Dの組み立てガイドが出てくる。BrickLinkのパーツリストも一緒に出してくれる。ただ、複雑なモデルはまだ出来がいまひとつだ。
MyBrickモードは、家に転がっているブロックを撮影すると、AIがひとつずつ見分けてくれる。「2x4の赤いブロック」「1x2の青いプレート」という感じで。これがたまると「今あるパーツで作れるもの」を提案してくれるが、認識精度はまだまだだ。
Geminiにレゴの設計をさせると、デザインそのものはかなりいいものを出してくれる。でも空間の感覚がない。ブロック同士が重なったり、宙に浮いていたり、レゴのグリッドからずれた位置に置かれたりすることがかなり多い。
そこで、自分なりにフィードバックループを作ってみた。
%% Geminiと物理エンジンのフィードバックループ・出品時のBrickQuestの構成
flowchart TD
A["Gemini・JSON Schemaで座標とサイズを出力"] --> B["グリッドスナップ"]
B --> C["高さ順に並べ替え"]
C --> D["重力チェック"]
D --> E["衝突の解消"]
E --> F{"削除されたブロックが多すぎるか"}
F -->|"はい"| G["外れたブロックと理由をGeminiに渡す"]
G -->|"再生成・最大3回"| A
F -->|"いいえ"| H["いちばん良い結果を使う"]物理エンジンは、グリッドスナップから衝突の解消まで4段階で検証する。削除されたブロックが多すぎると、「このブロックはここでこういう理由で外れた」という情報をGeminiに戻して作り直させる。最大3回繰り返して、一番ましな結果を使う。
アイデアは悪くないと思うけど、実際に動かすとまだ不安定だ。頭の中で描いたものと実際の出力は、ちょっと違った。
Table 2
| 領域 | 使ったもの |
|---|---|
| フロントエンド | 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のプロジェクトが並んでいた。一次審査でTop 30に入り、二次審査を通って最終Top 10に入った。
結果のメールが来たときは、正直すごくうれしかった。締切の前日に開発を始めたので期待もしていなかったし、運がよかったと思う。他の方々のプロジェクトを見ると、ずっとよくできたものがたくさんあって、なぜ選ばれたのかは今でもわからない。
二次審査で審査員の方々が書いてくださったコメントも一緒に届いた。
手持ちのレゴブロックを画像認識で分析し、そこから作れるものを提案するというアプローチが、既存のブロック組み立て体験にはない独自の価値として評価されました。リアル世界との接合によって生まれるユーザー体験の魅力を最終ピッチでお聞きしたいと思いました。
ありがたいコメントだ。
本選は3月19日、Google Cloud Agentic AI Summit '26 Springで開かれる。ただ参加するだけでなく、自分でステージに立ってピッチをしなければならない。賞は最優秀賞50万円(1チーム)、優秀賞各25万円(3チーム)、奨励賞各10万円(5チーム)。9チームまで賞金があって、最下位だけもらえないようだ。10チーム中9チームだから確率は悪くないけど…最下位はちょっと悲しいだろうな。会場にはプロジェクトの展示ブースもあるので、A1パネルを作って掲示しなければならない。
当日のスケジュールも届いた。
Table 3
| 時間 | 内容 |
|---|---|
| 9:00 | 登壇者バッジ受け取り |
| 9:15〜10:05 | リハーサル |
| 10:05〜15:15 | 自由時間、展示対応 |
| 15:15 | 本番ピッチ開始 |
| 17:30 | 終了 |
| 17:30〜18:30 | 懇親会 |
準備の締切もきつい。展示パネルは3月9日まで、ピッチ資料は3月13日まで。あまり時間がない。
AIが苦手なところをシステムで補うパターンは、なかなか面白い。レゴ以外にも建築モデリングや家具の配置なんかに使えそうな気はするけど、今はまだ考えているだけで、実際にやるとなると先は長い。
それと、ハッカソンは締切に追われず、早めに準備しよう。今回、身にしみて感じた。
パネルとピッチ資料(Google Slides)を作りながら、デモも安定させないといけない。ライブで落ちたら終わりだから。ブロックの認識精度ももっと上げたい。発表の練習もしなければならないけど、日本語でピッチしないといけないので緊張する。
運良くここまで来た。足りないところを磨いて、全力を尽くそう。賞をもらえたらうれしいし、もらえなくてもいい経験だ。