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.1.tar.gz (249.1 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.1-py3-none-any.whl (243.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: polyclash-0.1.1.tar.gz
  • Upload date:
  • Size: 249.1 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.1.tar.gz
Algorithm Hash digest
SHA256 6e0f5ff9755f02b52fcd36bb5814a3ee1c29b7793305b0716ae0fdb4ab37df1d
MD5 15f95c36eda82044aa18ee1b8aed8654
BLAKE2b-256 635f2878083ab36e4ffce9dbfdf16c2720d7056ec5f8be4e6a2b3e2628e0bb4e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: polyclash-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 243.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 97d6107c075e822b1e7e1096ceee5b560adf4f855195bbd328497b0e9a02bdca
MD5 d14fc9cd8d67bb685fbc70b503958918
BLAKE2b-256 b10b9744763c73187e858d9f138e41aae09b6219cd8d13abfba3761a4d9fbdc9

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