A rebuild from scratch simulation and games engine framework set up to assimilate and optimize techniques and implementations useful for games, simulations, robotics.
Find a file
tegwick 55a475b1a9
Some checks failed
ci / check (push) Failing after 4s
CB-RES-0009: extensive form is the lingua franca
Two questions from the maintainer — is there a game-theory mapping to
Ludii's language, and is that language formal enough to derive one from.
Yes, no, and the no does not matter.

The mapping is proven, not to be invented: "The Ludii Game Description
Language is Universal" shows the language can represent an equivalent game
for any finite, non-deterministic, imperfect-information game, extending
earlier work limited to finite deterministic fully-observable
extensive-form games. EFG is also OpenSpiel's object, so the same
formalism connects description to analysis: Ludii -> EFG <- OpenSpiel.

Ludii's syntax is formal and unusually so — a class grammar derived
automatically from its source. Its semantics are its Java: a ludeme means
what its class does, and Ludii effectively makes Java the game description
language. So there is no independent calculus to extract. The formality
lives in the universality RESULT, not in a definition of meaning. GDL has
the semantics and pays for it in speed — six times on Gomoku, twenty on
Amazons and Hex, over two hundred on Chess.

Conclusion: do not derive a language from Ludii; target the EFG directly.

And we are closer than the tracks assumed. The journal is the history,
Outcome is the payoff, legal_commands gives the actions — and
project(Viewer::Player(seat)) IS the information partition, built so a
player is not shown another's hand and unremarked as exactly the machinery
imperfect information needs.

Three gaps: chance is folded into a seed so a game is one realisation
rather than a game with chance nodes; perfect recall is unasserted, which
CFR and exploitability both assume; and commit/reveal is the standard EFG
encoding of simultaneity but is never stated as such. Perfect recall is
checkable from the journal today and is now Track B's first task — if it
fails, every equilibrium concept we might quote is unsound here.

Also re-vendored the catalog twice: ground-game added H2 — scoped problem
stress, applying End Stress by personal/bond/global scope instead of flat
to everyone, which is a direct response to our reading that H1's tax
scales with the Problems while its intended effect does not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 14:57:25 +02:00
.forgejo/workflows T01: audit every InnerLoop rule, and make the checkable ones executable 2026-07-31 09:16:00 +02:00
benchmarks CB-WP-0006 T07: implement K18, amend K14 2026-08-01 12:47:16 +02:00
crates CB-WP-0035: a session that answers nothing 2026-08-07 20:31:32 +02:00
decisions CB-WP-0033: a game is the unit 2026-08-07 17:41:11 +02:00
editions CB-RES-0009: extensive form is the lingua franca 2026-08-08 14:57:25 +02:00
evidence CB-REV-0003: round 3, and three of four FATAL came from round 2's fixes 2026-08-08 10:26:25 +02:00
games/ground CB-REV-0003: round 3, and three of four FATAL came from round 2's fixes 2026-08-08 10:26:25 +02:00
history CB-WP-0025 T02: the review withdrew the finding, and the fifth wrong 2026-08-05 18:06:03 +02:00
research CB-RES-0009: extensive form is the lingua franca 2026-08-08 14:57:25 +02:00
reviews CB-REV-0003: round 3, and three of four FATAL came from round 2's fixes 2026-08-08 10:26:25 +02:00
scenarios CB-WP-0026: collect the rulings -- ten answers that arrived and were never applied 2026-08-05 16:13:37 +02:00
simulators CB-RES-0009: extensive form is the lingua franca 2026-08-08 14:57:25 +02:00
specs CB-RES-0009: extensive form is the lingua franca 2026-08-08 14:57:25 +02:00
tools CB-REV-0003: round 3, and three of four FATAL came from round 2's fixes 2026-08-08 10:26:25 +02:00
trials CB-WP-0039: a seat that does not regulate — and it changes H1's verdict 2026-08-08 01:08:40 +02:00
workplans simulators/: persist the survey, and let it shrink two of the three tracks 2026-08-08 11:56:27 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-08-08 00:50:45 +02:00
.gitignore chore: stop tracking tools/__pycache__ 2026-08-01 12:49:17 +02:00
Cargo.lock CB-WP-0016: the drop target that was never there 2026-08-02 20:48:18 +02:00
Cargo.toml CB-WP-0012-T04: cb-render-html — stage 1 draws, and the browser is the toolkit 2026-08-02 04:27:25 +02:00
clippy.toml T07: Cargo workspace scaffold — cb-kernel/cb-events/cb-game-runtime/games-ground/cb-sim, HashMap deny-lint, scenario format + runner stub, Criterion skeleton, Makefile, CI 2026-07-31 01:57:13 +02:00
facts.toml CB-WP-0023: SOLVE is legal only where it can do something 2026-08-04 00:18:40 +02:00
gates.toml CB-REV-0003: round 3, and three of four FATAL came from round 2's fixes 2026-08-08 10:26:25 +02:00
INTENT.md simulators/: persist the survey, and let it shrink two of the three tracks 2026-08-08 11:56:27 +02:00
LICENSE Adopt TRSL V1C1 license; link ground-game and target-revenue sister repos 2026-07-31 00:25:30 +02:00
Makefile The panels gate did not run; every gate now declares a cadence 2026-08-08 09:55:41 +02:00
README.md CB-WP-0004 T01: fix environment friction at the root 2026-07-31 10:13:52 +02:00
rust-toolchain.toml T07: Cargo workspace scaffold — cb-kernel/cb-events/cb-game-runtime/games-ground/cb-sim, HashMap deny-lint, scenario format + runner stub, Criterion skeleton, Makefile, CI 2026-07-31 01:57:13 +02:00
WORK-RECORDS.md Regenerate WORK-RECORDS after the survey 2026-08-08 11:57:24 +02:00

clay-borg

A rebuild from scratch simulation and games engine framework set up to assimilate and optimize techniques and implementations useful for games, simulations, robotics.

Licensed under the Target Revenue Source License (TRSL V1C1) — see LICENSE; canonical text lives in the org's target-revenue repository.

Running the gates

make all                      # every gate, from a clean shell
make -C /path/to/clay-borg all   # …or from any other directory

There is no environment setup step. No cd, no export PATH, no activation script. make locates the repo from its own path and cargo from the standard rustup locations; the Python tools do the same via tools/repo.py. The only prerequisites are a rustup toolchain and Python 3.11+.

This is deliberate and enforced: make env-test runs every tool from / with a PATH containing no cargo, and make all includes it. CB-RES-0003 measured 84 agent turns and $15.33 spent prefixing commands with cd and export PATH before that friction was fixed at the root (CB-WP-0004 T01).

Other useful targets: make cost (spend per task), make cost-budget (spend since the last commit), make cost-mix (mechanical vs judgment turns), make loop-lint (executable InnerLoop rules), make self-tests (every tool's positive control).

GROUND

The first product vertical is a virtual tabletop implementation of GROUND — A Game of Bonds and Rivalry: DARVO Edition. The boardgame itself (rules, editions, content) is at home in the sister repository ground-game — that repo is authoritative for what GROUND is; clay-borg implements the engine that runs it.