Objetivo deste post

Publicamos o código-fonte usado no app de cubo 3×3. O código só é carregado quando você abre um arquivo.

Ferramentas usadas

  • Qt6 (Core, Gui, Widgets, OpenGL, Network) e OpenGL: o cubo 3D e a tela de importação de fotos
  • Busca em duas fases de Kociemba: o código em C do muodov/kociemba incluído do jeito que está. É GPL-2.0.
  • Qwen3-VL-8B-Instruct (transformers, MPS no Mac): o servidor de leitura por VLM. Ele se conecta ao app por TCP.

Estrutura de pastas

  • src/CubeModel: estado do cubo, giros, classificação de cores
  • src/CubeWidget, MainWindow: tela OpenGL e giro com o mouse, botões de embaralhar/anterior/próximo/oráculo
  • src/CubePhotoReconstructor: leitura das 54 casas a partir de duas fotos, verificação de regras, correção automática
  • src/PhotoImportDialog: importação de fotos, leitura comum e por VLM, o anel de seis cores que aparece ao clicar em uma casa
  • src/KociembaSolver, Oracle, BeginnerSolver, MoveSolver: resolução. Usados na ordem Kociemba → busca curta → camada por camada para iniciantes.
  • src/TcpCubeVlmClient, vlm_server: cliente e servidor da leitura por VLM
  • tools/face_scan_cli.py: ferramenta de linha de comando para conferir as cores uma face por vez
  • third_party/ckociemba: código em C do Kociemba

O build é feito com cmake, como descrito no README. Os resultados de build, os ambientes virtuais, os arquivos de tabela do Kociemba (cache) e as fotos de teste não foram incluídos. Os 82 programas de teste ficaram de fora porque os caminhos das fotos de teste estão fixos no código.

Código-fonte completo

42 arquivos · 11.309 linhas — abra uma pasta e clique em um arquivo para carregar o código.

Raiz do projeto2 arquivos
CMakeLists.txttext · 405 linhas · 20KB

Carregando o código…

README.mdmarkdown · 47 linhas · 1KB

Carregando o código…

src/21 arquivos
src/BeginnerSolver.cppc++ · 1.095 linhas · 34KB

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

src/CubePhotoReconstructor.cppc++ · 3.353 linhas · 133KB

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

third_party/15 arquivos
third_party/ckociemba/coordcube.ctext · 366 linhas · 14KB

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

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

Carregando o código…

tools/1 arquivo
tools/face_scan_cli.pypython · 403 linhas · 13KB

Carregando o código…

vlm_server/3 arquivos
vlm_server/cube_vlm_server.pypython · 488 linhas · 16KB

Carregando o código…

vlm_server/README.mdmarkdown · 21 linhas · 732B

Carregando o código…

vlm_server/requirements.txttext · 6 linhas · 72B

Carregando o código…