TAR-ALEX / stickersolve-gui

GUI for an optimal Rubik's cube solver (stickersolve)
GNU General Public License v3.0
7 stars 0 forks source link

stickersolve-gui

Stickersolve-gui is a GUI application that is capable of finding solutions to the Rubik's cube at fast speeds. It is also capable of rating solution based on speed optimality (for fingertricks).

The latest release can be found here for windows and linux: 1.1.0

Stickersolve-gui uses the stickersolve library to solve the cube, which is where all of the solving code resides. This repo does not contain any of the backend solving code, only the GUI portion is here. This solver is comparable to the legendary CubeExplorer (even beating it in some circumstances on modern hardware). However, the hardware requirements for this solver are more demanding to achieve its full potential. The recommended specs for the solver are 9 GB of free memory (can be configured to use less, performance will suffer) and a good cpu with lots of cores. This application will utilize concurrency and memory bandwidth to the maximum. Unlike CubeExplorer, this solver is geared towards finding all solutions and not just one solution (although it can do this). For example: this solver can find all the solutions to the superflip that are 20 moves within less than a day (approx. 2 hours on a Ryzen 1700). stickersolve is buildable on all 3 major platforms (Windows, Linux, MacOS) and has a raspberry pi build.

image

Usage

3x3x3 Painter widget

UI Controls

Install a package that has a c++ compiler and cmake on a debian system. qt5 is also needed. I recommend this command to get started:

sudo apt install clang build-essential cmake qt5-default

in order to not pollute the system with dev headers for boost and qt5 I recommend using dep-pull to pull the headers locally. Simply cd into the project directory and run dep-pull

Alternatively, the packages can be installed systemwide (untested):

sudo apt install qtbase5-dev libgl-dev libboost-all-dev

I recommend building the project with visual studio code in RELEASE mode, the release mode is critical to the performance of the solver.

However, a standard command line build should work just fine:

mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build . --target stickersolve-gui --config Release && cd ../

Building From Source On Windows

On windows I recommend using the dep-pull command to install only the git dependencies. (deb will not work on windows) Alternatively, files could be copied over manually from each git repo into the ./vendor/ directory. A build of Qt must be put into the vendor directory, and the same is true for the boost library.

Building From Source On MacOS

Do a brew install qt5 and a brew install boost.

Feed the installed library directories to the cmake file (locations marked as comments in cmake).

build the app using cmake but only the release target is supported.

mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build . --target stickersolve-gui --config Release && cd ../

for distribution: to package the file into an app do a macdeployqt stickersolve-gui.app command. edit the plist as needed and create a dmg using create-dmg