Natural-looking stone placement

One thing I rather like about OGS is the variety of white shell stone textures in the game, there’s actually enough variety, and the texture is subtle enough to keep the stones from looking artificial. There are a few quirks, mainly in an imperfect seeding of the association between the coordinate and texture selected (For example, on the 13x13 board, all white stones in the K column have the same texture, which just looks wierd.)

I was wondering about how this “natural” look could be expanded upon, and I found A well written article on the subject, with thoroughly thought out meta-code. It might look “messy” to some people, but I honestly think that having this as an option would offer another facet of the subtle beauty of go to people who haven’t yet had the chance to play on a real board.


Also allow for stones to be placed “offset” by a pixel or two randomly, for that slightly more natural-looking positioning.


That’s essentially what all that code does. It makes the proper 12/13 ratio of the grid’s aspect ratio, randomly sets a stone down 0-12% off center from perfect, and if it overlaps a neighbor, they both get efficiently settled closer to the perfect point.


In general I think this is a great idea and would be another step forward in setting OGS apart aesthetically from other, ugly go clients!

There are a few times in the example .gif where the shapes get a little too messy for my liking and where, if I were playing in real life, I would straighten them out. Perhaps there could be a straighten tool or button that goes along with the natural placement option?

1 Like

I think that’s main the rare cases where stones get close to maximum 12% deviation. It wouldn’t be hard to have the deviation be a user-editable number to find the perfect amount of Wabi Sabi in your game.

1 Like

The current set of textures are beautiful. This site has the best looking go board rendering that I’ve seen across any programs/websites.

The K column sameness on 13x13 boards is quite weird and subtle (I never noticed that until you pointed it out). I guess fixing the texture selection to the coordinate system makes rendering less complex, but whatever rule is being used should be adjusted.

A little bit of disorder might look nice to some players, but I would also imagine that it would drive some people nuts. Having this be an option would be important. It would also make the rendering more complex to have to store the offsets for each stone. Then there’s also the question of doing it server-side (which keeps a consistent view of the game across devices and players) or client-side (which puts less burden on the server, but will result in subtle aesthetic changes as you view the same game across different devices). Fixing offsets to the coordinate system would make all games look the same in a weird, subtle way that may be undesirable.

1 Like

Obviously it would be an option, just like all the other graphical options.

Fixing offsets wouldn’t work, because those offset numbers get adjusted and nudged when making contact plays.

Keeping those offsets logged serverside would make the most sense to reduce the recalculating, but it would mean saving 2 floats per stone, for little gain. An easier way to keep consistency between sessions would be to use the game’s session ID as a seed for the RNG placing the stones.

1 Like

This would truly be amazing!

Dang, there was a thread on the L19 forum about the same topic but I can’t find it. There were quite a few links that—to me—seemed to be rich in content.