BrickQuest - Hackathon Submission, Somehow Made It to the Finals
Submitted BrickQuest to Google Cloud AI Hackathon Vol.4. Grateful to have made it to the finals, but still a lot of rough edges.
New addition to the Quest series. This time, LEGO.
π¬ Let's Enter a Hackathon
There's a platform called Zenn that's popular among developers in Japan β a tech blog and developer community. They host regular hackathons, and this time Google Cloud Japan AI Hackathon Vol.4 was held on Zenn. The core theme was Agentic AI β building AI agents that can think and act on their own.
I was trying to figure out what to submit, and then something that had been bugging me for a while came to mind. I have two kids, 6 and 8. We buy LEGO sets, they build once, the instructions disappear, and all the bricks end up dumped into one big bin. Every time I looked at that bin I thought, "I wish we could build something new from all this." So I figured, why not try making that?
π What BrickQuest Does
Two modes.
Design Mode
Upload a photo and AI turns it into a brick design. Generates front/side/rear views, then produces 3D step-by-step assembly instructions. Even spits out a BrickLink parts list. Complex models are still pretty rough though.
MyBrick Mode
Take photos of your scattered bricks and AI identifies them one by one. "2x4 red brick," "1x2 blue plate," that kind of thing. Once enough pieces pile up, it suggests what you could build with them. Recognition accuracy still has a ways to go.
π Fixing AI with a Physics Engine
Gemini is decent at coming up with designs. But it has no spatial awareness. Bricks overlap, float in mid-air, or land off the LEGO grid pretty often.
So I put together a feedback loop:
The idea seems decent, but in practice it's still shaky. What you picture in your head and what actually comes out are pretty different.
π οΈ Tech Stack
- Frontend: Next.js 16 + React 19 + Three.js (3D viewer)
- AI: Gemini 3 Pro (structured output + extended thinking tokens)
- Backend: Cloud Functions 2nd gen + Firestore (realtime listeners)
- Infra: Firebase App Hosting + GitHub Actions CI/CD
- i18n: next-intl (ko/en/ja)
Used Firestore's onSnapshot so blocks show up in the 3D viewer the moment AI generates them. That part I'm pretty happy with.
π Got Lucky and Made the Finals
Checked the project list β 254 submissions total. Made it through the first round into Top 30, then passed the second review to land in the final Top 10.
I was genuinely thrilled when the email came in. Started coding the day before the deadline so I had zero expectations. Just got lucky, honestly. Looking at other submissions, there's way more polished stuff out there, and I still don't really know why mine got picked.
The second-round review panel also sent some feedback:
> The approach of analyzing LEGO bricks via image recognition and suggesting what can be built from them was recognized as a unique value not found in existing block-building experiences. We'd like to hear more about the appeal of the user experience created by connecting with the real world in the final pitch.
Really grateful for that kind of comment. Gives me a clearer direction for the pitch.
The finals are March 19th at Agentic AI Summit '26 Spring. Not just attending β I actually have to get on stage and pitch. Grand prize Β₯500k (1 team), excellence Β₯250k each (3 teams), encouragement Β₯100k each (5 teams). 9 out of 10 get prize money, only last place gets nothing. Odds aren't bad... but coming in last would sting. There's also an exhibition area where each finalist puts up an A1 panel.
Day-of schedule:
Deadlines are tight too. Exhibition panel due 3/9, pitch deck due 3/13. Not much time left.
π‘ What I Learned
Using a system to catch what AI gets wrong is a pretty fun pattern. Could maybe apply it to things like architectural modeling or furniture placement, but that's just a thought for now. Long way from actually building any of that.
Also: don't cram a hackathon project into the last day. Learned that one the hard way this time.
π― What's Next
Got lucky to make it this far. Going to polish up the rough spots and give it my best. Win or lose, it's been a good ride.