SkillAgentSearch skills...

Lizgoban

Leela Zero & KataGo visualizer

Install / Use

/learn @kaorahi/Lizgoban
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

LizGoban - Leela Zero & KataGo visualizer

LizGoban is an analysis tool of the game Go with Leela Zero and KataGo. It is an implementation of Lizzie-style real-time UI on Electron with lots of original gimmicks.

<img src="screen.gif" width="45%"> <img src="match.png" width="50%">

<img src="faces.png" width="40%"> <img src="tree.png" width="55%">

(Facial stone images from Goisisan)

Table of contents

<a name="Highlights"></a>Highlights

  1. AI does not tell the reason of suggestions. So LizGoban aims at a GUI for easy trial of what-if in addition to quick browse of proposed variations. For example, you can use any number of trial boards in parallel, discard a needless one by a single action, and restore the deleted one if necessary.
  2. AI's suggestions are not 100% reliable, of course. We hope to get some signs when the suggested moves are unreliable. LizGoban visualizes convergence and consistency of estimations for this purpose. We can notice the case when we should wait for a little more analysis, and will never miss a new rising candidate like the one in the above screenshot.
  3. AI can make game watching boring if we only focus on win rate. LizGoban provides hints to help us understand the game's development from multiple perspectives. For example, who invested in more thickness? When it was cashed to territories?

You will enjoy LizGoban if you are interested in the process as well as the result of the search by AI. You may also like experiments of various new ideas on Go GUI, e.g. quick ladder check, random generation of various playing styles, etc. If you just expect ordinary features and beautiful graphics, probably you will prefer other GUIs.

<a name="Features"></a>Features

Common features

  • Colored suggestions / Variation by mouse hover like Lizzie
  • Plots of winrate and estimated score
  • Subboard that always shows the principal variation
  • Blunder marks on stones and quick review of them by mouse click like KaTrain
  • Auto-replay / Auto-analysis
  • Play against human-style KataGo with adjustable rank (20kyu-9dan)
  • Quick switching of multiple engines
  • Open URL (by drag & drop or clipboard)
  • Save/load analyses to/from SGF in Lizzie-compatible format
  • Restriction of analysis region like KaTrain
  • Free editing of stones in the middle of a game, including board position copy-paste
  • Next move quiz
  • Import stone positions from diagram images like img2sgf
  • [Experimental] Use your favorite images for the board and the stones

Original features

  • Trial boards that can be used like tabs in web browsers
  • Watch Leela Zero vs. KataGo etc. with real-time comparison of their plans
  • Personal exercise book that can be used like bookmarks in web browsers for random exercise
  • Quick comparison of stones, ownerships, and areas of the current and past boards
  • Side by side comparisons of two sequences:
    • the principal variation and the actual succeeding moves
    • the branch and the main sequence for nested SGFs
    • the plans by both players in AI vs. AI
  • Let-me-think-first mode in autoplay: plain board for n seconds and then suggestions for n seconds in each move
  • Preview of branches before switching for nested SGFs
  • Configurable presets that enable easy switching of your favorite combinations on engine, weights, komi, board_type, etc.
  • Random generation of various playing styles for matches vs. weak bots
  • Rank estimation based on KataGo's human-style policy and automatic adjustment of human-style profile
  • AI sparring partner that creates skill-testing situations
  • Play pair match, "you & KataGo" vs. Leela Zero, etc.
  • Tsumego frame for solving life & death problems
  • Indicate ladder breakers and show continuation of ladders automatically. Enjoy watching Ladder fight!
  • [Experimental] Show the search tree for "if players try to capture/rescue this stone".
  • [Experimental] External control of GUI from another program

