← /codedata 2026-05-30

solvers_

The staged cube-solver fleet: native analyzers (feeding the scramble distribution + per-comp precompute) and browser WASM (live solve on the gen page) — coverage, throughput, memory.

7native analyzers
~34GBpruning tables
4/7fully covered
0.9–390/sthroughput span

Backfill coverage

target 1,289,663
stdcomplete5 stages
1,289,663 / 1,289,663100%
eopartial5 stages
1,240,119 / 1,289,66396.2%
pseudocomplete4 stages
1,289,663 / 1,289,663100%
pseudo_paircomplete4 stages
1,289,663 / 1,289,663100%
paircomplete4 stages
1,293,570 / 1,289,663100%
f2leoseed4 stages
252 / 1,289,6630.02%
pseudo_f2leoseed4 stages
252 / 1,289,6630.02%

Throughput

16-core, full huge-table mode (log scale)
pseudo390 /s

slot-decoupled + strong pruning, fastest

pair200 /s

opt-in (off the default run), ~200/s once tables warm — fully backfilled

std115 /s

strongest joint-table pruning, full 5 stages

pseudo_f2leo81 /s

pseudo big-table battery (C4E + corner2/3 + edge2/3) max + free-edge EO, 4 stages no xxxxcross

pseudo_pair47 /s

corner/edge slot coupling, heavier search

f2leo31 /s

joint big-table pruning (same huge tables as std) + free-edge EO gating, 4 stages no xxxxcross

eo0.9 /s

xxxxcross full enumeration ~13M nodes/case — the long pole

Memory & tables

31.8GB physical RAM on the build host
huge
std / eo / pseudo / pseudo_pair / pair / f2leo / pseudo_f2leo

GB-scale joint/battery prune tables (CEE/CCE/C4C5C6 / pair huge / E0E1E2) via mmap. eo peaks ~24GB working set but only ~0.1GB private — read-only shared mmap. f2leo reuses std pair huge tables (~10GB each); pseudo_f2leo uses the pseudo battery (corner3 862MB + edge3 1GB), each adding only leaf free-edge EO gating.

parallelism

Each analyzer runs rayon par_iter over a whole chunk across all 16 cores; tables shared read-only via mmap. Running variants concurrently loads distinct GB-scale tables → blows past 32GB, so they run serially.

Tables per analyzer

source-verified · full mode · mmap

Expand to see the move tables (mt_*, state transitions) and prune tables (pt_*, admissible heuristics) each native analyzer mmaps; sizes are the real on-disk file bytes.

stdhuge22.9 GB
move tables mt_*
mt_edge237 KB
mt_edge2 KB
mt_corn2 KB
mt_edge417 MB
mt_edge62.9 GB
mt_corn235 KB
prune tables pt_*
pt_cross136 KB
pt_cross_C4E052 MB
pt_cross_C4C5E0E110.0 GB
pt_cross_C4C6E0E210.0 GB
eohuge21.5 GB
move tables mt_*
mt_edge237 KB
mt_eo12144 KB
mt_edge417 MB
mt_corn2 KB
mt_edge2 KB
mt_edge62.9 GB
mt_corn235 KB
mt_ep4835 KB
mt_eo12_alt144 KB
prune tables pt_*
pt_cross136 KB
pt_ep4eo1212 MB
pt_cross_C4E052 MB
pt_cross_C4E0E11.2 GB
pt_cross_C4E0E21.2 GB
pt_cross_C4E0E31.2 GB
pt_cross_C4C5E01.2 GB
pt_cross_C4C6E01.2 GB
pt_cross_C4C7E01.2 GB
pt_cross_C4C5C61.2 GB
pt_cross_C4C5E0E110.0 GB
pt_cross_C4C6E0E2 †10.0 GB

† diagonal prune table (10.2GB), optional, excluded from the total above; set CUBE_EO_NO_DIAG=1 to skip (weaker pruning).

