GuojieEOtrainer / EOCross + EOXcross This is an independent website. It does not modify or replace crystalcuber.com. Based on crystalcuber/crystalcube: https://github.com/crystalcuber/crystalcube Upstream commit: b621dff9426ea8e954ca4362d29813510acfc864 License: Mozilla Public License 2.0 (see LICENSE.txt) Adaptations, 2026-10-24–2026-10-25: - Retained the upstream facelet layout, face-turn permutations and EO convention. - Added six bottom colors, EOCross and four-slot EOXcross goals, with EO evaluated on the F/B axis after the displayed whole-cube reorientation. - Replaced the original masked-facelet search with compact pattern databases and iterative-deepening search for practical EOXcross use. - EOCross solves the four bottom cross edges without a corner or F2L pair constraint. - Added Chinese input, validation, cancellation and step-by-step 3D replay. - Added twenty-move random practice scrambles with no consecutive same-axis turns. - Added complete offline caching of the page, solver and bundled cube model, with versioned, integrity-checked resources and uninterrupted current replay during updates. - Added the selected solution below the cube, with clickable moves and a start-state control synchronized with playback and retained during ranking updates. - Added default automatic depth-ordered search across white/yellow bottoms (and four slots for EOXcross), with verified solutions streamed immediately as they are found. - Added shortest / ergonomic ranking, with a larger bounded candidate pool, equivalent opposite-face move orders and a two-handed heuristic score. - Added per-move finger/wrist planning and recovery costs to ergonomic ranking, while retaining immediate first solutions and stable replay during background candidate updates. - Added state-verified step explanations, paired-piece detection away from the home slot, subsequent restoration notes, and independent teaching highlights. - Added target-piece emphasis and current EO-misoriented edge outlines by physical piece identity, with color-name lists and independent display toggles. - Added a physical-identity F2L-only EO scope, allowing 0/2/4 misoriented last-layer edge pieces or an exact count, with scope-aware step explanations. The editable source of this deployment is served directly as: index.html, styles.css, theme.js, app.js, cube.js, solver-worker.js, ergonomics.js, explanation.js, offline.js, sw.js, icon.svg. The application and solver source are distributed under MPL-2.0. No original crystalcube logo is included. 3D model: huazhechen/cuber (MIT, Copyright (c) 2018 huazhechen). https://github.com/huazhechen/cuber Version: 4e8e5b4aa6611b5bc8d208efc037923b61264155 The model geometry, sticker materials, colors and native turn animation are reused from the version matching https://2mf8.cn/huazhechen/?mode=director. The camera and viewport adapter integrate it into this independent site. Three.js 0.130.1 (MIT) is bundled locally; no runtime CDN is required. Third-party license files accompany the model bundle. The solver searches for ten distinct verified solutions for the selected target, ordered by HTM or ergonomic experience score. The latter samples at most 32 base paths per target/depth and 32 equivalent orders per path, up to two moves beyond the shortest found solution. Scores are not measured execution times. Search is bounded at 20 seconds and 16 HTM; reaching a bound retains any verified partial results and is reported as an incomplete search, not a claim that the position is unsolvable. An already satisfied goal returns only the zero-move solution for that target. Automatic search continues with other unmet targets. Its 2 EOCross or 8 EOXcross targets share the same total search budget.