신의 숫자(God's Number)에 대해 들어본 적 있어?
Have you heard of God‘s Number?
핵심 요약
3x3 루빅스 큐브를 20수 이내로 해결하는 웹 기반 솔버 도구 소개.
- 웹 기반 솔버 — 별도 설치 없이 카메라로 큐브를 스캔해 최단 경로를 안내함.
- 기술 스택 — React, TypeScript, OpenCV.js, Three.js를 활용해 브라우저에서 구동됨.
- 알고리즘 — Kociemba의 2단계 알고리즘을 사용하여 20수 이내의 해법을 찾아냄.
- 개선 과제 — 여러 면을 연속적으로 추적하는 기술을 고도화하는 중임.
모든 3x3 루빅스 큐브는 20수 이하로 해결할 수 있음. 2010년에 수학적으로 증명됨. 스스로 최단 경로를 찾는 건 거의 불가능함.
하지만 컴퓨터는 가능함.
내가 최단 경로를 단계별로 따라갈 수 있는 도구를 만들었음.
설치 필요 없음. 링크를 열고 카메라 접근을 허용하면 됨.
https://wooramsol.github.io/makemecubemaster/
- 색상 보정: 조명 환경에 맞춰 6가지 스티커 색상을 스캔함
- 스캔: 전면 카메라로 섞인 큐브의 6개 면을 모두 캡처함(색상이 잘못 보이면 바의 해당 면을 탭해서 재스캔)
- 계산: 솔버가 20수 이내의 시퀀스를 찾아냄
- 해결: 3D 가이드를 따라가면 됨
기술적 요약: 모든 것은 브라우저에서 실행됨 — React + TypeScript PWA, 백엔드 없음. OpenCV.js가 큐브 감지와 포즈 추적을 처리하고, 스티커 색상은 CIE Lab 공간에서 보정값과 비교하여 분류함(RGB보다 조명 변화에 훨씬 강함). 솔버는 Web Worker에서 실행되는 Kociemba의 2단계 알고리즘(cubejs)이며, 검색 깊이를 20으로 제한하여 '신의 숫자' 이내의 해법을 찾을 때까지 검색함. 3D 가이드는 Three.js를 사용함.
아직 개선하려고 노력 중인 부분은 3개의 보이는 면을 연속적으로 추적해서 사용자가 일일이 면을 멈추고 스캔할 필요 없게 만드는 것임. 비슷한 걸 만들어봤거나 가장 좋은 접근 방식에 대해 아이디어 있는 사람 있음?



