Index
2026-10-08 — Engineering

BrickSim Duplo 스케일 빌드

Bricks | 스터드 8 mm → 16 mm, native 재빌드

TL;DR

92.7%
Duplo expert
87.7%
LEGO expert
10분
native 빌드
7
수정 파일

1 배경 / 목적

BrickSim은 LEGO 규격만 지원하는데 목표 벤치마크(WorkBenchMark, BrickCraft)는 Duplo다. LEGO 2x4는 Duplo의 1/8 부피라 카메라에서 수 픽셀이고 허용 오차와 파지 조건도 달라서, Duplo화가 가능한지부터 확인했다.

LEGODuplo
스터드 간격8 mm16 mm
브릭 높이9.6 mm19.2 mm
2x4 브릭16 x 32 x 9.6 mm32 x 64 x 19.2 mm

2 작업 내용

native/modules/bricksim/core/specs.cppm BrickScale = 2.0 추가, 길이 상수 4개에 곱함 native/modules/bricksim/core/mass.cppm LEGO 실측 질량 x 5 (추정) native/modules/bricksim/usd/author.cppm 벽 두께, tube, pillar, 공차 스케일 native/modules/bricksim/usd/arrange.cppm clearance, grid 해상도 python/bricksim/units.py BRICK_SCALE python/bricksim/envs/assemble_brick/expert.py 파지/삽입 깊이 스케일 python/bricksim/envs/assemble_brick/env.py baseplate 32x32 → 16x16, 스폰 y (0.22, 0.34)

변경분은 patches/bricksim_duplo.patch로 보관했다. 정확히 2배로 한 것은 tube/pillar/stud 기하가 서로 맞물리게 유지되기 때문이며, 실제 Duplo stud(약 9.4 x 4.4 mm)와는 약간 다르다.

3 결과

빌드성공Timeout오연결낙하완료순env별 균등
Duplo (job 180187)278220092.7%91.3% (n=208)
LEGO (job 178995)263352087.7%87.0% (n=192)
가장자리 걸림 해소: LEGO에서 약 16건이던 baseplate 가장자리 파지 실패가 스폰 범위 조정 후 0건.
남은 실패: 22건 중 19건이 목표 yaw 90°/270°. 목표 위 z≈0.046에서 멈춤 10건, 스터드 위에 얹힌 채 연결 미형성 8건.
비교 한계: 두 평가는 seed와 스폰 범위가 달라 엄밀한 A/B가 아니다.
Duplo episodes
Duplo 스케일 expert 3 episode. 왼쪽 3칸 front, 오른쪽 3칸 side 카메라 (시작 / 중간 / 끝)

4 Takeaway

의미

BrickSim을 Duplo 벤치마크용 엔진으로 쓸 수 있다. 다만 BrickSim 논문의 물리 검증(실제 구조물 150개)은 LEGO 기준이므로, Duplo에서의 안정성·파손 예측은 따로 검증하기 전까지 신뢰할 수 없다.

5 Next Steps

미해결

질량, stud 실치수, 조립 임계값(required_force 1 N, position_tolerance 2 mm), 파손 임계값(preloaded_force 3.5 N)이 추정이거나 LEGO 값 그대로. yaw 90°/270° 삽입 실패 원인 미분석.

다음 작업

2x2 브릭 추가와 WorkBenchMark YAML 기반 다단 조립 env, wrist 카메라 배치 재설계.