I tried making a SGF viewer/editor

Hello everyone,

Out of personal interest I decided to make a Go SGF viewer.
Just under a week’s worth of work, I got the basic functionalities nailed.

Currently I still have the native packaging to sort out, so unfortunately the executable so far is a .jar file. If you’d like to give it a try, you can download the file here:



Drag and drop .sgf files to load them.
Mouse scroll wheel (or left/right keys) to navigate moves along the current branch
Right click on the goban to jump back to parent variation
Hold shift and click on a grid will jump ‘that’ move being played (if played at all)

You’ll need Java 1.8 to run this. I’d love to hear your feedback!

Edit: Just like to emphasise that this is not done :slight_smile:


Wow, black got destroyed!

Look at the upper left. Wouldn’t white atari that one stone next?

depends on which atari and not that obvious too. its a good question.

Nice job besides this, looks awesome. Whaat did you want to add for what already exist? Or was it just an exercise?

1 Like

Yeah, I was too quick and misread :slight_smile:

a bit hard to push the ladder :smiley:

Looks nice :slight_smile:

If it’s OpenSource, then it may be a good idea to add your WeiqiTool to Waltheri’s Go Libraries on github – https://github.com/waltheri/go-libraries

1 Like

Thanks, how did everyone find the controls?

@violaine It is made as part learning JavaFX, plus I think it’s about time that SGF editors get a modern look :stuck_out_tongue:

Very nice! Especially like the tatami background :grin:

one thing i noticed is that though usually the grid is numbered 1 - 19 from bottom to top, you chose to number it top to bottom. that can lead to confusion for example when watching a commented review.

Looking forward to the final version!

Sounds good. In that case you may should consider more functionalities, like a good printing output (which is a main point in publishing, you can check what drago does on that) and other things…

Another note, usually the I coordinate is skipped, instead going …G, H, J, K…


@pbgarden Oh? Is it a common thing among all Go clients to omit I? May I ask what is the reason for that?

Mostly for the possibility of confusing I (uppercase i) with l (lowercase L), AFAIK, and probably also for the possibility of confusing I/l with 1 in some handwriting or fonts.

1 Like

Oh, I had a snitch that might be the case. Thanks!

Looking awesome! I did something similar https://github.com/toomasr/sgf4j-gui but I’m not much of a JavaFX buff. If I ever add/change anything in my project I just might check out how you got everything so nice looking.

You might want to check out my SGF parser, maybe can make your life a bit easier unless you have it already under control. See https://github.com/toomasr/sgf4j

1 Like

Take a look at KGS closed source client. It’s butt ugly but it’s SGF editor is awesome. They also got a really good score estimator.

Copy with pride! :slight_smile:

1 Like

Wow, awesome tool!

Feature requests:

  1. cut/copy/paste/delete a alternative chain
  2. estimate score
  3. show influence (like KGS has)
  4. add GTP support so it can talk to Pachi and other Go engines.
1 Like

I was chuckling as I read over the source code, the SGF parser logic is about the exact same as how I implemented it, though yours is much more polished, I should say.

@myAccount Glad you’re enjoying it.

I thought about copying / pasting branches but it didn’t feel like it made sense since it needed a given position to make the next sequences possible.

Score estimation and influence is something I’d be interested in looking into, it’ll probably come in a later version.

I’ll also have a read on GTP, and see what that is all about. Thanks for the feedback!

1 Like

Have you tested it under OpenJDK? It failed here, and I’m not sure that’s the reason. I tried installing Oracle Java but that too didn’t work too, I might try again later.

It seems you’re not giving proper attribution to the artwork. There’s no thing as “the Creative Commons license”. You always have to specify which CC license it is. And even for the other non-CC items, it’s always nice to spell out where exactly they’re coming from and what are the conditions for using them, even if the author doesn’t demand it - this way it’ll be easier for to tell if you’re respecting copyright or not.

1 Like

Looks like you found my little note of the icon licenses. I had plans to make a proper about screen where all the license info and attributions can be found and that file was supposed to be a rough note. Though it’s not really an excuse for the poorly written records.

No I haven’t tested it under OpenJDK. I should do that as well.

1 Like
java -jar WeiqiTool.jar 
Error: Could not find or load main class me.nibby.wtool.Main

I have a:

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial

and java

$ java -version 
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2ubuntu0.16.04.2-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)