Objetivo de esta entrada

Publicamos el código fuente que usamos para la app del cubo 3×3. El código solo se carga cuando abres un archivo.

Herramientas utilizadas

  • Qt6 (Core, Gui, Widgets, OpenGL, Network) y OpenGL: el cubo 3D y la pantalla de importación de fotos
  • Búsqueda en dos fases de Kociemba: se incluye tal cual el código en C de muodov/kociemba. Es GPL-2.0.
  • Qwen3-VL-8B-Instruct (transformers, MPS de Mac): el servidor de escaneo con VLM. Se conecta a la app por TCP.

Estructura de carpetas

  • src/CubeModel: estado del cubo, giros y clasificación de colores
  • src/CubeWidget, MainWindow: pantalla OpenGL y giro con el ratón, botones de mezclar, anterior, siguiente y oráculo
  • src/CubePhotoReconstructor: lectura de las 54 casillas a partir de dos fotos, comprobación de reglas y corrección automática
  • src/PhotoImportDialog: importación de fotos, escaneo normal y con VLM, y el anillo de seis colores que aparece al pulsar una casilla
  • src/KociembaSolver, Oracle, BeginnerSolver, MoveSolver: resolución. Se usan en el orden Kociemba → búsqueda corta → método por capas para principiantes.
  • src/TcpCubeVlmClient, vlm_server: cliente y servidor del escaneo con VLM
  • tools/face_scan_cli.py: herramienta de línea de comandos con la que se comprobaban los colores cara a cara
  • third_party/ckociemba: código en C de Kociemba

La compilación se hace con cmake, como indica el README. No se incluyen los resultados de compilación, los entornos virtuales, los archivos de tablas de Kociemba (cache) ni las fotos de prueba. Los 82 programas de prueba se omitieron porque tienen las rutas de las fotos de prueba escritas en el código.

Código fuente completo

42 archivos · 11.309 líneas — abre una carpeta y haz clic en un archivo para cargar su código.

Raíz del proyecto2 archivos
CMakeLists.txttext · 405 líneas · 20KB

Cargando el código…

README.mdmarkdown · 47 líneas · 1KB

Cargando el código…

src/21 archivos
src/BeginnerSolver.cppc++ · 1095 líneas · 34KB

Cargando el código…

src/BeginnerSolver.hc++ · 11 líneas · 250B

Cargando el código…

src/CubeModel.cppc++ · 536 líneas · 19KB

Cargando el código…

src/CubeModel.hc++ · 64 líneas · 2KB

Cargando el código…

src/CubePhotoReconstructor.cppc++ · 3353 líneas · 133KB

Cargando el código…

src/CubePhotoReconstructor.hc++ · 62 líneas · 2KB

Cargando el código…

src/CubeWidget.cppc++ · 737 líneas · 21KB

Cargando el código…

src/CubeWidget.hc++ · 108 líneas · 3KB

Cargando el código…

src/KociembaSolver.cppc++ · 172 líneas · 5KB

Cargando el código…

src/KociembaSolver.hc++ · 21 líneas · 611B

Cargando el código…

src/main.cppc++ · 19 líneas · 400B

Cargando el código…

src/MainWindow.cppc++ · 160 líneas · 6KB

Cargando el código…

src/MainWindow.hc++ · 26 líneas · 570B

Cargando el código…

src/MoveSolver.cppc++ · 144 líneas · 5KB

Cargando el código…

src/MoveSolver.hc++ · 28 líneas · 760B

Cargando el código…

src/Oracle.cppc++ · 422 líneas · 14KB

Cargando el código…

src/Oracle.hc++ · 18 líneas · 557B

Cargando el código…

src/PhotoImportDialog.cppc++ · 618 líneas · 24KB

Cargando el código…

src/PhotoImportDialog.hc++ · 62 líneas · 2KB

Cargando el código…

src/TcpCubeVlmClient.cppc++ · 252 líneas · 7KB

Cargando el código…

src/TcpCubeVlmClient.hc++ · 53 líneas · 1KB

Cargando el código…

third_party/15 archivos
third_party/ckociemba/coordcube.ctext · 366 líneas · 14KB

Cargando el código…

third_party/ckociemba/cubiecube.ctext · 693 líneas · 20KB

Cargando el código…

third_party/ckociemba/facecube.ctext · 130 líneas · 4KB

Cargando el código…

third_party/ckociemba/include/color.hc++ · 7 líneas · 144B

Cargando el código…

third_party/ckociemba/include/coordcube.hc++ · 113 líneas · 4KB

Cargando el código…

third_party/ckociemba/include/corner.hc++ · 10 líneas · 248B

Cargando el código…

third_party/ckociemba/include/cubiecube.hc++ · 68 líneas · 2KB

Cargando el código…

third_party/ckociemba/include/edge.hc++ · 9 líneas · 231B

Cargando el código…

third_party/ckociemba/include/facecube.hc++ · 41 líneas · 1KB

Cargando el código…

third_party/ckociemba/include/facelet.hc++ · 41 líneas · 2KB

Cargando el código…

third_party/ckociemba/include/prunetable_helpers.hc++ · 21 líneas · 627B

Cargando el código…

third_party/ckociemba/include/search.hc++ · 63 líneas · 3KB

Cargando el código…

third_party/ckociemba/prunetable_helpers.ctext · 77 líneas · 2KB

Cargando el código…

third_party/ckociemba/README.mdmarkdown · 6 líneas · 189B

Cargando el código…

third_party/ckociemba/search.ctext · 333 líneas · 11KB

Cargando el código…

tools/1 archivo
tools/face_scan_cli.pypython · 403 líneas · 13KB

Cargando el código…

vlm_server/3 archivos
vlm_server/cube_vlm_server.pypython · 488 líneas · 16KB

Cargando el código…

vlm_server/README.mdmarkdown · 21 líneas · 732B

Cargando el código…

vlm_server/requirements.txttext · 6 líneas · 72B

Cargando el código…