Skip to main content

A python 3d spherical Go game on a snub dodecahedron board

Project description

PolyClash: Go on a Spherical Universe

The Eternal Game Reimagined

"Like mathematical truth, Go is an eternal game in the universe. Similarly, the snub dodecahedron is also an eternal geometric shape, which is the Archimedean polyhedron with the most sphericity. PolyClash combines these two to create a new game with simple rules that make for interesting gameplay."

PolyClash is a revolutionary reimagining of the ancient game of Go, played on a snub dodecahedron—a near-spherical Archimedean solid that brings new dimensions to this timeless strategy game.

The Beginning of Our Exploration

The tale of Emperor Yao inventing Go to educate his son Danzhu may be unverifiable, yet the profound history of Go remains indisputable. Across East Asia, Go is a beloved pastime, and professional Go players are held in high regard. Despite its straightforward rules, Go harbors boundless complexity in its gameplay, earning it the reputation of an eternal game within the cosmos.

Playing Go on a spherical surface is a problem that many have already considered. However, adapting a quadrilateral grid to a sphere presents significant challenges. Our approach introduces a different topological structure for the board—the snub dodecahedron.

Why the Snub Dodecahedron?

Among the 13 Archimedean solids, the snub dodecahedron stands out with its:

  • 80 equilateral triangular faces
  • 12 pentagonal faces
  • 60 vertices
  • 150 edges

This polyhedron exhibits very high symmetry and is the closest to a spherical shape among all Archimedean solids. Only such mathematical perfection can inspire us to explore a new game that is eternal.

With a total of 302 elements (80 + 12 + 60 + 150), the board offers substantial complexity, approaching the 361 grid points of traditional Go.

The Game Board

Game Board

The game board features different colored regions representing "continents" and "oceans." Three neighboring pentagons constitute a "continent," resulting in four continents on the game board. These four continents correspond to four axes of symmetry, with the ocean opposite each continent.

This design enhances visual intuitiveness and provides absolute positioning for placing stones.

Game Mechanics

In PolyClash, players place stones on the vertices of the snub dodecahedron, capturing opponent stones by surrounding them and controlling territory.

The board features points of varying degrees:

  • Degree 3: Centers of triangular faces (80 points)
  • Degree 4: Midpoints of edges (150 points)
  • Degree 5: Original vertices and centers of pentagonal faces (72 points)

With an average degree of 3.97, the game board closely resembles a four-degree board, but with strategic variations based on the different point types.

The smallest live shape in PolyClash requires only 7 stones, remarkably close to Go's 6 stones, highlighting the intrigue and challenges of our game.

Features

  • 3D Visualization: Fully interactive 3D visualization of the game board
  • Multiple Game Modes: Play locally against another human or AI, or play online against other players
  • AI Opponent: Challenge yourself against our AI, which uses strategic algorithms to provide a worthy opponent
  • Network Play: Play against other players over a local network or the internet
  • Cross-Platform: Works on Windows, macOS, and Linux

Play Now

Zero Install — Browser Only

Join a public server or ask a friend for their server URL. Just open the link in your browser.

Host Your Own Server — One Click

Deploy your own team server (8 rooms, invite-only registration) in seconds:

Deploy on Railway Deploy to Render

Or with Docker:

docker compose up -d        # Team server + Redis

Or with pip:

pip install polyclash
polyclash solo              # Solo: human vs AI, opens browser
polyclash family            # Family: LAN game with invite URLs
polyclash team              # Team server: user accounts, 8 rooms, lobby
polyclash serve             # Deployment: configurable host server

For more deployment options, see the Deployment Guide.

Game Rules

The rules of PolyClash are similar to traditional Go, with adaptations for the spherical board:

  1. Players take turns placing stones on the vertices of the snub dodecahedron
  2. A stone or group of stones is captured when all its liberties (adjacent empty points) are occupied by opponent stones
  3. The game ends when both players pass consecutively
  4. The score is calculated based on the area controlled by each player

For a complete explanation of the rules, see the Game Rules.

Development

PolyClash is an open-source project, and contributions are welcome! We have a comprehensive roadmap for improving the game, including:

  • Enhanced testing framework
  • Advanced AI algorithms (Monte Carlo Tree Search)
  • Improved user experience
  • Enhanced network play
  • And much more!

See our Development Plans for more details.

Community

Join our community to discuss strategies, report bugs, or contribute to the development:

License

PolyClash is licensed under the MIT License. See the LICENSE file for details.


"In introductory Go classes, we're all familiar with the saying '金角银边草肚皮' (gold in the corners, silver on the sides, grass in the center). But on a sphere, where are the corners? Where are the sides? This is just one of the fascinating strategic questions that PolyClash invites you to explore."

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polyclash-0.1.3.tar.gz (254.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polyclash-0.1.3-py3-none-any.whl (248.9 kB view details)

Uploaded Python 3

File details

Details for the file polyclash-0.1.3.tar.gz.

File metadata

  • Download URL: polyclash-0.1.3.tar.gz
  • Upload date:
  • Size: 254.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for polyclash-0.1.3.tar.gz
Algorithm Hash digest
SHA256 19f83cdfcbdfea7fbcea0410a6951da86905dbd554aae31d1684bd501b40ad99
MD5 5256da1dbf4f6f69398c65d1b0fa58ff
BLAKE2b-256 90cc45b3f9b7b99e508beadaccdef26a2f61e6e2340cc21e6322f8f7f0c673eb

See more details on using hashes here.

File details

Details for the file polyclash-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: polyclash-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 248.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for polyclash-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ccb19949b9804035d36966c4def06a8fb665a15518cdf57eba04455a424a21da
MD5 47748e2949fdd9335903b5443e19e17e
BLAKE2b-256 fe3f3c088041b33b1106184548190e4427c2cbb1e4d71b7778ae8cc06852df76

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page