A Rubik's cube solver and FMC assistant
Nissy is a command-line Rubik's cube solver. It can find optimal solutions for random positions using techniques from Herbert Kociemba's Cube Explorer and Tomas Rokicki's nxopt. With 4 cores at 2.5GHz and using about 3Gb of RAM, Nissy can find an optimal solution in about a minute on average.
Nissy aims at being a complete tool for FMC (Fewest Moves Challenge) practice. It can solve different steps of Thistlethwaite's algorithm (also know as DR/HTR) and cans use NISS (Normal-Inverse Scramble Switch).
You should use Nissy if:
To get started, head to the download page.
You can also look at its source code by cloning the git repository:
git clone https://git.tronto.net/nissy-classic
For a summary of changes and a list of older versions see the bottom of this page. Some versions (for example 1.0) are not available directly, but can be obtained from the git repository.
You can get the latest version of nissy at the following links:
Source code | Windows executable | |
Latest version | nissy-2.0.7.tar.gz (71Kb) | nissy-2.0.7.exe (743Kb) |
A full installation of nissy requires about 3.1Gb of space, of which 2.3Gb are occupied by the huge pruning table for fast optimal solving, and running it requires the same amount of RAM. One can choose to never use this function and not to install the relative pruning table. There is an alternative (slower) optimal solving function that uses about 500Mb of RAM. When generating the pruning tables automatically (see the section Tables below), at least 5.3Gb or RAM are required.
Try downloading and executing in a terminal the file nissy.exe
,
then follow the instructions in the Tables section below for
installing the pruning tables.
If nissy.exe
does not work, you can try following the UNIX instructions
in WSL (Windows Subsystem for Linux) or in a similar environment.
Download the source archive (.tar.gz). Extract it with your favorite archive program, for example with
tar -xvzf nissy-VERSION.tar.gz
Open a terminal in the directory just extracted.
If you wish, edit the Makefile
to match your local configuration
(this is usually not necessary, but you may want to change the
PREFIX
variable to change the installation path) and run
make
followed by
make install
Then follow the instructions below to install the pruning tables.
Once you have installed nissy, run
nissy gen
to generate all the tables that Nissy will ever need. Running this command requires around 5.3Gb of RAM, and it can take some time (about 90 minutes on my 9 year old but laptop, with 4 CPU threads).
Some unnecessary technical detail: by default this command is going to use
at most 64 threads. If you want you can choose to use more threads (if your CPU
is very powerful) or fewer threads (if you for example want to run this command
in the background while you do other stuff) with the -t
option, for
example nissy gen -t 1
.
Alternatively, you can
download all the tables (1.7Gb) and
copy them into the correct folder (see manual page, ENVIRONMENT
section). On UNIX operating systems this folder is either
.nissy/tables
in the user's home directory or
$XDG_DATA_HOME/nissy/tables
if the XDG variable is configured.
On Windows it is the same directory as the nissy.exe
executable
file.
Upgrading from 2.0.4 or later to any later version: Follow the general upgrading instructions below, no other step required.
Important note for upgrading to 2.0.4:
A bug in 2.0.3 and earlier versions caused HTR-related tables to be
generated incorrectly on ARM platforms (Mac M1, Android...).
If you are upgrading to 2.0.4 on such a device, you need to re-generate
these tables. You can do this by removing all the files wiht htr
in their name and let nissy re-generate them (after upgrading), or by
downloading the new tables and
replacing the old ones.
General upgrading instrutions If you already have nissy installed and you want to upgrade to a more recent version, you can simply repeat the installation process:
make
and make install
again.
Between each version new table files might have been added, or old ones may be not used anymore. Nissy will deal with this automatically unless otherwise reported in this page (see above).
Version | Date | Comment |
2.0.7 | 2024-06-28 | Improved solution ordering; print less solutions for htr and drslice; fixed bugs. |
2.0.6 | 2023-09-24 | Added: drfin step; solve -L option; ptable command. Better ordering for output of many solutions. |
2.0.5 | 2023-08-16 | Bugfix: DR from EO did not check both sides |
2.0.4 | 2023-05-03 | Fixed bug on ARM; added corners-dr step |
2.0.3 | 2022-09-10 | Fixed bug in scramble dr |
2.0.2 | 2022-06-01 | Improved table generation speed |
2.0.1 | 2022-02-22 | Bugfix release |
2.0 | 2021-12-29 | Rewritten from scratch; much faster optimal solver |
Nissy v1 was released in 2020. It was slow, full of bugs and the code was quite terrible. But in practice it got its job done most of the time.