nissy-classic

Stable branch of nissy
git clone https://git.tronto.net/nissy-classic
Download | Log | Files | Refs | README | LICENSE

index.html (8599B)


      1 <!doctype html>
      2 <html lang="en">
      3 <head>
      4 	<title> Nissy </title>
      5 	<meta name="viewport" content="width=device-width" />
      6 	<link rel="stylesheet" type="text/css" href="/style-3.css">
      7 	<link rel="icon" href="/favicon.png">
      8 	<meta charset="utf-8">
      9 </head>
     10 
     11 <body>
     12 
     13 <h1>Nissy</h1>
     14 
     15 <p class=subtitle>A Rubik's cube solver and FMC assistant</p>
     16 
     17 <p>
     18 Nissy is a command-line Rubik's cube solver. It can find optimal solutions
     19 for random positions using techniques from Herbert Kociemba's
     20 <a href="http://kociemba.org/cube.htm">Cube Explorer</a> and
     21 Tomas Rokicki's
     22 <a href="https://github.com/rokici/cube20src/blob/master/nxopt.md">nxopt</a>.
     23 With 4 cores at 2.5GHz and using about 3Gb of RAM, Nissy can find an optimal
     24 solution in about a minute on average.
     25 </p>
     26 
     27 <p>
     28 Nissy aims at being a complete tool
     29 for FMC (Fewest Moves Challenge) practice. It can solve different steps
     30 of Thistlethwaite's algorithm (also know as DR/HTR) and cans use NISS
     31 (Normal-Inverse Scramble Switch).
     32 </p>
     33 
     34 <p>
     35 You should use Nissy if:
     36 </p>
     37 <ul>
     38 <li>
     39 You want to analyze your DR solutions or check for multiple optimal
     40 (or sub-optimal) solutions for EO/DR/HTR or similar steps.
     41 </li>
     42 <li>
     43 You just want a Rubik's cube solver and you like command line interfaces.
     44 </li>
     45 <li>
     46 You want an alternative to Cube Explorer.
     47 </li>
     48 </ul>
     49 
     50 <p>
     51 You can also look at its source code by cloning the git repository:
     52 </p>
     53 
     54 <pre>
     55 <code>git clone https://git.tronto.net/nissy-classic</code>
     56 </pre>
     57 
     58 <p>
     59 For a summary of changes and a list of older versions see the bottom of
     60 this page. Some versions (for example 1.0) are not available directly,
     61 but can be obtained from the git repository.
     62 </p>
     63 
     64 <p>
     65 The <strong>Installation</strong> section below explains how to install
     66 Nissy for using it via the command line. If you want to use a web-based
     67 version, check out <a href="https://nissyonline.com/">nissyonline.com</a>
     68 by Dan Bo.  If you are a software developer and you
     69 want to create a tool based on Nissy, check out <a
     70 href="https://git.tronto.net/nissy-core/file/README.md.html">
     71 nissy-core</a> (on <a
     72 href="https://git.tronto.net/nissy-core/file/README.md.html">
     73 git.tronto.net</a> or on <a
     74 href="https://github.com/sebastianotronto/nissy-core/">GitHub</a>).
     75 </p>
     76 
     77 <h2 id="Installation">Installation</h2>
     78 
     79 <p>
     80 You can get the latest version of nissy at the following links:
     81 </p>
     82 
     83 <table class="dltable">
     84 <tr>
     85 	<td></td>
     86 	<td><strong>Source code</strong></td>
     87 	<td><strong>Windows executable</strong></td>
     88 </tr>
     89 <tr>
     90 	<td><strong>Latest version</strong></td>
     91 	<td><a href="/nissy-2.0.8.tar.gz">nissy-2.0.8.tar.gz (71Kb)</a></td>
     92 	<td><a href="/nissy-2.0.8.exe">nissy-2.0.8.exe (758Kb)</a></td>
     93 </tr>
     94 </table>
     95 
     96 <h3>System requirements</h3>
     97 
     98 <p>
     99 A full installation of nissy requires about 3.1Gb of space,
    100 of which 2.3Gb are occupied by the huge pruning table for fast optimal solving,
    101 and running it requires the same amount of RAM.
    102 One can choose to never use this function and not to install the relative
    103 pruning table. There is an alternative (slower)
    104 optimal solving function that uses about 500Mb of RAM.
    105 
    106 When generating the pruning tables automatically (see the section Tables below),
    107 at least 5.3Gb or RAM are required.
    108 </p>
    109 
    110 <h3>Windows</h3>
    111 
    112 <p>
    113 Try downloading and executing in a terminal the file <code>nissy.exe</code>,
    114 then follow the instructions in the <strong>Tables</strong> section below for
    115 installing the pruning tables.
    116 If <code>nissy.exe</code> does not work, you can try following the UNIX instructions
    117 in WSL (Windows Subsystem for Linux) or in a similar environment.
    118 </p>
    119 
    120 <h3>UNIX (Linux, MacOS, *BSD...)</h3>
    121 <p>
    122 Download the source archive (.tar.gz). Extract it
    123 with your favorite archive program, for example with
    124 </p>
    125 <pre><code>tar -xvzf nissy-VERSION.tar.gz</code></pre>
    126 <p>
    127 Open a terminal in the directory just extracted.
    128 If you wish, edit the <code>Makefile</code> to match your local configuration
    129 (this is usually not necessary, but you may want to change the
    130 <code>PREFIX</code> variable to change the installation path) and run
    131 <pre><code>make</code></pre>
    132 <p>
    133 followed by
    134 </p>
    135 <pre><code>make install</code></pre>
    136 <p>
    137 Then follow the instructions below to install the pruning tables.
    138 </p>
    139 
    140 <h3>Tables</h3>
    141 
    142 <p>
    143 Once you have installed nissy, run
    144 </p>
    145 
    146 <pre><code>nissy gen</code></pre>
    147 
    148 <p>
    149 to generate all the tables that Nissy will ever need.
    150 Running this command requires around 5.3Gb of RAM, and it can take some time
    151 (about 90 minutes on my 9 year old but laptop, with 4 CPU threads).
    152 </p>
    153 
    154 <p>
    155 Some unnecessary technical detail: by default this command is going to use
    156 at most 64 threads. If you want you can choose to use more threads (if your CPU
    157 is very powerful) or fewer threads (if you for example want to run this command
    158 in the background while you do other stuff) with the <code>-t</code> option, for
    159 example <code>nissy gen -t 1</code>.
    160 </p>
    161 
    162 <p>
    163 Alternatively, you can
    164 <a href="/nissy-tables-2.0.4.zip">download all the tables (1.7Gb)</a> and
    165 copy them into the correct folder (see manual page, <code>ENVIRONMENT</code>
    166 section). On UNIX operating systems this folder is either
    167 <code>.nissy/tables</code> in the user's home directory or
    168 <code>$XDG_DATA_HOME/nissy/tables</code> if the XDG variable is configured.
    169 On Windows it is the same directory as the <code>nissy.exe</code> executable
    170 file.
    171 </p>
    172 
    173 <h2 id="Upgrade">Upgrading</h2>
    174 <p>
    175 <strong> Upgrading from 2.0.4 or later to any later version: </strong>
    176 Follow the general upgrading instructions below, no other step required.
    177 </p>
    178 <p>
    179 <strong> Important note for upgrading to 2.0.4:</strong>
    180 A bug in 2.0.3 and earlier versions caused HTR-related tables to be
    181 generated incorrectly on ARM platforms (Mac M1, Android...).
    182 If you are upgrading to 2.0.4 on such a device, you need to re-generate
    183 these tables. You can do this by removing all the files wiht <code>htr</code>
    184 in their name and let nissy re-generate them (after upgrading), or by
    185 downloading the <a href="/nissy-tables-2.0.4.zip">new tables</a> and
    186 replacing the old ones.
    187 </p>
    188 <p>
    189 <strong> General upgrading instrutions </strong>
    190 If you already have nissy installed and you want to upgrade to a more
    191 recent version, you can simply repeat the installation process:
    192 </p>
    193 <ul>
    194 <li>
    195 On Windows: simply replace nissy.exe with the new file with the same name.
    196 </li>
    197 <li>
    198 On UNIX systems: download the new version of the source code, extract it in
    199 a new folder and run <code>make</code> and <code>make install</code> again.
    200 </li>
    201 </ul>
    202 <p>
    203 Between each version new table files might have been added, or old ones
    204 may be not used anymore. Nissy will deal with this automatically unless
    205 otherwise reported in this page (see above).
    206 </p>
    207 
    208 <h2>Version history</h2>
    209 
    210 <h3>Nissy v2</h3>
    211 
    212 <table class=dltable>
    213 <tr>
    214 	<td><strong>Version</strong></td>
    215 	<td><strong>Date</strong></td>
    216 	<td><strong>Comment</strong></td>
    217 </tr>
    218 <tr>
    219 	<td><a href="/nissy-2.0.8.tar.gz">2.0.8</a></td>
    220 	<td>2025-02-19</td>
    221 	<td>Fixed bug in DR scramble generation; thanks to Jeremy
    222 	Mrzyglocki for reporting it.</td>
    223 </tr>
    224 <tr>
    225 	<td><a href="/nissy-2.0.7.tar.gz">2.0.7</a></td>
    226 	<td>2024-06-28</td>
    227 	<td>Improved solution ordering; print less solutions for
    228 	htr and drslice; fixed bugs.</td>
    229 </tr>
    230 <tr>
    231 	<td><a href="/nissy-2.0.6.tar.gz">2.0.6</a></td>
    232 	<td>2023-09-24</td>
    233 	<td>Added: drfin step; solve -L option; ptable command.
    234 	Better ordering for output of many solutions.</td>
    235 </tr>
    236 <tr>
    237 	<td><a href="/nissy-2.0.5.tar.gz">2.0.5</a></td>
    238 	<td>2023-08-16</td>
    239 	<td>Bugfix: DR from EO did not check both sides</td>
    240 </tr>
    241 <tr>
    242 	<td><a href="/nissy-2.0.4.tar.gz">2.0.4</a></td>
    243 	<td>2023-05-03</td>
    244 	<td>Fixed bug on ARM; added corners-dr step</td>
    245 </tr>
    246 <tr>
    247 	<td><a href="/nissy-2.0.3.tar.gz">2.0.3</a></td>
    248 	<td>2022-09-10</td>
    249 	<td>Fixed bug in scramble dr</td>
    250 </tr>
    251 <tr>
    252 	<td><a href="/nissy-2.0.2.tar.gz">2.0.2</a></td>
    253 	<td>2022-06-01</td>
    254 	<td>Improved table generation speed</td>
    255 </tr>
    256 <tr>
    257 	<td><a href="/nissy-2.0.1.tar.gz">2.0.1</a></td>
    258 	<td>2022-02-22</td>
    259 	<td>Bugfix release</td>
    260 </tr>
    261 <tr>
    262 	<td>2.0</td>
    263 	<td>2021-12-29</td>
    264 	<td>Rewritten from scratch; much faster optimal solver</td>
    265 </tr>
    266 </table>
    267 
    268 <h3>Nissy v1</h3>
    269 
    270 <p>
    271 Nissy v1 was released in 2020. It was slow, full of bugs and the code
    272 was quite terrible. But in practice it got its job done most of the time.
    273 </p>
    274 
    275 <hr class="line">
    276 
    277 <nav class="bottom">
    278 	<table class="footer">
    279 	<tr>
    280 	<td class="contact">
    281 		<a href="https://sebastiano.tronto.net">sebastiano.tronto.net</a>
    282 	</td>
    283 	<td class="hosted">
    284 		<a href="mailto:sebastiano@tronto.net">
    285 			sebastiano@tronto.net
    286 		</a>
    287 	</td>
    288 	</tr>
    289 	</table>
    290 </nav>
    291 
    292 </body>
    293 </html>