Skip to content

World stage b2: comparisons, numeric fluents, numeric conditions - #27

Merged
jonwillits merged 1 commit into
mainfrom
world-b2
Oct 13, 2026
Merged

jonwillits merged 1 commit into
mainfrom
world-b2

Conversation

@jonwillits

Copy link
Copy Markdown
Contributor

Stage b2 of the world-and-language refactor, with the process clean-up's follow-ups. See docs/proposals/ for the b2 proposal file.

… the cleanup's follow-ups

The world's comparisons of scalars (GREATER, ABOVE, BELOW over entities and category means, with
ENTITY as the comparison class of every entity, derived/comparison_classes.csv, and the functions
beside derive in the runtime); numeric fluents (NUMFL.<n> symbols with a range, an initial
distribution, and a drift; numeric effects, numeric threshold literals in preconditions and in
conditions, derived Boolean fluents over numeric thresholds, comparisons at a time point with
RANGE, INCREASE, and DECREASE; the order clamp(clamp(v + e) + d) within a step; histories that
record every numeric change with its cause; scene.initial: redraw for numeric fluents); the
numeric condition literals deferred from stage b1; the brute-force evaluator, ten new hand
fixtures, the regenerated tiny fixtures, and the fixtures' README for the Rust runtime; the
statistics; and the corpus kept correct without a word for any of it.

Every numeric draw comes from a stream of its own (world:numeric, numeric_initial,
numeric_effects, numeric_preconditions, numeric_conditions), by replacement of a Boolean draw at
the share, so that numeric_fluents.count: 0 gives the stage b1 worlds byte for byte and the
shares at 0 give their Boolean dynamics. The engineering choices are WM.E191 to WM.E206 in
docs/DECISIONS.md, from docs/proposals/2026-10-12-world-stage-b2-decisions.md, which also
records the changed expectations, the spec edits, the two-place shares, the run times, the
corpus's figures, the open questions, and the notes for stage b3.

The four follow-ups of the process cleanup (Jon's rulings 3 to 6, recorded in that proposal;
ruling 3 is PR.2): the random-streams rule of CLAUDE.md, the nec_none margin's comment, the
world's interference tests back in the fast tier with pytest -n auto as its command, and the
torch example's thread count.

The default and tiny worlds and corpora are regenerated (the old folders moved aside as
_pre_b2); the snapshot and the guides' figures are rewritten: every figure of the dynamics,
the episodes, and the corpora moved with the new worlds (319 figures), and the baselines of
every off setting with them. Run times: the default world 6.7 s (7.6 s in b1), the default
corpus 157.6 s (157.4 s). The two-place share on seeds 1 to 5: 0.347, 0.333, 0.440, 0.072,
0.501 (b1: 0.313, 0.519, 0.379, 0.119, 0.509).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@jonwillits
jonwillits merged commit 166e6a9 into main Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant