본문 바로가기
ML & DL/논문리뷰

LegoGPT: Generating Physically Stable and Buildable LEGO® Designs from Text

by 공부하는 무니 2025. 5. 11.
반응형

원문: https://arxiv.org/pdf/2505.05469

데모 & 코드: https://avalovelace1.github.io/LegoGPT/

 

LegoGPT: Generating Physically Stable and Buildable LEGO Designs from Text

Abstract We introduce LegoGPT, the first approach for generating physically stable LEGO brick models from text prompts. To achieve this, we construct a large-scale, physically stable dataset of LEGO designs, along with their associated captions, and train

avalovelace1.github.io

 

Abstract

이 논문은 사람이 입력한 텍스트 설명을 바탕으로, 실제 조립 가능한 레고 작품을 만들어주는 AI, "LEGOGPT"를 소개하는 내용입니다.

예를 들어, 누군가 "노란색 해변가에 있는 빨간 등대"라고 입력하면, 이 AI는 그에 맞는 레고 디자인을 자동으로 만들어줍니다. 단순히 모양만 비슷하게 만드는 게 아니라, 무너지지 않고 실제로 조립할 수 있게 설계된 구조를 만들어냅니다.

이를 위해 연구팀은

  • 47,000개 이상의 레고 디자인과 그에 대한 설명이 담긴 데이터를 모아 AI를 훈련했고,
  • 조립이 안 되는 블록 조합은 물리 법칙을 이용해 자동으로 걸러내는 기술도 넣었습니다.

그리고 이 AI가 만든 디자인은

  • 사람이 실제로 조립할 수 있고,
  • 로봇 팔이 자동으로 조립할 수도 있을 정도로 현실적인 구조입니다.
    또한 색상이나 질감도 입힐 수 있는 기능도 들어 있습니다.

이 모든 것을 담은 StableText2Lego 데이터셋과 코드는 무료로 공개되어 있습니다.

 

 

1. Introduction

3D를 텍스트로 만들어주는 AI 기술은 점점 좋아지고 있지만, 실제로 만들 수 있는(현실에서 조립 가능한) 구조물은 아직 어렵다는 문제점이 있습니다.

그 이유는 다음과 같습니다.

  • 만들어진 디자인이 실제로 조립이 불가능하거나
  • 조립해도 구조적으로 불안정해서 무너질 수 있기 때문

이 논문은 그런 문제를 해결하기 위해,

  • 레고(LEGO)를 대상으로 한 설계 AI인 "LEGOGPT"를 만들었고,
  • 사람이 입력한 문장(예: "노란 우주선" 같은 문장)에 맞게,
  • 실제로 조립 가능한 형태로 안정적인 레고 구조물을 자동 생성하는 AI를 만든 것

기존 언어 모델처럼 단어 대신 "다음 블록은 뭘 붙일까?"를 예측하는 방식으로 작동하고,

  • 물리적으로 맞지 않으면 걸러내는 검사 기능도 들어 있습니다.
  • 사람이나 로봇이 실제로 조립할 수 있을 정도로 현실적인 디자인을 만들어낼 수 있습니다.

결과적으로 이 AI는

  • 텍스트에 맞게 디자인을 잘 만들고,
  • 안정성과 조립 가능성도 갖추었으며,
  • 기존 다른 3D 생성 AI보다 성능이 더 뛰어납니다.

