Coder Social home page Coder Social logo

joserfjuniorllms / nibbler Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rooklift/nibbler

0.0 0.0 0.0 1.28 MB

Nibbler - Leela Chess Zero (Lc0) interface

License: GNU General Public License v3.0

JavaScript 96.55% Python 0.82% CSS 1.66% HTML 0.97%

nibbler's Introduction

Nibbler

"By far the best ICCF analysis tool for Leela." โ€” jhorthos

Nibbler is a real-time analysis GUI for Leela Chess Zero (Lc0), which runs Leela in the background and constantly displays opinions about the current position. You can also compel the engine to evaluate one or more specific moves. Nibbler is loosely inspired by Lizzie.

For prebuilt binary releases, see the Releases section. For help, the Discord may be your best bet, or open an issue here.

Screenshot

Features

  • Display Leela's top choices graphically.
  • Choice of winrate, node %, or policy display.
  • Optionally shows Leela statistics N, P, Q, U, and/or Q+U for each move.
  • UCI searchmoves functionality.
  • PGN loading via menu, clipboard, or drag-and-drop.
  • Supports PGN variations of arbitrary depth.
  • FEN loading.
  • Versus Mode - where Leela only analyses one side.

Installation

Some Windows and Linux standalone releases are uploaded to the Releases section from time to time. Mac builds are harder to make but @twoplan is experimenting with it in this repo.

Running Nibbler from source requires Electron, but has no other dependencies. If you have Electron installed (e.g. npm install -g electron) you can likely enter the Nibbler directory, then do electron . to run it. This is mostly tested with Electron 5, but older versions may work too.

The required Lc0 version is v0.21.0 or later. Note that other UCI engines might run, but the results will be poor because we use MultiPV, which cripples traditional A/B engines.

Net recommendations

Lc0 is unusual in that you must select a neural net to use.

  • For CPU or slowish graphics cards I recommend LD2
  • For fast graphics cards I recommend 42850
  • For very long searches (on fast cards) I recommend J13-410 until the T60 nets become stronger

Aesthetic adjustments

As well as the menu options, various aesthetic adjustments are possible in the config.json file, which can be found via the App menu. For example, board colour can be changed.

If you like a different piece set, you can create a folder of .png or .svg files with the right names and point the override_piece_directory config option to it.

Advanced engine options

All Leela's UCI engine options can be set in two ways: in the options part of Nibbler's own config.json file (which you can find via the App menu) or in a file called lc0.config in the same folder as Leela - for info about how to use that, see here.

See also this list of UCI options supported by Leela.

Hints and tips

An option to enable the UCI searchmoves feature is available in the Analysis menu. Once enabled, one or more moves can be specified as moves to focus on; Leela will ignore other moves. This is useful when you think Leela isn't giving a certain move enough attention.

Leela forgets much of the evaluation if the position changes. To mitigate this, an option in the Analysis menu allows you to hover over a PV (on the right) and see it play out on the board, without changing the position we're actually analysing. You might prefer to halt Leela while doing this, so that the PVs don't change while you're looking at them.

We try to be considerate and not use too much CPU for mundane tasks like drawing the PVs, arrows, highlights, et cetera; however if you want a snappier-feeling GUI, reduce the config.json option update_delay (default 170) to something low like 25 (this is the number of milliseconds between redraws).

Leela running out of RAM can be a problem if searches go on too long. You might like to use the UCI option RamLimitMb (see advanced engine options, above).

Thanks

Thanks to everyone in Discord and GitHub who's offered advice and suggestions; and thanks to all Lc0 devs and GPU-hours contributors!

The pieces are from Lichess.

nibbler's People

Contributors

fohristiwhirl avatar ra1u avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.