nissy-classic

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

commit 8c07d707f794f3935d395e5f6276053164e2ea73
parent d3852e44b7d16955aec581d73e641fe495cb1420
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Wed,  3 May 2023 10:43:26 +0200

Bumped version to 2.0.4; added back www

Diffstat:
MMakefile | 2+-
Awww/favicon.png | 0
Awww/index.html | 253+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Awww/style-3.css | 105+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 359 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile @@ -1,6 +1,6 @@ # See LICENSE file for copyright and license details. -VERSION = 2.0.3 +VERSION = 2.0.4 PREFIX = /usr/local MANPREFIX = ${PREFIX}/share/man diff --git a/www/favicon.png b/www/favicon.png Binary files differ. diff --git a/www/index.html b/www/index.html @@ -0,0 +1,253 @@ +<!doctype html> +<html lang="en"> +<head> + <title> Nissy </title> + <meta name="viewport" content="width=device-width" /> + <link rel="stylesheet" type="text/css" href="/style-3.css"> + <link rel="icon" href="/favicon.png"> + <meta charset="utf-8"> +</head> + +<body> + +<h1>Nissy</h1> + +<p class=subtitle>A Rubik's cube solver and FMC assistant</p> + +<p> +Nissy is a command-line Rubik's cube solver. It can find optimal solutions +for random positions using techniques from Herbert Kociemba's +<a href="http://kociemba.org/cube.htm">Cube Explorer</a> and +Tomas Rokicki's +<a href="https://github.com/rokici/cube20src/blob/master/nxopt.md">nxopt</a>. +With 4 cores at 2.5GHz and using about 3Gb of RAM, Nissy can find an optimal +solution in about a minute on average. +</p> + +<p> +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). +</p> + +<p> +You should use Nissy if: +</p> +<ul> +<li> +You want to analyze your DR solutions or check for multiple optimal +(or sub-optimal) solutions for EO/DR/HTR or similar steps. +</li> +<li> +You just want a Rubik's cube solver and you like command line interfaces. +</li> +<li> +You want an alternative to Cube Explorer. +</li> +</ul> + +<p> +To get started, head to the <a href="/download/">download</a> page. +</p> + +<p> +You can also look at its source code by cloning the git repository +<a href="https://git.tronto.net/nissy-classic">git.tronto.net/nissy-classic</a> +</p> + +<h1>Get Nissy</h1> + +<table class="dltable"> +<tr> + <td></td> + <td><strong>Source code</strong></td> + <td><strong>Windows executable</strong></td> +</tr> +<tr> + <td><strong>Latest version</strong></td> + <td><a href="/nissy-2.0.4.tar.gz">nissy-2.0.4.tar.gz (67Kb)</a></td> + <td><a href="/nissy-2.0.4.exe">nissy-2.0.4.exe (780Kb)</a></td> +</tr> +</table> + +<p> +In this page you can find download links (see above), +<a href="#Installation">installation instructions</a> and +<a href="#Upgrade">upgrade instructions</a> +for nissy. If instead you wish to clone the +<a href="https://git.tronto.net/nissy-classic">git repository</a>, +you can use git: +</p> + +<pre> +<code>git clone https://git.tronto.net/nissy-classic</code> +</pre> + +<p> +For a summary of changes and a list of older versions see below. Some versions +(for example 1.0) are not available directly, but can be obtained from +the git repository. +</p> + +<h2 id="Installation">Installation</h2> + +<h3>System requirements</h3> + +<p> +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. +</p> + +<h3>Windows</h3> + +<p> +Try downloading and executing in a terminal the file <code>nissy.exe</code>, +then follow the instructions in the <strong>Tables</strong> section below for +installing the pruning tables. +If <code>nissy.exe</code> does not work, you can try following the UNIX instructions +in WSL (Windows Subsystem for Linux) or in a similar environment. +</p> + +<h3>UNIX (Linux, MacOS, *BSD...)</h3> +<p> +Download the source archive (.tar.gz). Extract it +with your favorite archive program, for example with +</p> +<pre><code>tar -xvzf nissy-VERSION.tar.gz</code></pre> +<p> +Open a terminal in the directory just extracted. +If you wish, edit the <code>Makefile</code> to match your local configuration +(this is usually not necessary, but you may want to change the +<code>PREFIX</code> variable to change the installation path) and run +<pre><code>make</code></pre> +<p> +followed by +</p> +<pre><code>make install</code></pre> +<p> +Then follow the instructions below to install the pruning tables. +</p> + +<h3>Tables</h3> + +<p> +Once you have installed nissy, run +</p> + +<pre><code>nissy gen</code></pre> + +<p> +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 40 minutes on my fairly old but decent laptop, with 8 CPU threads). +</p> + +<p> +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 <code>-t</code> option, for +example <code>nissy gen -t 1</code>. +</p> + +<p> +Alternatively, you can +<a href="/nissy-tables-2.0.4.zip">download all the tables (1.7Gb)</a> and +copy them into the correct folder (see manual page, <code>ENVIRONMENT</code> +section). On UNIX operating systems this folder is either +<code>.nissy/tables</code> in the user's home directory or +<code>$XDG_DATA_HOME/nissy/tables</code> if the XDG variable is configured. +On Windows it is the same directory as the <code>nissy.exe</code> executable +file. +</p> + +<h2 id="Upgrade">Upgrading</h2> +<p> +If you already have nissy installed and you want to upgrade to a more +recent version, you can simply repeat the installation process: +</p> +<ul> +<li> +On Windows: simply replace nissy.exe with the new file with the same name. +</li> +<li> +On UNIX systems: download the new version of the source code, extract it in +a new folder and run <code>make</code> and <code>make install</code> again. +</li> +</ul> +<p> +Between each version new table files might have been added, or old ones +may be not used anymore. Nissy will deal with this automatically. +</p> + +<h2>Version history</h2> + +<h3>Nissy v2</h3> + +<table class=dltable> +<tr> + <td><strong>Version</strong></td> + <td><strong>Date</strong></td> + <td><strong>Comment</strong></td> +</tr> +<tr> + <td><a href="/nissy-2.0.4.tar.gz">2.0.4</a></td> + <td>2023-05-03</td> + <td>Fixed bug on ARM; added corners-dr step</td> +</tr> +<tr> + <td><a href="/nissy-2.0.3.tar.gz">2.0.3</a></td> + <td>2022-09-10</td> + <td>Fixed bug in scramble dr</td> +</tr> +<tr> + <td><a href="/nissy-2.0.2.tar.gz">2.0.2</a></td> + <td>2022-06-01</td> + <td>Improved table generation speed</td> +</tr> +<tr> + <td><a href="/nissy-2.0.1.tar.gz">2.0.1</a></td> + <td>2022-02-22</td> + <td>Bugfix release</td> +</tr> +<tr> + <td>2.0</td> + <td>2021-12-29</td> + <td>Rewritten from scratch; much faster optimal solver</td> +</tr> +</table> + +<h3>Nissy v1</h3> + +<p> +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. +</p> + +<hr class="line"> + +<nav class="bottom"> + <table class="footer"> + <tr> + <td class="contact"> + <a href="https://sebastiano.tronto.net">sebastiano.tronto.net</a> + </td> + <td class="hosted"> + <a href="mailto:sebastiano@tronto.net"> + sebastiano@tronto.net + </a> + </td> + </tr> + </table> +</nav> + +</body> +</html> diff --git a/www/style-3.css b/www/style-3.css @@ -0,0 +1,105 @@ +.menu { + width: 100%; +} + +.links { + text-align: right; + font-weight: bold; +} + +.logo img { + width: 50px; + height: 50px; +} + +.footer { + font-style: italic; + width: 100%; +} + +.hosted { + text-align: right; +} + +body { + margin: auto 8px 20px 8px; +} + +img { + display: block; + margin-left: auto; + margin-right: auto; + max-width: 100%; +} + +code { + background-color: #eeeeee; + padding: 2px; +} + +pre code { + padding: 0px; +} + +pre { + background-color: #eeeeee; + border: 2px solid; + padding: 6px; +} + +#blob { + background: #ffffff; + border: none; +} + +a { + color: #0f2899; + text-decoration: none; +} + +.links a { + font-weight: bold; + color: black; +} + +.hosted a, +.contact a { + font-weight: bold; +} + +a:hover { + text-decoration: underline; +} + +html { + margin: 1em auto; + max-width: 42em; +} + +h1 { + text-align: center; +} + +td h1 { + text-align: left; + font-size: 1.5em; +} + +table { + width: 100%; +} + +.url td { + font-family: monospace; +} + +.dltable th, .dltable td { + border: 1px solid black; + padding: 3px; +} + +.subtitle { + text-align: center; + font-weight: bold; + font-size: 1.1em; +}