CoOp:Anything
게임을 검색해 협동 플레이 가능한 모드·단계·품질·커뮤니티 평점을 확인합니다
3D Baduk:support cylinder, torus, mobius shape, and KataGo AI as opponent
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A fully playable Go game on cylinders, tori, and Möbius strips—built during OpenAI Build Week with Codex and GPT-5.6. Gomoku (freestyle and Renju) and Othello now share the same boards, views, lobby and AI opponents.
Live demo: https://topology-go.pystashell.workers.dev/
Traditional Go is played on a flat rectangular board with clear edges and corners.
Topology Go begins with a different question:
What would Go feel like on a board without traditional boundaries?
My original idea was to create Go on a sphere. While exploring the geometry, however, I discovered that a regular rectangular Go grid does not fit naturally on a sphere without distortion or irregular intersections.
That led to a more interesting direction: connecting the edges of a normal board in different ways.
The same rectangular grid can become:
These surfaces are not visual skins. Their topology changes adjacency, liberties, captures, territory, escape routes, connections, and strategy.
Players make moves on a familiar flat Go board, but the board can be dragged continuously through its connected directions.
Visually, there is no final edge.
When stones disappear from one side, they reappear from the opposite side. On the torus, players can continue sliding horizontally or vertically and eventually return to the same position.
The logical board is finite, but its flat representation repeats continuously.
This creates strategic situations that cannot occur in ordinary Go:
At any time, players can switch between the flat board and its synchronized 3D surface.
A complete game can also be replayed on the cylinder, torus, or Möbius strip, allowing players to see how a familiar two-dimensional battle unfolded inside a connected geometric space.
Use Invite friend to open the lobby, or visit /lobby directly. Create or join a room there, then send and accept a game invitation to start a round. Joining a room does not start a game automatically.
D4 and K10This project was conceived and built during OpenAI Build Week through an intensive AI-assisted vibe-coding workflow.
My role was closer to that of a:
I defined the central idea, researched the possible topologies, decided how each board should behave, designed the interaction model, tested every version, identified confusing or incorrect behavior, and continuously refined the product.
Codex and ChatGPT generated and revised the implementation. I did not manually type the implementation code.
I usually began by describing the result I wanted rather than specifying every technical step.
For example, I would describe:
I often allowed Codex to propose its own architecture and implementation approach first.
The model frequently produced solutions that surprised me. When an approach worked well, I could continue developing the product without prescribing the implementation myself. When it did not match the intended experience, I gave more precise feedback, examples, or constraints.
GPT-5.6 Sol was used throughout the project for:
Debugging happened primarily through natural-language conversation.
Instead of opening the code and investigating every line myself, I described:
The model investigated the likely cause, proposed a revision, and updated the implementation. I then tested the result and continued the conversation until the behavior matched the intended design.
Because I have programming experience, I could provide technical context and judge whether the diagnosis made sense. However, the workflow felt less like manually repairing a machine and more like a doctor interviewing a patient: observing symptoms, forming a diagnosis, applying a treatment, and checking whether the problem disappeared.
The development process followed a clear fast-then-slow pattern.
Early in the project, I gave the AI broad goals and freedom to explore. This produced a playable prototype very quickly.
Later, the work became increasingly detailed. Most of my time shifted toward:
At that stage, I repeatedly played the game and gave increasingly precise feedback.
Annotated screenshots also became useful as visual blueprints. Arrows, boxes, and short notes often communicated UI and interaction requirements more effectively than long written descriptions.
A topology experiment is easy to demonstrate, but Go is only meaningful when there is someone—or something—worth playing against.
A player may open the game without another person available, so the AI opponent was essential rather than optional.
The game uses a browser-based KataGo hybrid system:
The available models are:
Inference runs locally in the player's browser inside a Web Worker. No account or paid inference API is required.
Because ordinary KataGo networks were trained on standard flat Go boards, the project does not claim that their normal-board strength transfers perfectly to unusual topologies.
The other games have their own engines, also running in a Web Worker:
npm install
npm run dev
Use Node.js 22 or newer. npm run dev builds the client and starts the local Worker with multiplayer support at http://localhost:8787.
npm test
npm run build
npx wrangler deploy --dry-run --strict
npm audit
With the local Worker running, check the multiplayer and scoring flows:
npm run test:live
node scripts/live-scoring-smoke.mjs
Pull requests run the test suite, build, deployment dry-run, and dependency audit. Release commands and compatibility notes are in docs/RELEASES.md; the audit findings and verification evidence are in the audit follow-up.