Original visualizations

  • Visualization of AI's search tree
  • Visualization of search progress via plots of visits, winrate, score, prior, ... for each suggested move
  • Real-time display of area counts by KataGo
  • Comparison of 1-dan and 5-kyu styles by KataGo (a variation of dfannius's "policy heatmap")
  • Analysis of gains and losses in recent moves on the board that reveals overlooked side effects
  • Larger fonts for inevitable moves in the suggested variation
  • Highlighting of unexpected good moves that are overlooked by engines
  • Detection of inconsistency between analyses before/after a move as a check of their reliability
  • Additional plots
    • cumulative score-losses by black and white that indicate mistakes of each player separately
    • ambiguity of life & death that indicates big fights, game stages (opening / middlegame / endgame), etc.
    • each rank's preferences for the played move (9d, 3d, 1k, 6k, 15k, by default)
  • Indicators that suggest highlight scenes of the game (ko fights, etc.)
  • Translucent stones for too long variations as the above screenshot
  • Ownerships of stones by facial expressions

<a name="Setup"></a>Setup

64bit Windows

Just download the all-in-one package. You can enjoy KataGo immediately without installation, configuration, additional downloads, etc.

Other platforms (Mac, Linux, ...) or Windows with more flexible configuration

To use LizGoban with Leela Zero:

  1. Install Node.js v12 or later.
  2. Type git clone https://github.com/kaorahi/lizgoban; cd lizgoban; npm install on a terminal.
  3. Put Leela Zero binary (version 0.17 or later) as external/leelaz together with its network weight as external/network.gz.
  4. Type npm start. (Windows: Double-click lizgoban_windows.vbs or lizgoban_windows.ps1.)

Use npm start -- --no-sandbox if you get an error like "The SUID sandbox helper binary was found, but is not configured correctly" and you do not want to fix it.

To use LizGoban with KataGo:

Follow the above 1 and 2. Place KataGo binary, its model, and its GTP configuration somewhere, say /FOO/BAR/katago, /FOO/BAR/model.bin.gz, and /FOO/BAR/gtp.conf. Then write config.json as follows.

{
    "preset": [
        {
            "label": "KataGo",
            "engine": ["/FOO/BAR/katago", "gtp",
                       "-override-config", "analysisPVLen=50, defaultBoardSize=19",
                       "-model", "/FOO/BAR/model.bin.gz",
                       "-config", "/FOO/BAR/gtp.cfg"]
        }
    ]
}

Start LizGoban as

npm start -- -c config.json

(Windows: Put the above config.json into the same folder as lizgoban_windows.vbs and double-click lizgoban_windows.vbs.)

Never set reportAnalysisWinratesAs and ponderingEnabled in your *.cfg.

For the human-style features from KataGo v1.15.0, review the sample config.json in the Windows package.

To configure LizGoban:

Here is a longer example of config.json for Leela Zero 0.17 and KataGo 1.4.4 or later.

{
    "analyze_interval_centisec": 20,
    "autosave_deleted_boards": 5,
    "autosave_sec": 300,
    "sgf_dir": "/FOO/BAR/sgf/",
    "exercise_dir": "/FOO/BAR/exercise/",
    "max_cached_engines": 3,
    "preset": [
        {
            "label": "Leela Zero",
            "accelerator": "F1",
            "engine": ["/FOO/BAR/leelaz", "-g", "-w", "/FOO/LZ_NET/254.gz"]
        },
        {
            "label": "KataGo",
            "accelerator": "F2",
            "engine": ["/FOO/BAR/katago", "gtp",
                       "-override-config", "analysisPVLen=50, defaultBoardSize=19",
                       "-model", "/FOO/KATA_NET/g104-b20c256.gz",
                       "-config", "/FOO/BAR/gtp.cfg"]
        },
        {
            "label": "LZ",
            "label_for_white": "KATA",
            "empty_board": true,
            "engine": ["/FOO/BAR/leelaz", "-g", "-w", "/FOO/LZ_NET/254.gz"],
            "engine_for_white": ["/FOO/BAR/katago", "gtp",
                       "-model", "/FOO/KATA_NET/g104-b20c256.gz",
                       "-config", "/FOO/BAR/gtp.cfg"]
        },
        {"label": "Hide hints", "accelerator": "F3", "board_type": "raw"},
        {"label": "Show hints", "accelerator": "F4", "board_type": "double_boards"}
    ]
}
  • analyze_interval_centisec: Update interval of analysis display (1 = 0.01sec).
  • autosave_deleted_boards: Maximum number of deleted boards that are kept across sessions.
  • autosave_sec: Auto-save frequency (1 = 1sec).
  • sgf_dir: Default directory for [Open SGF] and [Save SGF] menus. (*1)
  • exercise_dir: Directory for your personal exercise book. (*1)
  • max_cached_engines: Maximum number of simultaneous engine processes. You can set this as 5 for quicker switch of 5 different engines / weights, for example, if your machine has enough spec.
  • preset: You can switch the given settings by [Preset] menu in LizGoban. The first one is used as default
View on GitHub
GitHub Stars199
CategoryDevelopment
Updated4d ago
Forks32

Languages

JavaScript

Security Score

100/100

Audited on Mar 28, 2026

No findings