Thesis CM-Chessboard-2: optimización del componente CM-Chesboard para Chessmindai
Loading...
Date
2026-08
Journal Title
Journal ISSN
Volume Title
Program
Ingeniería Civil Informática
Departament
Campus
Campus Casa Central Valparaíso
Abstract
ChessMindAI es una plataforma de enseñanza de ajedrez que utiliza cm-chessboard como componente central de tablero. La versión original de la librería presentaba tres limitaciones: ausencia de tipos estáticos, un sistema de extensiones limitado para las necesidades de ChessMindAI y un motor de animaciones serializado que acumulaba latencia bajo navegación rápida. Las alternativas existentes (Chessground, chessboard.js) no eran viables por licencia o mantenimiento. Este trabajo documenta cm-chessboard-2, el fork que sustituye al componente original. Migra a TypeScript preservando la API pública, amplía el sistema de extensiones, rediseña el motor de animaciones con cancelación cooperativa basada en tokens y composite layers, optimiza el rendering SVG bajo redimensionamiento, reduce la presión sobre el garbage collector durante el drag y agrega una extensión que anima transiciones entre posiciones arbitrarias resolviendo el emparejamiento óptimo de piezas con el algoritmo Húngaro. Para validar el resultado se construyó un harness de benchmark reproducible sobre 200 iteraciones por suite en Google Chrome de escritorio; el estudio de percepción con usuarios se propone como trabajo futuro. Sobre las ocho suites comparables, cm-chessboard-2 resulta entre 1,2 y 14,7 veces más rápido que el componente original en las operaciones intensivas, con un speedup de 10,89× en el escenario de carga sostenida.
ChessMindAI is a chess teaching platform that uses cm-chessboard as the core board component. The original library had three limitations: lack of static types, an extension system that fell short of ChessMindAI’s needs, and a serialised animation engine that accumulated latency under fast navigation. Existing alternatives (Chessground, chessboard.js) were not viable due to licence or maintenance. This work documents cm-Chessboard-2, the fork that replaces the original component. It migrates to TypeScript preserving the public API, expands the extension system, rewrites the animation engine with token-based cooperative cancellation and composite layers, optimises the SVG rendering pipeline under resizing, reduces garbage-collector pressure during drag, and adds an extension that animates transitions between arbitrary positions by solving the optimal piece matching with the Hungarian algorithm. To validate the result, a reproducible benchmark harness was built over 200 iterations per suite on desktop Google Chrome; user perception studies are left as future work. Across the eight comparable suites, cm-chessboard-2 is between 1.2 and 14.7 times faster than the original component on intensive operations, with a 10.89× speedup on the sustained--load scenario.
ChessMindAI is a chess teaching platform that uses cm-chessboard as the core board component. The original library had three limitations: lack of static types, an extension system that fell short of ChessMindAI’s needs, and a serialised animation engine that accumulated latency under fast navigation. Existing alternatives (Chessground, chessboard.js) were not viable due to licence or maintenance. This work documents cm-Chessboard-2, the fork that replaces the original component. It migrates to TypeScript preserving the public API, expands the extension system, rewrites the animation engine with token-based cooperative cancellation and composite layers, optimises the SVG rendering pipeline under resizing, reduces garbage-collector pressure during drag, and adds an extension that animates transitions between arbitrary positions by solving the optimal piece matching with the Hungarian algorithm. To validate the result, a reproducible benchmark harness was built over 200 iterations per suite on desktop Google Chrome; user perception studies are left as future work. Across the eight comparable suites, cm-chessboard-2 is between 1.2 and 14.7 times faster than the original component on intensive operations, with a 10.89× speedup on the sustained--load scenario.
Description
Keywords
Motor de animaciones, Benchmark, Lenguaje de programación TypeScript
