{"id":24824833,"url":"https://github.com/baskuit/pinyon","last_synced_at":"2025-10-14T00:30:25.121Z","repository":{"id":41561778,"uuid":"494657695","full_name":"baskuit/pinyon","owner":"baskuit","description":"Pinyon is a collection of algorithms and utilities for research in search/planning in simultaneous move games. ","archived":false,"fork":false,"pushed_at":"2024-10-06T11:18:41.000Z","size":6080,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T19:51:21.834Z","etag":null,"topics":["alphazero","cpp","games","mcts","pokemon","search"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baskuit.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-21T02:16:40.000Z","updated_at":"2024-08-30T09:02:15.000Z","dependencies_parsed_at":"2022-07-07T18:28:30.796Z","dependency_job_id":"6898ef0e-1b3f-4795-b907-44dab856b608","html_url":"https://github.com/baskuit/pinyon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/baskuit/pinyon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskuit%2Fpinyon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskuit%2Fpinyon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskuit%2Fpinyon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskuit%2Fpinyon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baskuit","download_url":"https://codeload.github.com/baskuit/pinyon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baskuit%2Fpinyon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017353,"owners_count":26086052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alphazero","cpp","games","mcts","pokemon","search"],"created_at":"2025-01-30T20:57:44.699Z","updated_at":"2025-10-14T00:30:24.810Z","avatar_url":"https://github.com/baskuit.png","language":"C++","readme":"\n# Pinyon\n\nPinyon is a library for research and development of search and solving algorithms for (perfect information) simultaneous move, stochastic games. The code emphasizes:\n\n### Compile-Time Optimization\nThis library uses the template metaprogramming features of C++ to eliminate the cost of game/alorithm/etc agnosticism of similar libraries like [alpha-zero-general](https://github.com/suragnair/alpha-zero-general). Pinyon is then fully capable of tasks like powering expensive reinforcement-learning projects or server analysis.\n\n### Fully Modular\nThe game, evaluation function, and search algorithm are liberally interchangible. The interface was designed from the beginning to unify the major methods. Serveral other basic utilities are provided as well.\n\n### Simple to Start With\nVirtually any game can be augmented with a simple and fast monte-carlo search function, providing guarantees of convergence to Nash Equilibrium.\n\n### Highly Abstractable\nThe interface uses a template convention that facilitates the layering of multiple utilities to trivialize the implementation of otherwise intricate scripts, exemplified by TODO ([pkmn-pinyon-test](https://github.com/baskuit/pkmn-pinyon-test) script to replicate q-value matrices of `bull.cc` via a depth=1 `FullTraversal` backed by two layer `AlphaBeta` + `Exp3` model at leaf nodes.)\n\n### Easy Benchmarking \nVarious *implementations* of the same object can be quickly and automatically benchmarked for cheaper compute. See `/benchmarking`.\n\n### Minimal Code\nMany tasks can be settled with a small script. Once a process is described in terms of the interface it's usually almost complete.\n\n### Minimal Setup\nThis is a header library that only depends on the GNU Multiple Precision Library. Inclusion into projects is done via cmake, i.e. `add_directory(extern/pinyon)` and `#include \u003cpinyon.h\u003e`. \n\n# Documentation\nThe library is extensively documented and the points above are expanded therein. The organization of the abstraction/modularity layers is reflected by the directory structure.\n\nThe interface is codified with the use of C++20 `Concepts` which serve as another for of documentation.\n\n# Installation\nThe tests and benchmarking tools can be built via\n```\nsudo apt install libgmp3-dev\ngit clone --recurse-submodules https://github.com/baskuit/pinyon\ncd pinyon\nmkdir build\ncd build\ncmake ..\nmake\n```\n\n# Testing\nThe library comes with several tests to check the correctness of the algorothm implementations, among other things. To run, simply uncomment the `#tests` portion of the CMakeLists; It is a script that builds everything in `/tests` and marks it as such. Then simply run\n```\ncd build\nctest tests\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaskuit%2Fpinyon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaskuit%2Fpinyon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaskuit%2Fpinyon/lists"}