§ 1 — The technology
More than a move overlay.
The difficult component of browser chess software is reliable board understanding: reconstructing a valid position from a page you do not control, without knowing in advance how it was rendered. ChessVision Engine treats this as a layered engineering problem rather than a single selector.
Authoritative sources — first priority
Direct FEN / state attributes
Authoritative board-state attributes are read directly where a page exposes them, avoiding inference entirely.
Known DOM structures
Proven readers for well-known site families, including Chess.com-style square classes and Chessground/Lichess-style geometry and orientation.
Move-list reconstruction
When exact metadata is required, positions are rebuilt from a bounded move-list replay rather than guessed.
Site-agnostic fallback layer — added in v1.6.0
Generic 8×8 board discovery
Coordinate metadata (data-square, data-coordinate, file/rank attributes), semantic grids and chess-labelled custom containers.
Semantic square & piece metadata
ARIA labels, titles, alt text, data-piece attributes and piece-type/colour tokens such as white-knight or bP.
Unicode & image-name recognition
Unicode chess glyphs and common image/SVG piece filenames are interpreted into structured piece placement.
Geometry-based square mapping
Where board orientation can be established, piece positions are mapped by geometry as a bounded fallback.
Visual / pixel fallback
A lazy template-matching path exists for boards where no DOM representation can be extracted.
Explicit side-to-move inference
Turn metadata is recovered from the board or its local wrapper — and when it cannot be trusted, no turn is invented.
Termination
Fail-safe refusal
If the board state cannot be established reliably, ChessVision Engine does not fabricate a position. It stops and reports why.
§ 2 — Architecture
Recognition, validation, analysis — deliberately separated.
Detection, policy and analysis are separate concerns in the codebase. Board understanding never leaks directly into the engine interface, and the engine is never handed a position that has not passed state validation.
Browser interface
Any Chromium-rendered page containing a chessboard, on demand. No <all_urls> content script; the reader is injected into the explicitly activated tab only.
Board discovery
Known-structure readers run first; the generic fallback layer takes over only when they cannot reconstruct a board.
Piece & square recognition
Pieces are read from classes, metadata, Unicode, image names or geometry — always bounded, never document-wide.
Position reconstruction
Square-wise readings are assembled into a full FEN board description.
State / turn validation
Position legality is verified; the side to move is recovered explicitly or treated as unknown.
Compliance gate
Recognised active competitive-game contexts suppress engine execution before any search begins.
Local analysis engine
Stockfish 18 Lite (WASM) in an offscreen document, single thread, bounded memory and lifecycle.
Ranked analysis output
Best move, a representative mid-tier move and the lowest-ranked legal move — plus mate-threat warnings, rendered as an overlay.
§ 3 — Analysis engine
Local Stockfish, engineered for bounded memory.
The bundled Stockfish 18 Lite engine runs as local WebAssembly inside an offscreen document. Core board recognition and analysis require no account, no API key, no remote LLM and no hosted analysis service — nothing leaves the machine.
stop → ucinewgame → MultiPV reset → Clear Hash → position startpos → isready. No search state bleeds between positions.
§ 4 — Built to fail safely
Unreliable board understanding is worse than no analysis.
A reconstructed position that silently substitutes an error for a fact produces confident nonsense. Uncertainty terminates the pipeline instead of flowing into the engine.
Unknown means unknown
- No fabricated positions. If a board cannot be established reliably, analysis does not start.
- No silent assumptions. When the side to move cannot be determined reliably, White is not assumed by default.
- Transient state is discarded. Detection candidates and analysis state do not survive a scan or a session.
Detection never drives the engine
- Detection and analysis are separated. The engine is only ever handed a validated state.
- Competitive contexts gate execution. Recognised active competitive-game contexts can prevent the engine from running at all.
- Fail-closed posture. The architecture is designed to fail closed in recognised competitive contexts and when critical board-state information cannot be established reliably.
§ 5 — Fair-play architecture
Intended for legitimate analysis — and architected accordingly.
ChessVision Engine is built for chess analysis, training, puzzles, completed-game review, accessibility, broadcasting and development use. It is not positioned as a competitive-game assistant, and the sale build contains safeguards designed to suppress engine recommendations when recognised active competitive-game contexts are detected.
These safeguards are a design commitment, not a universal guarantee: the architecture is designed to fail closed in recognised competitive contexts and when critical board-state information cannot be established reliably. No claim is made of absolute regulatory or platform compliance, and third-party sites evolve independently of this software.
§ 6 — Potential applications
Where the recognition architecture can go next.
Chess training
Recognition and analysis embedded into educational workflows — from lesson material to interactive study.
Post-game analysis
Reconstruct positions displayed in browser interfaces for completed-game review and study.
Accessibility
Convert visually rendered board state into structured, machine-readable information for assistive tooling.
Broadcasting
Extract board state from browser-based displays for analysis and presentation workflows.
Developer tooling
Use the recognition architecture as the foundation for APIs, extensions or a reusable SDK.
Chess platforms
License or integrate browser position-recognition technology rather than rebuilding it internally.
§ 7 — Acquisition
What is being acquired.
The package is structured so a buyer receives a complete, transferable software asset — subject to the eventual transaction agreement.
Source code is not published here. The complete package is supplied exclusively through the acquisition and due-diligence process, on request.
§ 8 — Licensing
Proprietary project code, clearly bounded by third-party licences.
ChessVision Engine contains proprietary project code as well as third-party and open-source components. The bundled Stockfish chess engine is GPLv3 software and is not represented as exclusive proprietary intellectual property — it is included under its own licence, and that licence is shipped with the package.
The buyer receives the transferable ChessVision Engine proprietary assets and must continue to comply with applicable third-party licences, including the Stockfish GPLv3 terms when redistributing the bundled engine. Full licence texts are included in the release package.
§ 9 — Validation
What was actually tested.
The v1.6.0 release was validated with automated syntax, manifest, fixture and live-engine checks. Only tests that were performed are listed — no numbers are invented and no guarantees are implied beyond them.
wK/bP-style codes, data-square/coordinate/file-rank attributes, white/black turn metadata, unknown-turn handling, generic board discovery, geometry placement, open Shadow DOM, 8×8 table boards.
e2-e4, automatically re-analysed, stopped without further work and resumed correctly.
score mate 1.
Automated harness and package validation is distinct from guaranteeing compatibility with every third-party webpage or future browser version. The v1.5.0 baseline is the user-tested live-browser build; v1.6.0 preserved those files byte-for-byte and exercised the new universal module in real Chromium DOM fixtures.
§ 10 — Engineering principles
How the codebase is built.
Layered
Independent recognition techniques complement rather than replace one another.
Local
Core engine analysis executes locally — no cloud inference in the analysis path.
Conservative
Unknown state is treated as unknown rather than guessed.
Maintainable
Detection, policy and analysis concerns are separated.
Transferable
Architecture, documentation and project assets are structured for acquisition.
§ 11 — Enquiries