이 글의 목적

3×3 큐브 앱에 쓴 소스 코드를 공개합니다. 파일을 펼칠 때만 코드를 불러옵니다.

사용한 도구

  • Qt6(Core, Gui, Widgets, OpenGL, Network)와 OpenGL: 3D 큐브, 사진 불러오기 화면
  • Kociemba 2단계 탐색: muodov/kociemba의 C 코드를 그대로 넣었습니다. GPL-2.0입니다.
  • Qwen3-VL-8B-Instruct(transformers, 맥 MPS): VLM 스캔 서버. 앱과 TCP로 붙습니다.

폴더 구성

  • src/CubeModel: 큐브 상태, 회전, 색 분류
  • src/CubeWidget, MainWindow: OpenGL 화면과 마우스 회전, 섞기·이전·다음·오라클 버튼
  • src/CubePhotoReconstructor: 사진 두 장에서 54칸 읽기, 규칙 검사, 자동 교정
  • src/PhotoImportDialog: 사진 불러오기, 일반·VLM 스캔, 칸 누르면 뜨는 6색 링
  • src/KociembaSolver, Oracle, BeginnerSolver, MoveSolver: 풀이. Kociemba → 짧은 탐색 → 초보자 층별 순서로 씁니다.
  • src/TcpCubeVlmClient, vlm_server: VLM 스캔 클라이언트와 서버
  • tools/face_scan_cli.py: 면 하나씩 색을 확인하던 명령줄 도구
  • third_party/ckociemba: Kociemba C 코드

빌드는 README대로 cmake로 합니다. 빌드 결과, 가상환경, Kociemba 표 파일(cache), 시험 사진은 싣지 않았습니다. 시험 프로그램 82개는 시험 사진 경로가 코드에 들어 있어 뺐습니다.

전체 소스

42개 파일 · 11,309줄 — 폴더를 펼친 뒤 파일을 누르면 코드를 불러옵니다.

프로젝트 루트2개 파일
CMakeLists.txttext · 405줄 · 20KB

코드를 불러오는 중입니다…

README.mdmarkdown · 47줄 · 1KB

코드를 불러오는 중입니다…

src/21개 파일
src/BeginnerSolver.cppc++ · 1,095줄 · 34KB

코드를 불러오는 중입니다…

src/BeginnerSolver.hc++ · 11줄 · 250B

코드를 불러오는 중입니다…

src/CubeModel.cppc++ · 536줄 · 19KB

코드를 불러오는 중입니다…

src/CubeModel.hc++ · 64줄 · 2KB

코드를 불러오는 중입니다…

src/CubePhotoReconstructor.cppc++ · 3,353줄 · 133KB

코드를 불러오는 중입니다…

src/CubePhotoReconstructor.hc++ · 62줄 · 2KB

코드를 불러오는 중입니다…

src/CubeWidget.cppc++ · 737줄 · 21KB

코드를 불러오는 중입니다…

src/CubeWidget.hc++ · 108줄 · 3KB

코드를 불러오는 중입니다…

src/KociembaSolver.cppc++ · 172줄 · 5KB

코드를 불러오는 중입니다…

src/KociembaSolver.hc++ · 21줄 · 611B

코드를 불러오는 중입니다…

src/main.cppc++ · 19줄 · 400B

코드를 불러오는 중입니다…

src/MainWindow.cppc++ · 160줄 · 6KB

코드를 불러오는 중입니다…

src/MainWindow.hc++ · 26줄 · 570B

코드를 불러오는 중입니다…

src/MoveSolver.cppc++ · 144줄 · 5KB

코드를 불러오는 중입니다…

src/MoveSolver.hc++ · 28줄 · 760B

코드를 불러오는 중입니다…

src/Oracle.cppc++ · 422줄 · 14KB

코드를 불러오는 중입니다…

src/Oracle.hc++ · 18줄 · 557B

코드를 불러오는 중입니다…

src/PhotoImportDialog.cppc++ · 618줄 · 24KB

코드를 불러오는 중입니다…

src/PhotoImportDialog.hc++ · 62줄 · 2KB

코드를 불러오는 중입니다…

src/TcpCubeVlmClient.cppc++ · 252줄 · 7KB

코드를 불러오는 중입니다…

src/TcpCubeVlmClient.hc++ · 53줄 · 1KB

코드를 불러오는 중입니다…

third_party/15개 파일
third_party/ckociemba/coordcube.ctext · 366줄 · 14KB

코드를 불러오는 중입니다…

third_party/ckociemba/cubiecube.ctext · 693줄 · 20KB

코드를 불러오는 중입니다…

third_party/ckociemba/facecube.ctext · 130줄 · 4KB

코드를 불러오는 중입니다…

third_party/ckociemba/include/color.hc++ · 7줄 · 144B

코드를 불러오는 중입니다…

third_party/ckociemba/include/coordcube.hc++ · 113줄 · 4KB

코드를 불러오는 중입니다…

third_party/ckociemba/include/corner.hc++ · 10줄 · 248B

코드를 불러오는 중입니다…

third_party/ckociemba/include/cubiecube.hc++ · 68줄 · 2KB

코드를 불러오는 중입니다…

third_party/ckociemba/include/edge.hc++ · 9줄 · 231B

코드를 불러오는 중입니다…

third_party/ckociemba/include/facecube.hc++ · 41줄 · 1KB

코드를 불러오는 중입니다…

third_party/ckociemba/include/facelet.hc++ · 41줄 · 2KB

코드를 불러오는 중입니다…

third_party/ckociemba/include/prunetable_helpers.hc++ · 21줄 · 627B

코드를 불러오는 중입니다…

third_party/ckociemba/include/search.hc++ · 63줄 · 3KB

코드를 불러오는 중입니다…

third_party/ckociemba/prunetable_helpers.ctext · 77줄 · 2KB

코드를 불러오는 중입니다…

third_party/ckociemba/README.mdmarkdown · 6줄 · 189B

코드를 불러오는 중입니다…

third_party/ckociemba/search.ctext · 333줄 · 11KB

코드를 불러오는 중입니다…

tools/1개 파일
tools/face_scan_cli.pypython · 403줄 · 13KB

코드를 불러오는 중입니다…

vlm_server/3개 파일
vlm_server/cube_vlm_server.pypython · 488줄 · 16KB

코드를 불러오는 중입니다…

vlm_server/README.mdmarkdown · 21줄 · 732B

코드를 불러오는 중입니다…

vlm_server/requirements.txttext · 6줄 · 72B

코드를 불러오는 중입니다…