{"id":37229318,"url":"https://github.com/zintix-labs/problab","last_synced_at":"2026-02-23T08:08:35.743Z","repository":{"id":331654941,"uuid":"1125078858","full_name":"zintix-labs/problab","owner":"zintix-labs","description":"Problab is a high-performance slot math engine for math designers and engineers. Build once, then simulate, reproduce, and ship to production with the same source of truth.","archived":false,"fork":false,"pushed_at":"2026-02-12T09:34:55.000Z","size":18929,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-12T18:21:25.282Z","etag":null,"topics":["go","golang","math","simulation","slot","slot-machine"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zintix-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-30T05:37:14.000Z","updated_at":"2026-02-12T09:33:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zintix-labs/problab","commit_stats":null,"previous_names":["zintix-labs/problab"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/zintix-labs/problab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zintix-labs%2Fproblab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zintix-labs%2Fproblab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zintix-labs%2Fproblab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zintix-labs%2Fproblab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zintix-labs","download_url":"https://codeload.github.com/zintix-labs/problab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zintix-labs%2Fproblab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29739822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["go","golang","math","simulation","slot","slot-machine"],"created_at":"2026-01-15T03:32:11.780Z","updated_at":"2026-02-23T08:08:35.717Z","avatar_url":"https://github.com/zintix-labs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"🌐 Language: En | [中文](README_ch.md)\n\n---\n\n# Problab\n\n\u003csub\u003eMaintained by \u003cb\u003eZintix Labs\u003c/b\u003e — \u003ca href=\"https://github.com/nextso\"\u003e@nextso\u003c/a\u003e\u003c/sub\u003e\n\n**Problab** is a high-performance slot math engine for math designers and engineers.\n\nBuild once, then **simulate, reproduce, and ship to production**  \nwith the **same source of truth**.\n\n**Simulation runs the same execution path as production.**\n\n---\n\n## What is Problab?\n\n**If it runs in simulation,**  \n**it runs the same way in production.**\n\nProblab is a **slot math execution engine** designed for both\nlarge-scale simulation and real production use.\n\n\nIt is the **same engine** that can be used for:\n\n- large-scale math simulation\n- deterministic reproduction (seed-based)\n- backend game server execution\n- development \u0026 debugging\n\nThere is **no separate “simulation logic” and “production logic”**.\n\n---\n\n## Why Problab?\n\nSlot math engines usually fail in one of these ways:\n\n- Simulators are fast but **not production-ready**\n- Production engines are correct but **too slow to simulate**\n- Simulation logic and server logic **diverge over time**\n- Reproducing a real production issue is painful or impossible\n\nProblab is designed to solve this exact problem.\n\n---\n\n## Core Design Goals\n\n- **Single Source of Truth**  \n  One engine, one logic path, one result.\n\n- **High Performance by Design**  \n  Zero-allocation hot paths, cache-friendly data layout.\n\n- **Explicit Dependency Injection**  \n  No hidden globals, no magic init side effects.\n\n- **Developer-Friendly**  \n  Add a new game by providing:\n  - one config file\n  - one logic file\n\n- **Same execution path in simulation and production**  \n  Simulation is not a mock or a reimplementation.  \n  It runs the same deterministic logic path as production.\n\n---\n\n## Performance Snapshot (MacBook Air M3)\n\nAll numbers below are **real measurements**, not synthetic benchmarks.\n\n### Single Core\n\n| Game Type | Throughput |\n|----------|------------|\n| Simple (5x3, 15 lines) | ~7.0M spins/sec |\n| Cascade / Cluster | ~1.7M spins/sec |\n\n### 4-Core Parallel Execution\n\n| Game Type | Throughput |\n|----------|------------|\n| Simple | ~19M spins/sec |\n| Cascade / Cluster | ~5.8M spins/sec |\n\n### Real Run Output (Example)\n\n```bash\nmake run w=4 r=25000000\n```\n\n```text\n[WORKERS:4] [GAME:demo_normal] [PLAYMODE:0] [SPINS:100,000,000]\nused: 5.26 seconds                                                                                                                      \nsps : 19,010,181 spins/sec\n+--------------------------------+\n|          demo_normal           |\n+--------------+-----------------+\n| Game Name    | demo_normal     |\n| Game ID      | 0               |\n| Total Rounds | 100,000,000     |\n| Total RTP    | 95.56 %         |\n| RTP 95% CI   | [95.42%,95.69%] |\n| Total Bet    | 4,000,000,000   |\n| Total Win    | 3,822,201,660   |\n| Base Win     | 2,439,779,100   |\n| Free Win     | 1,382,422,560   |\n| NoWin Rounds | 71,034,259      |\n| Trigger      | 835,933         |\n| STD          | 6.797           |\n| CV           | 7.113           |\n+--------------+-----------------+\n\n```\n\n### Built-in Parameter Tuning (Optimizer)\n\nProblab also includes an early-stage **optimizer toolchain** for math workflows:\n\n- Collects discrete win samples from the same execution path\n- Generates candidate shapes with configurable generators and filters\n- Outputs reusable **optimal artifacts** for runtime sampling / deterministic replay\n\nThe goal is to close the loop of **simulate → verify → tune → reproduce** on a single engine.\n\n\u003e Note: this module is still evolving and APIs/configs may change before v1.0.0.\n\n---\n\n## Typical Use Cases\n\n- Slot math simulation \u0026 validation\n- RTP / volatility analysis\n- Deterministic replay \u0026 debugging\n- Backend game server execution\n- CI regression testing for math changes\n\n---\n\n## Built-in Math Reports (Stats \u0026 Verification)\n\nProblab ships with first-class **math verification reports** for validation and regression.\n\nOut of the box you can generate:\n\n- **RTP + 95% CI**\n- **STD / CV (volatility)**\n- **Hit / No-Win / Trigger rates**\n- **Win distribution buckets** (base / free / total)\n- **Recorder-style summaries** for audit/debug workflows\n\nThis is designed for practical math workflows:  \n**validate → compare → regress → explain** with reproducible inputs.\n\nProblab treats **verification output** as a first-class product feature, not an afterthought.\n\n**Example Output**\n\n```\nTotal RTP: 95.56%\nRTP 95% CI: [95.42%, 95.69%]\nSTD: 6.797\nCV:  7.113\n...\n```\n\n---\n\n## Quick Start \n\n\n**Successful execution in 1 minute; production environment ready in 3 minutes.**\n\nThis repository focuses on the engine itself.\nFor building real games, start with the scaffold.\n\nUse **problab-scaffold** — a clean starter template built on top of Problab.\n\n👉 https://github.com/zintix-labs/problab-scaffold\n\nThe scaffold provides:\n- pre-wired configs / logic / server / simulation\n- one-command run (`make run`, `make dev`, `make svr`)\n- a structure ready for private commercial development\n\nThis is the **recommended way** to build real games with Problab.\n\n---\n\n## Determinism \u0026 Reproducibility\n\n- Seed-driven execution\n- Replayable results\n- Identical behavior between simulation and server\n\nThis makes Problab suitable for:\n\n- math audits\n- regression testing\n- production issue investigation\n\n---\n\n## Status\n\n- APIs may evolve befor v1.0.0\n- Focus is on correctness, performance, and core architecture\n\nDocumentation, tests, and starter templates will be expanded iteratively.\n\n---\n\n## Roadmap\n\n- Jackpot support (settings + snapshot/delta)\n- More shared ops\n- (RFC) Trigger methods for state transitions\n\n---\n\n## Contributing\n\nFor v0.x.y, we **only accept**:\n\n- Bug reports (with minimal repro / logs if possible)\n- Documentation improvements (fixes, examples, translations)\n\nFeature requests are welcome for discussion, but may not be prioritized yet.\n\n---\n\n## License\n\nApache License 2.0  \nSee [LICENSE](LICENSE) and [NOTICE](NOTICE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzintix-labs%2Fproblab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzintix-labs%2Fproblab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzintix-labs%2Fproblab/lists"}