The training flow reached an unsafe or stalled state. No answer has been invented. Choose how to recover.
Eucalculia trains numerical cognition through two currently active modes: Numerical Sense and Relational Reasoning. Numerical Sense trains rapid recognition of numerical value across visual and symbolic representations. It includes true subitizing, but also structured value recognition in formats such as abaci, coins, Roman numerals, clocks and digits. Relational Reasoning trains the ability to encode values, retain them briefly, evaluate relations between them, compute derived values, and compare or synthesize conclusions across multiple episodes.
The current v6 architecture is deliberately narrower than older multi-mode versions: it keeps Mode A and Mode D because they are the two most coherent strands of the program. Mode A targets fast value recognition across perceptual, structured and symbolic number formats. Mode D implements a Posner-style delayed-question paradigm and adds hierarchical relational integration: L0, L1, L2 and L3. In the current build, Relational Reasoning defaults to Auto integration: the app introduces L1, L2 and L3 according to performance, with low-frequency preview probes before full activation.
Auto introduces visual manipulation after basic value recognition and before ordinary relational practice. These trials are a bridge: the user first learns to read the active representations, then learns to manipulate them mentally after the mask, and only then does L0 become the main stream. Once the relational stream is open, isolated single-stimulus tutorial trials disappear; transformations continue inside L0 and later L1, where they are combined with ordinary relational questions.
Transformations are representation-specific. Dice can use the opposite face, clocks can rotate or move hours, frames and square grids can use complements, coins and cards can filter internal parts, clusters can select subgroups, abaci can separate upper and lower value, and cubes can be viewed from a different side. The review screen decomposes transformed L0 errors into shown value, transformed value and final relation.
Auto is now the recommended entry path for ordinary use. It does not simply start in Relational Reasoning: it orchestrates a sequence of hidden subphases. First, the app verifies that the active representations are read fluently as single values. Then it introduces explicit single-stimulus transformations, such as mentally using the opposite face of a die, complements in frames or fingers, selected coin/card/cluster subparts, or clearly stated cube-row/view questions. Only after that bridge has real evidence does it move into L0 relational trials; before full handoff, L0 may appear only as a sparse preview. The user does not manually decide which subphase appears next.
Each meta level has three possible states:
Auto state is intentionally not advertised during play. The HUD keeps only the basic mode/level label, while the Training Log gives the detailed status for the hidden Auto phase and for L1, L2 and L3, including the reason for each state. When a new Auto layer first becomes available, the app opens a fresh memory window and, the first time that layer is actually presented, pauses on a short onboarding card. It does not immediately ask a question based on episodes shown before the transition.
Manual L0/L1/L2/L3 settings remain available for targeted practice, debugging or deliberate isolation of one layer. Manual mode applies the chosen ceiling directly and does not use Preview gating.
The runtime recovery screen is a safety valve, not a normal feedback state. It appears only when the training flow reaches an unsafe internal condition, such as a broken input panel, an invalid stalled transition, a missing continuation, or a failed attempt to open the normal menu. It must not appear merely because the user takes a long time to answer during INPUT; long pauses can be recorded for telemetry, but they are not treated as errors.
If recovery appears, no answer is invented and no hidden trial result is forced. Resume safely attempts to return to a valid input or transition state, End block closes the current block without pretending the broken item was answered, Return to menu exits to the menu, Reset runtime only clears transient timers and flow state without deleting saved progress, and Export diagnostics writes the compact debug payload used to inspect the failure.
Response time is measured in milliseconds with performance.now(). Numerical Sense accepts answers only after the stimulus and mask have finished. Relational L0 also accepts answers only after the two represented values and the mask have finished; at that moment the delayed question, answer controls and RT start together. For L1, L2 and L3, RT starts as soon as the question and answer controls appear. Reading and comprehension are therefore part of the measured relational task.
Do not treat every slow answer as failure. At L1–L3, slower correct answers can still be useful because the task involves retention, computation and language. The adaptive system uses both accuracy and speed, but accuracy remains the first requirement.
ET means exposure time: how long the stimulus remains visible. Earlier versions measured this in display frames, which produced different durations on 60 Hz, 90 Hz and 120 Hz screens. v6 measures prep, flash, mask and review phases in wall-clock milliseconds.
Prep: a short preparation phase before the stimulus. Flash: the visual stimulus is shown. Mask: a brief procedural noise mask interrupts visual persistence so the user cannot rely on afterimages. Input: the app accepts a response. Review: after errors, the app shows corrective feedback.
During Input, a very subtle blue halo and bottom line mark that responses are currently accepted. This cue is intentionally peripheral and non-green, so it signals readiness without being confused with correct-answer feedback. The adaptive training focus is deliberately not shown during active trials, because semantic labels such as equality, comparison or threshold relations can bias encoding in a delayed-question task.
In Relational Reasoning, a memory cue appears only when a later meta-question has already been probabilistically scheduled. On mobile, the cue is centered near the top of the frame rather than compressed into the corner, so it is visible without covering either stimulus. When a new MEM state appears or advances, the cue gives a brief visual ping and then remains still. It uses the target level and chain position: 🧠¹ MEM 1/2 for a pair feeding META, 🧠² MEM 1/2 for a META result feeding META², and 🧠³ MEM 1/2 for a META² question feeding META³. In advanced memory chains, MEM items may sometimes be separated by a non-META lure. For L0→L1, the lure changes one of the retained numbers, swaps sides, or preserves a tempting sum/gap while altering the actual pair; this targets the values and left/right binding needed for the next META question. For L1→L2, later blocks may insert a non-META L1 answer that competes with the retained META answer. These lures are monitored as MEM interference and do not feed the next META / META² question. If a marked prerequisite is answered incorrectly, the review does not cancel the chain; it shows a compact semantic repair card with the corrected unit to retain. If the nominal block limit is reached while a MEM chain is active or due, the block enters a short drain phase and continues until the promised META / META² / META³ question has been answered.
The mask is not part of the answer. It is a visual interruption. It is generated dynamically with fine-grain noise so it is less blocky and less unpleasant than earlier masks while still preventing the stimulus from lingering visually.
Every stimulus represents a number. The core rule is: answer or reason about the quantity represented, not about whether the pictures look identical, unless the question explicitly asks about format or representation.
Discrete dots arranged as an ungrouped quantity field. Use this representation for direct numerosity recognition: the answer is the total number of visible dots.
Small non-circular tiles separated into compact, color-coded chunks. The chunks are there to support groupitizing: perceiving a total through subgroups in the subitizing range (typically 2–4 marks per group, 2–4 groups). Subgroup color is stable across stimuli: 1 = light gray, 2 = green, 3 = purple, 4 = yellow and 5 = blue. Cluster marks are intentionally distinct from Dots, but now use one consistent visual family instead of several polygon types, so the user reads them as a representation family rather than as a code. When all groups have the same size — for example 3+3+3 or 4+4+4 — repeated equal chunks can still be read multiplicatively. When groups differ in size, color and spacing keep the additive structure visible. The whole cluster may still rotate, because orientation variation helps transfer without changing the meaning of color. The answer is always the total number of marks, not the number of clusters.
A ten-frame, twenty-frame or thirty-frame layout. Filled cells represent the quantity. The fill pattern is no longer always left-to-right: it varies among stable, canonical, symmetric and complement-to-10 arrangements while keeping the same visual frame. Useful for seeing numbers as structured parts of 5, 10 and 20.
Standard pip patterns. These support rapid recognition through familiar spatial configurations.
Two grouped halves. Read the total across both halves unless a relational question asks you to compare two separate displayed quantities.
Vertical marks grouped in fives. Four vertical strokes plus a diagonal stroke represent five.
Raised fingers represent the quantity. One hand usually covers 1–5; two hands can represent larger values.
A simplified positional representation. Pink/red beads on the upper rod = 5; green beads on the lower rod = 1. Combine them to obtain the displayed value: for example, two upper beads and three lower beads represent 10+3 = 13.
Playing-card style pips. Interpret the total number of pips, not the card suit.
Perspective 3D cubes arranged on an explicit 3×3 grid. The basic value is the total number of cubes, capped at 9. In advanced Auto/Relational trials, cube questions may ask the user to imagine the same layout from the back or from either side, then evaluate a row, column, gap or related property after the mask.
Coins use visual differences to encode value classes. Copper = 1, silver = 2, and gold = 5. Silver and gold coins have a reeded rim, and denomination also receives a mild non-numeric size cue: copper is slightly smaller, gold slightly larger. Gold adds a single inner ring. Denominations are not printed as numbers; infer the values from color, rim and size coding and add them. For example, one gold, one silver and two copper coins represent 5+2+1+1 = 9.
Roman notation such as I, IV, V, IX and X. These are symbolic rather than pictorial, but useful for transfer to real-world notations.
A clock face or hour-hand style display. Read the indicated hour/number.
For values 1–9, Grid uses an explicit 3×3 square container with faint empty cells and varied filled-cell patterns, making complements to 9 visually meaningful. Higher values use larger structured grids. The value is the number of filled cells; empty cells are used only when a question explicitly asks for a complement.
Arabic numerals. This option removes visual quantity decoding and lets the user focus on relational logic or symbolic magnitude.
Mode A shows a single represented numerical value. Type the number it encodes. The ideal strategy is to recognize value from structure, pattern or notation, not count item by item. With dots, dice or ten-frames this often means subitizing or groupitizing; with abaci, coins, clocks, Roman numerals or digits it means fast value recognition from a learned numerical code.
L0 is the base Posner-style task. Two quantities flash side by side. The question is hidden during the flash, then appears after the mask. Because the question is delayed, you must encode both quantities abstractly before knowing which relation will be tested. Each side is capped at 12 in Relational Reasoning, so the task remains a two-sided relational encoding problem rather than a high-numerosity visual-counting problem.
Examples: “Are the two numbers the same?”, “Is the left number greater than the right number?”, “Are both numbers both even or both odd?”, “Do the two numbers add up to more than 10?”, “Is the larger number even?”, “Is the difference between the two numbers prime?”, “Can one number be divided by the other with no remainder?”. The current build includes explicit value/representation-type relations (“same value, different representation type?”), quantifiers (“exactly one value is prime?”), explicit threshold-side membership, one-step counterfactuals, proportional checks, dynamic-center distance relations and compact compound frame checks. This build also adds advanced transformation checks such as “if the smaller number increased by 2...”, structural-divisibility checks such as “do the two numbers share a divisor other than 1?”, and carefully limited compound-frame prompts that combine comparison with parity, gap or multiplicative conditions. Answer YES or NO.
L0 categories are not all equally likely from the beginning. The app uses soft relational frontiers: direct comparisons appear first, then joint numerical properties, explicit set-membership questions, role/property binding, metric and factor relations, and finally compound relations. User-facing wording avoids internal terms such as “case”, “in/out”, “NAND”, “NOR” or “vacuous truth”; those labels remain internal only. The current value range still matters, but recent accuracy, response time, relational-frame weaknesses and recent sampling concentration also shape which categories are emphasized.
Update Chains: after frame-burst performance is stable, a sparse advanced L0 family may appear. A burst asks several questions about the same fixed LEFT/RIGHT state. An Update Chain instead tells you to replace LEFT or RIGHT internally and then answer a YES/NO question about the updated state. For example: “Replace LEFT with the gap between LEFT and RIGHT. Is LEFT now even?” A later probe may then use that updated LEFT: “Now replace RIGHT with LEFT + 2. Is RIGHT now greater than original RIGHT?” These items remain L0: no numpad is used, and the answer channel stays YES/NO. They are initially kept out of MEM/META history so mutable-state practice does not interfere with ordinary retained-pair integration.
L1 appears after two L0 trials. It normally asks for a numeric answer computed from the two retained pairs; a small advanced subset uses choice-format retained-pair answers. You must use the values from both previous pairs, not just the last pair. Current L1 deliberately avoids pure property-count answers: properties, sets, intervals, transformations, proportions, remainders and virtual before/after trajectories are used to select or transform values before computing a non-negative integer.
In advanced Relational blocks, choice-format L1-style challenges may occasionally ask about the two retained L0 pairs. These include proportional-normalization checks, retained-pair rule checks and hypothetical transformations. They no longer display a fresh generated pair-pair state; the question refers to Pair 1 and Pair 2 as the two previous retained L0 episodes, so the retained values still matter. Because these answers are categorical choices rather than scalar numbers, any following META² question is restricted to source/provenance-safe conclusions instead of numeric distance, threshold or parity comparisons.
Typical L1 operations include: sum of all four values; largest or smallest of all four; second-largest or second-smallest; sum of the larger value from each pair; sum of the smaller value from each pair; difference between pair totals; left-column and right-column totals; range across all four; side-transfer operations such as “use the side of pair 2 that matched a role in pair 1”; filters such as “add only values that appeared once”, “add the prime values” or “add the values from {IL} to {IH}”; quantified filters such as “add values satisfying at least one / both / exactly one / neither condition”; second-order retained-pair analogy checks such as comparing whether Pair 1 and Pair 2 had the same order relation, the same gap relation or the same parity pattern; before/after state-transition checks such as whether both sides increased, which side changed more, or whether the gap expanded; imagined structured-state operations such as constructing an abacus from lower-row and upper-row retained values; and high-ceiling two-step operations such as “choose the pair with the higher sum, then enter its value closest to 10” or “from the pair with exactly one prime value, write the only even value”. Pure property-count tasks are kept only as deprecated test objects and are no longer sampled in ordinary play. Properties and quantifiers now select values, select a pair, select a side, or define a role transfer; most L1 answers remain calculated non-negative integers, while the advanced categorical L1 entries use four-option source-safe answers.
All L1 answers are non-negative. Difference questions are framed as gaps or distances unless the wording explicitly defines an order. Type the numeric result on the numpad.
This build extends the Mental Line preview inside Relational Reasoning L1. It is not a new mode and does not change the numpad. When L1 is already available, a low-frequency gated trial may ask for a midpoint, a mirrored distance, a same-amount movement, a step-counting movement, a closer-to-referent comparison, an extended two-step path, a fractional interior point, a same-step sequence continuation, or a sparse 12-clock-loop movement. The active wording refers to retained sources rather than reprinting the memorized numbers. Examples are: “What number is exactly between pair 1’s left value and pair 2’s right value?”, “Pair 1’s right value is some steps from pair 2’s left value. What number is the same distance from pair 2’s left value on the other side?”, “Pair 1’s left value moves to pair 2’s left value. Where does pair 1’s right value move by the same amount?”, “How many steps from pair 1’s left value to pair 2’s right value?”, “Of pair 1’s left value and pair 2’s right value, which is closer to pair 1’s right value?”, “Start at pair 1’s left value. Go forward by pair 1’s gap, then back by pair 2’s gap. Where do you end?”, and “On a 12-clock loop, start at pair 1’s left value and move forward by pair 2’s gap. Where are you?”
The preview remains deliberately sparse: at most one Mental Line L1 trial per block, with a 10% rate among eligible L1 opportunities. A cross-block guard also prevents two Mental Line L1 previews from appearing consecutively when one block ends with Mental Line and the next block would otherwise begin with Mental Line.
The compact Mental Line operations interpret inherited operands as unique values drawn from the four values retained across the two previous L0 episodes. Same-amount movement, closer-to-referent tasks, two-step paths, interior-point tasks and sequence continuation also derive their origins, referents, endpoints or movement distances from the retained values and their within-pair, column or cross-within-pair differences. The Phase-3 extended-range operations remain L1 trials, not META² trials: their results may exceed 10, but their source values and movement sizes still come from the retained L0 material. Phase 4 adds a deliberately sparse cyclic topology modifier: only the familiar 12-clock loop is used, the wording always says “12-clock loop”, and cyclic items are never mixed with ordinary linear movement inside the same question. The initial operations are forward movement, backward movement and shorter loop distance. When possible, same-amount movement prefers movement sizes of 3 or more and uses 1- or 2-step movements only as fallback. The step-counting task is intentionally logged separately from ordinary gap tasks: it computes the same absolute distance, but frames it as movement on the internal number line. The Training Log records operation type, accuracy, response time, movement distance, referent, range bucket, direction, cyclic topology and linear no-wrap errors. These data are training telemetry only, not a cognitive diagnosis.
This build adds a narrow L1 family for imagined abacus construction. It is not a new mode, not a new topology and not a displayed stimulus. The task uses two retained values as instructions for an imagined abacus state: one value gives the number of lower-row beads, each worth 1, and a cross-pair value gives the number of upper-row beads, each worth 5. The answer is the number shown by that imagined state.
For example, if the lower row has 3 beads and the upper row has 3 beads, the value is 3 + 5×3 = 18. The generator only uses canonical lower-row counts from 1 to 4, so the lower row never contains five unit beads. The initial deployment also limits upper-row counts to 1–4, keeping answers in a compact 6–24 band. META² and META³ can refer to this family as a structured-representation task, separately from 12-clock cyclic topology.
This build adds a contained ATOM-inspired layer inside Relational Reasoning. It does not use sensory magnitude cues such as real duration, physical size, brightness or sound volume. Instead, it treats the two retained L0 pairs as ordered episodes: pair 1 is the before state and pair 2 is the after state.
The new L1 trajectory operations use the same remembered numbers to ask about pair-to-pair change, movement toward an anchor and interval transfer. Examples include: “In pair 2, enter the value from the side that changed more since pair 1”, “In pair 2, enter the value from the side that moved closer to 10 the most”, and “In pair 2, enter the value that fell between the two values of pair 1.” These tasks are late-stage material because they require retaining left/right position, pair order and a derived magnitude relation at the same time.
L2 and L3 can now refer publicly to these operations as before/after trajectory, movement toward an anchor, or using one pair as an interval for the other. The labels are intentionally semantic and visible; hidden implementation tags are still not used as user-facing L3 content.
This build adds three closely related L1 families that move beyond direct numeric integration. They are choice-format layers (no numeric typing) and they share the same two retained L0 pairs as input.
Witness search presents a conjunctive condition (for example: a value that is even and greater than the gap of pair 1) and asks the user to identify which of the four remembered values satisfies it, or whether none do. The cognitive load is enumerate-and-verify: holding all four values, scanning each against both clauses, and accepting that the correct answer may be "none." Response-time bands are higher than for a direct comparison: rtL1WitnessGood = 5500 ms, rtL1WitnessFast = 3200 ms.
Coherence verification displays a multi-part claim about the two pairs (for example: "pair 1 had the larger sum, both pairs had even left values, and the gap of pair 2 was at most 3") and asks whether the entire conjunction is true. The challenge is verifying every clause without being misled by clauses that only partially match. The accuracy band tracks each individual clause-flip distractor type so the Training Log can surface which kind of partial match the user accepts most easily.
Counterfactual simulation applies a hypothetical change to one of the retained pairs (for example: "if pair 2's right value had been 7 instead, what would the new sum-of-pairs be?") and asks the user to extract the relevant value from the post-hypothetical world. The user must distinguish what is currently held in memory from what would hold under the change.
Chained proportion is a smaller L1 sublayer that asks for two-step proportional reasoning across the retained pairs (for example: "if pair 1's gap was 1/3 of pair 2's gap, and pair 2's gap was four, what was pair 1's gap?"). It is gated by L0 numeric-integration accuracy and lives in the same response-time band as witness and coherence.
All four families track separate accuracy and RT diagnostics in the Training Log under their own headings, and unlock dedicated milestones (first solve, ten-clean, etc.) so progress is visible without confounding them with ordinary L1 numeric integration.
This build adds a narrow L1 choice-format layer for direct relation-to-relation comparison. After two L0 pairs have been retained, the question may ask whether Pair 1 and Pair 2 had the same order relation, opposite order relations, the same within-within-pair difference, a larger gap in one pair, or the same even/odd pattern. These questions do not ask for a new number; they ask for the relation between the two remembered relations.
The same layer also adds before/after state-transition questions. Pair 1 is treated as the initial state and Pair 2 as the final state, so the user may be asked whether both sides increased, both sides decreased, one side moved up while the other moved down, which side changed more, or whether the gap expanded or contracted. These are ordinary L1 catalogue entries with responseFormat:"choice"; they do not open a parallel pipeline. Any following META² question is restricted to source/provenance-safe conclusions rather than numeric distance, parity or threshold relations.
This build adds a contained P-FIT-inspired executive-control layer to Relational Reasoning. It does not add generic Stroop tasks, colors, sounds or arbitrary memory exercises. Instead, the app annotates existing numerical-relational trials by the kind of selection, inhibition and integration they require. These adaptations are silent during play: no executive diagnosis, adaptive weakness label or micro-repair target is shown in the game interface.
The tracked executive dimensions include rule switching, raw value versus transformed value, visual side versus abstract role, quantifier inhibition, set membership versus magnitude, anchor/distance versus size, source-rule identification and before/after reconfiguration. Four-option META² and META³ trials also record which plausible distractor type was selected, such as a primary-relation flip, a secondary-relation flip, a Boolean bucket flip, a conditional branch flip or a source-rule flip.
These data are used as training metadata, not as clinical diagnostics. If a user repeatedly struggles with one conflict type or integration bridge, adaptive sampling can gently increase related material while preserving the current L0→L1→L2→L3 architecture. The game interface remains quiet: no adaptive weakness, executive focus, integration-load label or micro-repair target is shown during play. Detailed figures are available only in the Training Log.
Relational Reasoning now treats set membership and quantifiers as explicit families. A value may be even, prime, composite, square, a power of 2, a multiple of 3, or from {IL} to {IH}. L0 may ask whether both values, at least one value, no value, exactly one value, or not both values satisfy a condition.
L1 does not ask for pure counts of properties. Properties and quantifiers are used to select values, select a pair, transfer a side, or compute a numeric result. For example, the task may ask for the sum of values satisfying at least one of two conditions, or the total of the pair that matches an if/else branch rule.
Boolean connectors: the app now uses a shared internal Boolean layer for AND, OR, XOR, NAND and NOR. In ordinary play these are rendered as natural-language prompts such as “at least one”, “exactly one”, “not both” or “both false”. Mixed Boolean L0 prompts combine two different predicates only when the wording remains short and legible.
Conditional branches: ordinary practice no longer relies on formal implication or vacuous truth. Conditional prompts are phrased as two-branch numeric rules: for example, “if the left number is even, the right must be greater than 5; otherwise, the right must be 5 or less.” The answer is correct only when the condition selected by the first branch matches the displayed number.
These Boolean and conditional prompts are deliberately late-stage material. Simple OR/AND combinations can appear before the most difficult connective cases; XOR, NAND, NOR and explicit if/else branch rules are held back until higher relational levels. They remain numerically grounded: each truth value is computed from parity, primality, size, gap or sum properties of the displayed numbers.
This build adds a sparse late-stage wording layer inside Relational Reasoning. It does not add a new mode, a new answer channel or a parallel catalogue. The same numerical predicate is still verified by the same generator; only some prompts are rendered through controlled semantic-scope variants.
The active variants are limited to four mechanisms: precise negation scope, restrictive quantifiers, controlled Pair 1 / Pair 2 reference and functional relative clauses that build the referent before applying the predicate. Examples include “Is neither number even?”, “Is at most one of the two numbers prime?”, “Of the four remembered values, what was the largest?” and “The value that is larger: is it even?” Conversational tag questions and gratuitous double negations are intentionally excluded.
These variants are gated to later relational levels and tracked separately as semantic-scope telemetry in the Training Log. Accuracy and response time can therefore be audited by wording mechanism without confusing those measurements with the underlying numerical category. In v6.4.21, this telemetry also applies a small capped sampling bias inside the wording-variant selector, so repeated difficulty with negation scope, restrictive quantifiers or controlled references can receive additional practice without flooding the block.
L2 appears after two L1 trials. Instead of typing a number, you select the only fully correct conclusion from four options. The options refer to the two L1 answers and sometimes to how those answers were obtained.
Early L2 uses one conclusion dimension at a time. The first items use four natural buckets for one dimension, such as equal / differed by 1 / differed by 2 or 3 / differed by 4 or more, or both even / both odd / first even only / second even only. Threshold and set-membership variants use the same four-state pattern: both, only the first, only the second, or neither. Two-dimension conclusions such as “above the limit and same parity” are held until the full META² phase.
Pure answer relations ask whether answer 1 was greater than answer 2, whether both answers were equal, whether they had the same parity, or whether their combined total had a property. Threshold relations ask whether the answers were close enough, whether their sum exceeded a calibrated limit, whether both answers exceeded a calibrated limit, or whether both answers stayed at most at a calibrated limit. This build also adds explicit set-membership and quantifier classifications: for a chosen set or condition, the four options state whether both, only the first, only the second or neither META answer satisfied it. Advanced L2 can also ask for the actual branch outcome of an if/else rule or the actual case of a mixed Boolean connective such as AND, OR, XOR, NAND or NOR, but those cases are sampled only after simpler answer, threshold and membership relations have had room to stabilize.
More advanced L2 variants bind answer relations to the previous calculation type. v6.3.5 also adds structural multiplicative checks between the two META answers, such as coprimality, product divisibility and whether the smaller answer divides the combined total. It can also ask for the ordinal pattern of the four values that fed one previous META question, or whether a previous META calculation used the 12-clock loop. The ordinal-pattern variants distinguish cases such as one pair inside the other, interleaved pairs, or one pair entirely lower than the other. For example, the correct conclusion may involve both the size of the answers and whether a prior calculation used a role-based operation, a threshold, a gap, a position rule, a side-transfer rule or a conditional rule. Distractors are not random: they are controlled flips of comparison, parity, threshold or calculation provenance.
L3 appears after two L2 trials. It presents four compact statements or rules about the two previous META² questions. Exactly one statement is correct.
Each retained previous choice question stores only public information: the corrected L2 conclusion, the difference between the two META answers, the visible kind of question, whether a target number was used, whether the question referred to how the previous answers were calculated, and the relevant public pattern: set membership, quantifier bucket, if/else branch case, virtual transformation, proportional relation, structural divisibility, ordinal pattern, 12-clock-loop topology, modular class or interval membership. If you selected the wrong L2 option, L3 still uses the corrected L2 conclusion. The REVIEW screen gives that corrected conclusion so you can update memory before L3 appears.
L3 is therefore not a memory test of your own mistakes. It is a synthesis task over corrected semantic questions. During L3, the frame no longer shows an auxiliary summary strip of the previous META² questions; the user must rely on the memory chain and select among the four visible statements. Current templates use public labels such as “target number”, “how the previous answers were calculated”, “left/right position” and “difference between the two META answers”, while hidden implementation tags and opaque internal task-type comparisons are suppressed.
L3 now uses its own readability curriculum. The earliest Level 3 questions use four options, but all four answer one clear question such as “Which previous META² question had matching META answers?” or “Which previous META² question was about even or odd META answers?” Later L3 phases introduce target-number questions, property questions and question-topic summaries. Bindings such as “the question about target numbers had the larger answer difference” and two-feature synthesis grids are held back until the user has enough L2 and L3 evidence. The highest L3 phases are treated as extreme capstone probes. They may ask the user to match each previous choice question with what it asked about and how far apart its two calculation answers were; to decide whether a conclusion would remain correct after swapping first and second calculation answers; or to compare two previous choice questions by two explicitly stated dimensions. These probes remain sparse even after unlock and include a short hint when a distance group or counterfactual rule is introduced.
Auto uses the previous layer as evidence for the next layer. L1 depends on L0 readiness; L2 depends on L1 readiness; L3 depends on L2 readiness. The thresholds are intentionally a little earlier for Preview and still strict for Active, so progress feels continuous without making advanced prompts flood a block before the prerequisite layer is stable.
Preview states are intentionally conservative. They are not rewards and not diagnosis; they are adaptive probes. If the user performs well, the level can become Active. If performance is weak, the level remains rare while the app reinforces prerequisite layers. The current build uses gradual Auto decay: once META, META² or META³ has appeared, it can pass through reduced-presence retention and decaying Preview before locking again, so isolated errors or rolling-window noise do not make levels flicker.
Correct answers usually advance quickly. Errors enter REVIEW. The review screen shows the correct answer, or for four-option tasks, your selected option against the correct one. For the rare extreme L3 probes, REVIEW also repeats the short reading rule when that rule is needed to understand the item. REVIEW no longer advances on a fixed timer: corrective feedback stays on screen until you continue manually.
On touch devices, tap anywhere during REVIEW to continue. On keyboard, press Space or Enter to continue, or Escape to leave to the menu. This does not affect scoring; it only lets each user decide when the correction has been read or whether to stop the block after an error.
Numerical Sense: the app adapts exposure time by value and representation. Fast correct responses shorten future exposure; errors increase it. Very fast responses (<300 ms) reduce exposure more than merely correct responses. For cell mastery, the strict baseline remains demanding, but a cell can earn limited extra tolerance from repeated fast evidence. Errors degrade this tolerance gradually. Global level-up is now separated from local representation frontiers: the range can open earlier, while weaker representations continue to train lower values and receive only probabilistic previews above their current frontier.
Relational mode: L0 uses a protected global exposure time rather than separate exposure times for each value. This avoids making the display too fast before new relational categories are learnable. Novel categories receive temporary exposure floors.
Auto integration: in Relational Reasoning, Auto computes a current ceiling from L0/L1/L2 readiness. Higher layers are not simply on or off: they can be Locked, Preview, Reduced or Active. Preview gives low-frequency probes just below the full unlock threshold. If a layer loses support after appearing, it now decays through reduced-presence retention and decaying Preview before locking.
Relational frontiers: L0 categories, L1 operations, L2 conclusion types and L3 synthesis dimensions are staged by difficulty. The highest internal stages now include two-step L1 rule composition, structural divisibility and four-value ordinal-pattern summaries. The system does not permanently exclude harder families, but it gives easier families more probability until the evidence supports the next stage.
Sampling balance: the generator balances YES and NO structurally. It first chooses the intended truth value, then builds a pair that satisfies it. Categories are filtered by value range, weighted by recent accuracy and speed, and softly adjusted by relational-frame weaknesses such as coordination, opposition, comparison, reversal, role-binding, conditionality, metric reasoning and threshold reasoning. v6.4.21 keeps the closed telemetry loops from 6.4.3: repeated value confusions can bias Mode-A contrast practice, semantic-scope weaknesses can bias wording variants, META²/META³ diagnostics can bias category choice, and Mental Line subtype statistics can guide the sparse extension preview.
Anti-concentration safeguards: adaptive weights are compressed with a temperature transform and capped relative to the median weight so one category cannot become a probability black hole. A recent-window concentration monitor checks whether one family or category is dominating L0; if dominance is excessive, it now applies a temporary corrective bias against that family or category and reports the correction in the browser console.
Beyond the family-by-family adaptation described above, this build adds an explicit budget for how many cognitive layers a single trial may stack at once. The system identifies fifteen orthogonal axes — visual transformation (single or dual), 3D-cube view, conditional rule, quantifier scope, semantic-scope wording, cross-pair binding, role binding, mental-line movement, structured state, source/provenance, sequence/trajectory, two-step composition and choice readout — and assigns each axis a load cost (1 or 2). Levels declare a maximum total load: 1 at level 0, climbing to 7 at level 8.
The point of the budget is not to add more layers indiscriminately but to make sure layers are combined rather than always presented in isolation. At higher levels the sampler preferentially generates trials that combine, for example, a representation transformation with a conditional rule and a non-canonical wording, so that the composition itself becomes the demand. Composition usage is reported in the Training Log as a frequency distribution of axis combinations actually exercised, not as a target the user has to meet.
The budget is enforced at trial generation: a candidate trial whose load would exceed the level cap is rejected and resampled. This keeps the practical maximum below the theoretical ceiling and protects against accidental overload during early exposure to a new layer.
At the end of a block, the summary shows accuracy, average RT, fast responses and best streak. It does not expose adaptive weakness labels or executive-control diagnostics.
Mode A summaries report visible progress even when no level-up occurs: strengthened cells, newly mastered cells and newly global-ready cells. Mode D summaries use a compact relational momentum card: relation types practiced, stable relation types, trained layers and the next Auto/tier target. Detailed adaptive focus, executive-control and integration-efficiency diagnostics are kept in the Training Log.
The final summary is not a diagnostic report. Detailed family, frame and layer breakdowns are kept in the Training Log so the block-complete screen stays readable.
The progress indicator is now a pre-block orientation cue. At the start of each block, before the first stimulus appears, it shows labelled progress toward the next range or relational tier without exposing the full adaptive focus. In v6.4.21 it adds one compact cause label — for example, coverage, top-value formats, accuracy, RT or stability — so the user can see what is currently limiting progress without opening the Training Log. In Relational Reasoning, the tier bar is now a staged readiness index derived from the same within-individual adaptive-baseline evidence as the actual level-up rule. It can advance as coverage, real trials and performance evidence accumulate, but it never shows “Next tier ready” unless the real level-up gate is satisfied. During this readable intro, the game frame and three small lights move through a red/amber/green sequence, like a restrained F1-style start signal. Each color has a very short local sound cue when sound feedback is enabled. This tells the user to wait, register the upcoming block and prepare. Once the first trial begins, the progress bar disappears so it does not add visual or semantic noise during stimulus encoding. The bar does not reappear during REVIEW; correction screens are reserved for the answer, the task explanation and the manual continue hint.
Sound feedback is continuous and stratified. Correct responses receive a very short confirmation cue; fast responses receive a brighter cue; very short automatic responses receive a small mastery cue; errors receive a brief low cue. Larger achievements still have distinct sounds: level-ups, streak milestones, milestone unlocks and strong block completion. Adaptive level-down events also produce a calm, brief two-tone cue (descending perfect fourth) so the recalibration is registered audibly without negative connotation. Auto meta integration transitions remain silent, but the first Manipulation and first Relational-preview handoffs use a short level-style briefing card so the user is warned before the response rule changes. The pre-block red/amber/green semaphore has three brief preparation cues. Transition cues are lightly serialized, so clicking Continue before a new block cannot mask the red semaphore cue. On level-up, the response confirmation now plays first and the level fanfare follows with a small offset, so the user still hears the per-trial confirmation on the deciding response. Streak sounds are subtly graded by streak length: every five correct responses can add a capped higher harmonic, so longer streaks feel different without becoming intrusive. Particle bursts on correct and fast responses scale in parallel with the streak audio, so longer streaks produce a visibly fuller burst.
Continue Training and Take a Break also use different short cues. Continue has a small celebratory lift; Take a Break uses a calmer disconnect sound. Pressing Escape during an active block now uses this same calmer break cue before opening the menu, so deliberate exits from play are sonically consistent. All sounds are generated locally through the Web Audio API; no external audio files are loaded.
Use Sound feedback in the menu to switch sounds on or off. The setting is saved with progress export/import. The block summary, collapsible Training Log, Progress History chart and Milestones panel use lightweight visual structure to make progress easier to read without turning the app into a diagnostic dashboard. The Training Log is hidden by default and can be opened when detailed adaptation information is useful. Qualitative end-of-block comments, milestone text, detailed next-range status and adaptive diagnostics are kept in the Training Log; the summary card itself stays focused on metrics, compact progress momentum and the dedicated milestone popup.
The menu now includes a collapsed Progress History panel. It stores only compact block summaries, not trial-by-trial data. The chart can show accuracy by block, average response time, and the reached value range in Numerical Sense or active/reached meta-level in Relational Reasoning. It also marks metric-specific personal-best points with a restrained ring and adds a compact trend line below the caption when recent block history exists. The panel now opens and closes with a short, non-intrusive animation so the menu feels less abrupt.
The RT view is mode-aware. In Numerical Sense it shows average block RT. In Relational Reasoning it can draw separate lines for L0, L1, L2 and L3 when those levels were present in saved blocks. The chart now includes restrained reference lines and can show the exact saved block under the pointer or touch position.
The menu also includes optional Milestones. They are checked only after a block ends and are stored in the local profile. They do not change scoring, level-up criteria, exposure time, sampling weights or Auto progression. They are displayed as a compact icon grid, with short-, medium- and long-term goals such as block volume, perfect blocks, long automatic-response totals, representation choices, range milestones, reaching Meta/Meta²/Meta³, sustained accuracy, value×representation cell mastery, L1/L2/L3 breadth, frame bursts, update chains, Mental Line, 12-clock cyclic operations, imagined-abacus operations, semantic-scope prompts and memory-interference lures. v6.5.0 adds three further milestone families: time and adherence (session count, accumulated active practice time, calendar-day streak), visuospatial transformations (first transform solved, breadth across distinct representation×transformation cells, first dual-side transform, first 3D-cube view) and L1 extension families (witness, coherence, counterfactual, chained proportion — first solve and ten-clean per family) plus a compositional-load milestone that fires when a five-axes trial is solved correctly. Locked milestones show partial progress where it is meaningful; every declared milestone has a progress builder, and the nearest targets are repeated at the top of the panel so it acts as a short- and medium-term target list rather than only as a trophy shelf. Newly unlocked milestones appear as a dedicated popup in the block summary, with each item entering on a small staggered delay so multi-unlock blocks register one item at a time rather than as a single bag of news. The popup is tappable: clicking it (or pressing M from the block summary) opens the menu with the Milestones panel expanded. Achievements unlocked within the last 24 hours pulse with a subtle gold glow in the panel so it is easy to see what was just earned when reopening the app; after 24 hours they settle into the standard earned style. Like Progress History, this panel opens and closes with a brief animation.
This appendix is closed by default because it is meant for audit, debugging and advanced users. The main guide above explains how to play; this section documents the core catalogue and operating parameters. The in-code catalogue is the authoritative source for the full expanded set.
| Representation | Allowed value range | Interpretation |
|---|---|---|
| dots | 1–20 | Ungrouped dot field. Answer the total dot count. |
| cluster | 1–15 | Separated color-coded chunks built from non-circular geometric marks. Answer the total mark count, not the number of groups. |
| ten / frame | 1–30 | Ten-frame / twenty-frame / thirty-frame grid depending on value; filled cells use varied structured patterns rather than a fixed row-by-row prefix. |
| dice | 1–24 | Up to four dice; each die contributes 1–6 pips. |
| domino | 1–12 | A single domino tile; each half ranges 0–6. (Capped at one tile in v6.5.22n for legibility in relational mode.) |
| tally | 1–20+ | Tally marks grouped by fives; no explicit upper filter in allowedReps. |
| finger | 1–10 | One or two hands; raised fingers encode the value. |
| abacus | 1–20+ | Upper pink/red beads = 5 each; lower green beads = 1 each; no explicit upper filter in allowedReps. |
| card | 1–39 | Up to three playing cards; A=1, J=11, Q=12, K=13. |
| cube | 1–9 | Perspective 3D 3×3 cube grid; supports viewpoint transformations from back/left/right in advanced trials. |
| coins | 1–20+ | Copper = 1, silver = 2, gold = 5; denominations encoded by color, mild size, reeded rim and gold inner ring. |
| roman | 1–20+ | Roman numerals; symbolic, not a pure visual quantity. |
| clock | 1–12 | Clock hand points to the value; numerals are not printed on the clock. |
| grid | 1–40 | Values 1–9 use an explicit 3×3 square container; higher values use larger structured grids. Filled cells encode value; empty cells support complement prompts. |
| digit | 1–20+ | Arabic numeral; use this to isolate relational logic from visual decoding. |
For representations without an explicit upper filter, the practical upper value is normally bounded by the current training level and by the global value ladder. Mode A can progress through 4, 5, 6, 7, 8, 9, 10, 12, 15, 18 and 20. Relational Reasoning caps each displayed side at 12, because two simultaneous values already create a natural combined range up to 24 before META operations add further load.
| Parameter | Value | Meaning |
|---|---|---|
| prepMs | 250 ms | Preparation phase before the stimulus. |
| maskMs | 150 ms | Procedural mask after the stimulus. |
| review advance | Manual | Error REVIEW remains visible until tap/click, Space or Enter. |
| reviewSkipGuardMs | 100 ms | Minimum delay before touch/keyboard can close REVIEW, preventing the submit input from immediately dismissing the correction. |
| autoMs | 250 ms | Short automatic transition delay. |
| blockIntroMs | 1650 ms | Pre-block orientation phase before the first stimulus. The frame turns red, then amber, then green during this phase, and each color can trigger one short local audio cue when sound is enabled. Start cues are serialized behind transition sounds such as Continue so they remain audible. |
| Auto meta transition | Pre-memory onboarding | The first META / META² / META³ transition pauses on an onboarding card before the prerequisite MEM chain begins. L1 is explained before the two L0 pairs that feed it, L2 before the two L1 answers, and L3 before the two META² episodes. Later tier maintenance is logged in the Training Log without repeated cards. |
| relational input onset | Immediate after mask for L0; immediate on question render for L1–L3 | No unscored reading phase. The question, answer controls and RT start together. Input remains blocked during PREP, FLASH and MASK. |
| memory cue | 🧠¹/²/³ MEM 1/2 → 2/2 | Memory cue shown only after the app has already scheduled a future meta question. On mobile it is centered near the top of the frame; on larger screens it remains compact. It gives one brief onset ping when the retained item changes, then stays still. The superscript marks the target meta layer and the fraction marks progress through the memory chain. Marked errors produce a semantic repair card rather than cancelling the chain. |
| startETByMode.A | 750 ms | Initial exposure time in Numerical Sense. |
| startETByMode.D | 1330 ms | Initial exposure time in Relational Reasoning. |
| minETByMode.A | 70 ms | Exposure floor for Numerical Sense. |
| minETByMode.D | 600 ms | Protected exposure floor for L0 relational encoding. |
| speedStepByMode.A | 34 ms | Exposure reduction after strong Numerical Sense performance; this is just above two 60 Hz frames. |
| Numerical Sense mastery threshold | Adaptive: base minET + 2 speed steps = 138 ms; max functional tolerance minET + 6 speed steps = 274 ms | A value×representation cell counts as mastered if its ET reaches the strict base threshold, or if repeated fast evidence earns limited extra tolerance. Slow correct answers add a small amount of confidence; errors reduce it gradually. |
| Numerical Sense level-up rule | Dynamic: ≥45% first tier / ≥60% early / ≥75% middle / ≥85% late globally-ready active cells + every active value covered + current top value ready in a small core of 2–3 representations | Unlocks the next value tier as a motivational global range increase. Local per-representation frontiers still decide which formats may show the new value normally; lagging formats continue lower values and receive only staged previews. |
| Mode D level-change rule | Within-individual baseline | Relational tiers move against the user’s own per-level history: plateau + upper-quartile accuracy + typical-or-better RT can step up; lower-quartile accuracy or upper-quartile RT after the buffer can step down. The pre-block tier progress bar uses these same gates. Mode A is unchanged. |
| speedStepByMode.D | 5 ms | Very gradual exposure reduction for relational mode; Mode D adapts primarily through relational complexity, not exposure compression. |
| penalty | Mode A: 170 ms, damped by cell evidence; Mode D: 30 ms | Exposure increase after errors. Mode A remains cell-adaptive; Mode D uses a small global correction so relational encoding stays in a comfortable 600–1330 ms band. |
| dNovelCatETFloors | 930 ms first 4 trials; 770 ms first 8 trials | Temporary exposure floor for newly introduced L0 categories. |
| RT targets | 300 / 600 / 900 / 1800 / 3800 / 6500 / 9000 ms | Numerical Sense automatic, Numerical Sense fast, fast L0, good L0, good L1, good L2, good L3. |
| Control / state | Meaning |
|---|---|
| Numpad / digits | Number entry for Numerical Sense and L1. The on-screen 0 key is hidden in early Numerical Sense ranges and restored when the active range or task can require it. |
| YES / NO | Touch buttons, Y/N keys, or left/right arrows for L0. |
| 1–4 | Four-option tasks show all answers in the frame. Use touch buttons 1–4 or number keys 1–4; A–D remain aliases for compatibility. |
| Escape | Pause during gameplay with the Take-a-Break cue; closes the guide first if the guide is open; from the block summary, triggers Take a Break. |
| Tap during REVIEW | Continues after the correction has been read; scoring is unchanged. |
| Start Block / Space | Applies menu changes and starts a new block. Space works from the menu when the guide is closed. |
| Block Size Auto | Recommended for Relational Reasoning. Uses 20 trials by default and 30 when Meta³ is active or in preview, so upper meta levels are not accidentally blocked by 10-trial blocks. If the nominal limit is reached while a MEM chain is active or due, the block drains that pending chain before showing the summary. |
| Resume Block | Continues the paused block without applying menu changes. |
| Reset | Resets only the active user profile. Press and hold for 1.5 seconds to arm the button; it then shows Confirm?, and a separate click/tap completes the reset with a white flash. Releasing early cancels. |
| Training Log | Collapsed detailed menu log with current settings, recent performance, adaptive status, pending cells/categories, historical/milestone counts and the last block note. Qualitative comments are kept here instead of occupying the block-complete report. |
| Progress History | Collapsed menu chart showing saved block summaries for accuracy, RT and level/range. It opens/closes with a brief animation and is informational only. |
| Milestones | Collapsed menu collection of optional achievement markers. Newly unlocked milestones also appear as a block-summary popup. The panel never affects progression or trial selection. |
| Meta sequence | Trigger | Meaning |
|---|---|---|
| L0 | Every base relational trial | Two quantities flash; a delayed relation is answered YES/NO. |
| L1 | After 2 L0 trials | Combines both retained L0 pairs into a numeric answer, or in advanced choice-format entries into a categorical pair/source decision. |
| L2 | After 2 L1 trials | Selects the only valid semantic conclusion about the two L1 answers. |
| L3 | After 2 L2 trials | Synthesizes two previous META² questions. |
| Full Meta³ cycle | 15 trials | L0, L0, L1 repeated twice → L2; repeated twice → L3. A nominal block can extend beyond its selected size only to discharge already-marked memory chains. |
Each category has several wording variants. The table lists the internal ID, the first canonical wording, its unlock tier and its functional family.
Loading…
L1 appears after two L0 trials and normally computes one numeric answer from the four retained values. Advanced choice-format entries instead produce a categorical pair/source answer and are restricted to source-safe META² follow-up. The minLevel column is the current value-level gate used by the generator.
Loading…
L2 compares two previous L1 answers. Pure categories use direct logical predicates; threshold categories compute a calibrated threshold before rendering the question. Early L2 is staged by prior META² exposure: order/equality first, then parity, then simple threshold buckets, then the full two-feature and source-bound catalogue.
Loading…
L3 is generated dynamically from two prior META² questions. It does not use a fixed question bank; it builds four-option summaries from the features below and then inserts controlled distractors.
| Family | Feature ID / pattern | Meaning |
|---|---|---|
| question fact | same_winner | Whether the larger META answer appeared in the same position in both META² questions. |
| question fact | same_gap_parity | Whether the two answer differences had the same even/odd type. |
| question fact | episode1_larger_gap | Whether the first META² question had the larger answer difference. |
| structure | same_family | Whether both META² questions asked the same kind of visible question. |
| structure | same_threshold_use | Whether both matched in target-number questions. |
| structure | same_source_use | Whether both matched in asking how the previous answers were calculated. |
| bound synthesis | family_gap_bind | Binds visible question kind to larger/smaller answer difference. |
| bound synthesis | threshold_gap_bind | Binds target-number questions to larger/smaller answer difference. |
| bound synthesis | source_gap_bind | Binds calculation-source use to larger/smaller answer difference. |
| bound synthesis | relation_gap_bind | Binds what the META² question was about to larger/smaller answer difference. |
| Tag | Meaning |
|---|---|
| coordination | same/equal/matching relations. |
| opposition | not/different/exactly-one relations. |
| comparison | greater/less/larger/smaller relations. |
| reversal | same relation expressed from the opposite side. |
| role_binding | relations bound to larger, smaller, closer or selected values. |
| conditional | choose a pair by one rule, then compute another property. |
| source_relation | relations involving representation, calculation type or provenance. |
| metric_relation | difference, distance, even/odd, prime/square/divisibility properties. |
| threshold_relation | relations involving target numbers such as >N or ≤N. |
| sequence_relation | pair-to-pair change relations, such as how a side, anchor-distance or interval relation changed from pair 1 to pair 2. |
These tags are training metadata. Recent errors and slow correct answers can increase the sampling weight of categories carrying the weaker tags. v6.3.5.40 also derives executive-control tags from these frames: rule_switch, inhibition, raw_vs_transformed, side_role_conflict, quantifier_conflict, anchor_size_conflict, set_vs_magnitude, source_readout, temporal_reconfiguration, rule_identification and dual_binding. Structural-divisibility and ordinal-pattern tasks are treated as high-load set/magnitude or source-structure conflicts rather than as clinical diagnostics. The app stores accuracy and RT by executive tag, conflict type, readout type, selected distractor type, integration load, plan step and bridge between steps. These diagnostics are reported only in the Training Log.
| Layer | Active condition | Preview condition | Presence in Auto |
|---|---|---|---|
| L1 / META | Recent L0: ≥16 trials, ≥80% accuracy, RT ≤2100 ms, ≥2 families; a fast-track gate can pass earlier after very strong performance. | Recent L0: ≥10 trials, ≥72% accuracy, RT ≤1.35×L0 target, ≥2 families. | Preview ≈18%; Active ranges from reduced presence to full presence depending on L0 stability. |
| L2 / META² | L1: ≥8 trials, ≥76% accuracy, RT ≤4700 ms, ≥2 operation families; the same fast-track principle applies to strongly fluent layers. | L1: ≥4 trials, ≥66% accuracy, RT ≤1.38×L1 target. | Preview ≈12%; Active is dosed down if L1 is not strongly stable. |
| L3 / META³ | L2: ≥4 trials, ≥72% accuracy, RT ≤7600 ms, ≥2 families. | L2: ≥2 trials, ≥62% accuracy, RT ≤1.42×L2 target, ≥1 family. | Preview ≈8%; Active remains lower-density than L1/L2 because full Meta³ cycles are long. |
The precise numbers are training heuristics, not diagnostic thresholds. They exist to regulate progression and prevent both premature overload and indefinite L0 purgatory. v6.4.21 additionally treats early Auto recognition and transform phases as tutorial handoffs rather than complete mastery requirements.
| Area | Stored / affected fields | Meaning |
|---|---|---|
| localStorage key | eucalculia_v6_2_27 | Current browser storage key, retained for compatibility. Current saved payload uses schemaVersion 22 and keeps the storage key for compatibility. |
| Saved configuration | mode, reps, metaLevel, metaAuto, autoMetaStable, blockSize, blockSizeAuto, soundEnabled, hapticEnabled | Restores the active setup. In Relational Reasoning, metaAuto stores whether the integration ceiling is automatic or manually capped; autoMetaStable keeps the gradual-decay buffer for Auto levels; blockSizeAuto stores the mode-aware block-size setting. |
| Saved progression | levelByMode, etByMode, etByModeAndValue, adaptiveBaseline | Keeps adaptive levels, exposure times and the Mode-D within-individual baseline windows. The baseline stores capped L0 trial windows per relational level, with synthetic cold-start entries marked separately from real trials. |
| Saved performance | stats, statsByMode, posnerCatStats, frameStats, linguisticStats, executiveStats, integrationStats, compact productionMonitor, meta stats | Preserves long-term adaptation and menu diagnostics. The silent executive-repair queue and previous-rule-frame marker are intentionally not persisted or restored because both are transient block-local control state. |
| Saved gamification layer | progressHistory, achievements, firstPlayedVersion, lastPlayedVersion, playedVersionCounts | Stores compact block summaries for the menu chart and optional milestone unlocks. Redundant configuration fields are not kept in this layer; no trial-by-trial history is stored here. |
| Capped dictionaries | confusion, problemValues | Pruned to prevent unbounded localStorage growth. Confusion writes are restricted to Numerical Sense (Mode A), because relational numeric answers are derived calculation outputs and must not contaminate the Mode-A value sampler that consumes this signal. |
| Runtime recovery | watchdogEvents, runtimeDebug, trialTelemetryBuffer | Records unsafe flow transitions, panic-menu usage and recent compact trial context for diagnostic export. Long human pauses in INPUT are not panic conditions. Technical sampler diagnostics and recent trial buffers are exported through Diagnostics rather than treated as user progress. |
| Reset behavior | active profile slot only | Clears adaptive state, progress history, milestones and training time only for the active profile, then reloads from defaults. Profiles 1–3 remain isolated. |