마지막으로, 누구나 쓸 수 있도록 데이터셋과 코드, 모델까지 다 공개하고 있습니다. (https://avalovelace1. github.io/LegoGPT/.)

 

2. Related Work

✅ 기존 연구들

  • Text-to-3D: 텍스트에서 3D 만드는 연구 많음. DreamFusion 같은 게 유명함.
  • 하지만 실제로 만들 수 있을 정도로 튼튼한 구조를 만드는 데는 신경 안 씀.
  • 대부분은 모양만 예쁘게, 조립은 고려 안 함.

✅ 레고 관련 연구들

  • 기존 연구들은 3D 모양이 주어지면 그걸 레고로 바꾸는 연구가 많음.
  • 대부분 수작업 규칙(예: 벽돌 수 최소화)이나 단일한 물체만 다룸.
  • 학습 기반으로 레고를 생성하는 시도는 거의 없음.
  • 텍스트만 보고 처음부터 전체 구조를 만드는 건 없었음.

✅ LEGOGPT의 차별점

  • 텍스트 → 레고 구조 직접 생성
  • 물리 법칙을 적용해서 실제로 조립 가능하게 만듦
  • 중간에 이미지나 복셀로 변환 안 하고, 바로 텍스트에서 레고로 감

3. Dataset

데이터셋

  • 47,000개 이상의 레고 구조물
  • 28,000개 이상의 서로 다른 3D 객체 기반
  • 모두 조립 가능하고 물리적으로 안정적인 구조물만 포함

데이터셋 구축 방법

  • 기존 3D 객체(ShapeNet) → 20x20x20 격자로 변환
  • 알고리즘으로 LEGO 구조 생성 (다양성을 위해 무작위성 추가)
  • 총 8가지 기본 레고 블록만 사용 (예: 2x4, 1x6 등)

안정성 평가

  • 각 블록마다 안정성 점수(0~1) 부여
  • 점수가 0이면 구조가 무너짐 → 그런 건 제거
  • 모든 블록이 안정적일 때만 포함

텍스트 설명(캡션) 

  • 24개 방향에서 이미지 렌더링
  • 그 이미지를 보고 GPT-4o가 설명 5개 생성
  • 색상은 제거, 오직 구조와 형태만 설명

4. Method

4.1. Model Fine-tuning

LEGOGPT 모델이 어떻게 학습되고, 어떻게 블록을 하나씩 만들어가는지 알아봅시다.

1. 어떤 모델을 썼나요?

  • 사전학습된 LLM인 LLaMA-3.2-1B-Instruct 사용
  • 명령어에 맞춰 답변하는 모델이라, “~를 레고로 만들어줘”에 잘 반응함

2. 어떻게 훈련했나요?

  • 텍스트 설명 + 안정적인 레고 구조 쌍을 만들어서이런 형식으로 학습

(user) Create a LEGO model of a tower.
(assistant) 2×4 (0,0,0), 2×4 (0,0,1), ...

 

3. 기존 포맷(LDraw)은 왜 안 썼나요?

  • 너무 복잡하고 쓸데없는 정보가 많았음 (회전, 스케일 등)
  • 대신 간단한 {크기} ({위치}) 형식을 사용

4. 블록은 어떻게 생성하나요?

  • 이전까지 만든 블록들을 참고해서, 하나씩 블록을 예측
  • 예: 첫 번째 블록 보고 두 번째 예측 → 두 번째까지 보고 세 번째 예측 → ...

5. 물리적으로 가능한가요?

  • 예측할 때마다 물리적 힘과 구조 안정성을 계산해서
  • 무너질 것 같은 블록은 제거 (rejection sampling + rollback 사용)

 

4.2. Integrating Physical Stability

문제: 그런데 모델이 잘 만들어도, 현실에서는 무너질 수 있음

✅ 해결책:

  • 물리 기반 시뮬레이션으로 구조가 안정적인지 검사함
  • 각각의 블록에 작용하는 힘을 계산해서 무너지지 않는지 판단함

✅ 방법:

  • 블록 하나하나 예측할 때, 기본적인 충돌 여부만 검사
  • 다 만든 뒤엔 전체 구조의 안정성을 평가
  • 불안정하면 되돌아가서 다시 생성(rollback)

✅ 왜 이렇게 하는가?

  • 매번 검사하면 느리고, 창의적인 디자인도 막혀버림
  • 그래서 속도와 창의성, 안정성 사이 균형을 맞추는 전략을 씀

4.3. LEGO Texturing and Coloring

모양뿐 아니라 색상과 무늬도 레고 디자인에서 매우 중요한 창의적 요소입니다.

 

✅ 방법 1: 텍스처 방식 (UV 텍스처)

  • 블록 표면에 무늬나 이미지처럼 프린트된 외형을 입히는 방식
  • 내부에 가려진 블록은 무시 → 효율 향상
  • FlashTex라는 빠른 알고리즘으로 텍스트 기반 이미지 생성
  • 이 방식은 디테일이 매우 뛰어남, 예술적 조형물에 적합

✅ 방법 2: 균일 색상 방식 (Uniform Color)

  • 각 블록에 레고 정해진 색상 하나씩만 입힘
  • 모든 면을 보고 평균 색상 계산 후, 레고 색상 중 가장 가까운 걸로 결정
  • 실제 레고 부품 사용 가능, 현실 조립에 유리

차이점 비교

항목 UV 텍스처링 균일 색상
표현력 매우 높음 제한적
실물 조립 어려움 (프린팅 필요) 쉬움 (표준 부품 사용 가능)
사용 예 전시용 작품, 게임용 모델 실제 조립 키트, 교육용

5. Experiments

5.1. Implementation Details

✅ 훈련 데이터

  • 240,000개의 텍스트 문장 + 47,000개의 레고 디자인 사용
  • 그 중 90%는 훈련, 10%는 테스트용
  • 한 번에 처리할 수 있는 최대 길이는 4,096 토큰

✅ 평가 방법

  • 무작위로 250개 프롬프트를 선택해서 레고 디자인 생성
  • 생성한 구조물이 물리적으로 무너지지 않는지 평가
  • Gurobi라는 전문 최적화 툴을 사용해 힘의 균형 계산
  • 최대 100번까지 롤백 허용 → 그 전에 안정적이면 채택
  • 보통 2번 정도 롤백하면 안정적인 구조가 나옴
  • 하나 생성하는 데 약 40초 소요

 

5.2. LEGO Generation Results

1. 결과 예시

  • 다양한 문장 입력에 따라 다양하고 멋진 LEGO 구조물이 생성됨
  • 모양도 좋고, 프롬프트와 내용도 잘 맞음

2. 비교 실험

  • 다른 AI 모델들은 보통 메시(mesh)를 만들고 → 레고로 바꿈
  • LEGOGPT는 바로 레고 구조물을 생성

비교 모델

  • LLaMA-Mesh, LGM, XCube, Hunyuan3D-2
  • zero-shot, few-shot 학습된 LLM들과도 비교

3. 평가 방식

  • 유효성과 안정성 (잘 조립되나?)
  • 평균/최소 블록 안정성 점수
  • 프롬프트와 얼마나 잘 맞는지 (CLIP 점수)

결과

  • LEGOGPT가 모든 항목에서 1등
  • 특히, 물리적으로 완성도 높은 구조 생성률이 매우 높음 (98.8%)

4. 왜 LEGOGPT가 잘 되나?

  • Rejection sampling 덕분에 충돌나는 블록 제거됨
  • Rollback 덕분에 무너지지 않게 되돌아감

5.3. Extensions and Applications 

LEGOGPT는 실제 어떻게 쓸 수 있을까요?

 

1. 로봇이 직접 조립 가능

  • 레고GPT가 만든 레고 구조는 무너지지 않고 안정적이라서
  • 로봇 팔 2개가 자동으로 조립 가능!
  • 실제로 로봇이 블록을 집고 조립하는 모습은 Figure 8에 있음
  • 조작 정책과 계획 알고리즘도 활용 (AI 로봇 기술)

2. 사람이 손으로도 조립 가능

  • 그냥 디지털 디자인이 아니라, 현실에서도 직접 조립할 수 있는 구조
  • 무너지지 않고, 표준 블록만 사용해서 손으로도 가능
  • 자세한 예시는 부록 C 참고

3. 색과 무늬 입힌 LEGO도 가능

  • 텍스처 프린팅 버전 (자세한 그림 무늬)
  • 표준 색상 블록 버전 (단일 색상)
  • 두 가지 스타일을 모두 지원 → 예술적인 표현 + 실제 조립 가능성 둘 다 잡음!

6. Discussion and Limitations

  • LEGOGPT는 문장 입력 → 실제로 조립 가능한 LEGO 구조를 만들어주는 AI
  • 기존 AI들보다 더 안정적이고, 정확하고, 실제로 만들기 쉬운 구조를 잘 만들어냄

⚠️ 그런데 아직 이런 점이 부족합니다

1. 데이터와 범위가 아직 작음

  • 현재는 21가지 물체 범주에서만 학습됨
  • 구조 크기도 20×20×20 칸으로 제한
  • 앞으로는 더 큰 데이터셋(예: Objaverse-XL)으로 학습해서 더 다양한 프롬프트도 잘 이해하는 AI로 확장할 예정

2. 블록 종류가 한정적이에요

  • 현재는 기본 블록들만 사용 가능
  • 앞으로는 경사진 블록, 타일, 곡선 등을 추가해서 더 복잡하고 예쁜 레고도 만들 수 있게 개선할 예정

 

반응형

댓글