pseudohuge2.1 GB
move tables mt_*
mt_edge237 KB
mt_edge417 MB
mt_corn2 KB
mt_edge2 KB
mt_corn235 KB
mt_edge3743 KB
mt_corn3638 KB
prune tables pt_*
pt_pscross136 KB
pt_pscross_C4E052 MB
pt_pscross_C4E152 MB
pt_pscross_C4E252 MB
pt_pscross_C4E352 MB
pt_pscross_E0E148 MB
pt_pscross_E0E248 MB
pt_pscross_C4C546 MB
pt_pscross_C4C646 MB
pt_pscross_E0E1E2957 MB
pt_pscross_C4C5C6822 MB
pseudo_pairhuge2.2 GB
move tables mt_*
mt_edge2 KB
mt_corn2 KB
mt_edge417 MB
mt_edge237 KB
mt_edge3743 KB
mt_corn235 KB
mt_corn3638 KB
prune tables pt_*
pt_pscross_C4‥C72.2 MB ×4
pt_pscross_ins_C4‥C7_diff0‥32.2 MB ×16
pt_pspair_C4‥C7_E0‥E3304 B ×16
pt_pscross_C4E0‥C4E352 MB ×4
pt_pscross_E0E148 MB
pt_pscross_E0E248 MB
pt_pscross_C4C546 MB
pt_pscross_C4C646 MB
pt_pscross_E0E1E2957 MB
pt_pscross_C4C5C6822 MB
pairhuge12.9 GB
move tables mt_*
mt_edge417 MB
mt_corn2 KB
mt_edge2 KB
mt_edge62.9 GB
mt_corn235 KB
prune tables pt_*
pt_cross_ins_C42.2 MB
pt_pair_C4E0304 B
pt_cross_C4E052 MB
pt_cross_C4C5E0E110.0 GB
pt_cross_C4C6E0E2 †10.0 GB

† diagonal prune table (10.2GB), optional, excluded from the total above; set CUBE_PAIR_NO_DIAG=1 to skip (weaker pruning).

f2leohuge22.9 GB
move tables mt_*
mt_edge237 KB
mt_edge2 KB
mt_corn2 KB
mt_edge417 MB
mt_edge62.9 GB
mt_corn235 KB
prune tables pt_*
pt_cross136 KB
pt_cross_C4E052 MB
pt_cross_C4C5E0E110.0 GB
pt_cross_C4C6E0E210.0 GB

cross via pt_cross; xcross via pt_cross_C4E0; xxcross/xxxcross reuse std pair huge tables + leaf EO gating on free F2L edges

pseudo_f2leohuge2.1 GB
move tables mt_*
mt_edge237 KB
mt_edge417 MB
mt_corn2 KB
mt_edge2 KB
mt_corn235 KB
mt_edge3743 KB
mt_corn3638 KB
prune tables pt_*
pt_pscross_C4E0‥C4E352 MB ×4
pt_pscross_E0E148 MB
pt_pscross_E0E248 MB
pt_pscross_C4C546 MB
pt_pscross_C4C646 MB
pt_pscross_E0E1E2957 MB
pt_pscross_C4C5C6822 MB

combo heuristic = max(per-pair C4E, corner2/3 group, edge2/3 group) + leaf EO gating on free edges; plus pscross prune (~272KB) built in-RAM for the cross stage

Browser WASM

live on gen page, per-worker small tables (mobile 2 / desktop 4)
std cross-steppt_cross_C4E0 (52MB/worker)cross instant
pairVariantSolverWasmall 4 stages ~0.04s
eoVariantSolverWasmdeep stages tens of seconds
pseudoVariantSolverWasm~5s
pseudo_pairVariantSolverWasmdeep stages tens of seconds
f2leo / pseudo_f2leosmall tables ~40MB/workercross ~2.8s

Browsers cannot hold GB-scale huge tables, so deep stages (xxxxcross) are orders of magnitude slower than native; no SharedArrayBuffer means workers do not share tables. Common comps are served instantly from comp_steps precompute — live solve is only a fallback for uncovered comps.

Coverage & date are live from distribution.json (refreshes only when the pipeline is run by hand — no schedule); throughput/memory are measured constants from 2026-05-30./code