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 |
| 심사 | 1차 심사 Top 30, 2차 심사 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살 아이들이 있는데, 레고 세트를 사주면 한 번 조립하고 나서 설명서는 어디론가 사라진다. 그러다 보면 이것저것 한 상자에 막 섞이기 시작하고, 결국 어떤 세트가 어떤 건지 알 수 없는 브릭 더미가 된다. 그 상자를 볼 때마다 "이걸로 뭔가 새로 만들 수 있으면 좋겠는데" 싶었다. 이걸 만들어보면 어떨까? 해서 시작했다.
두 가지 모드를 만들었다.
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개 프로젝트가 올라와 있었다. 1차 심사에서 Top 30에 들었고, 2차 심사를 통과해서 최종 Top 10에 들어갔다.
결과 메일 받았을 때 솔직히 진짜 기뻤다. 마감 하루 전에 개발 시작한 거라 기대도 안 했는데, 운이 좋았던 것 같다. 다른 분들 프로젝트 보면 훨씬 잘 만든 게 많아서, 왜 뽑혔는지는 아직도 모르겠다.
2차 심사 때 심사위원분들이 남겨주신 코멘트도 같이 받았다.
手持ちのレゴブロックを画像認識で分析し、そこから作れるものを提案するというアプローチが、既存のブロック組み立て体験にはない独自の価値として評価されました。リアル世界との接合によって生まれるユーザー体験の魅力を最終ピッチでお聞きしたいと思いました。
"갖고 있는 레고 브릭을 이미지 인식으로 분석해서 만들 수 있는 걸 제안하는 접근이, 기존 블록 조립 경험에 없는 고유한 가치로 평가됐다. 현실 세계와의 연결에서 생기는 사용자 경험의 매력을 최종 피칭에서 듣고 싶다." 대충 이런 내용이다. 감사하다.
본선은 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)를 만들면서 데모도 안정화해야 한다. 라이브에서 터지면 끝이니까. 브릭 인식 정확도도 더 올리고 싶다. 발표 연습도 해야 하는데, 일본어로 피칭해야 해서 긴장된다.
운 좋게 여기까지 왔다. 부족한 부분 다듬어서 최선을 다해보자. 상 타면 좋고, 못 타도 좋은 경험이다.