How madushan996/ceylondemon works
CeylonDemon is a UCI chess engine used through a chess GUI. The main workflow is for a GUI to send position and search commands; the engine maintains the board, searches candidate moves, evaluates positions with the dual-frame Resonance network, and reports a move. The graph also shows the network’s accumulator and feature-processing layer. Source excerpts are partial, so uncertain protocol-output and internal search links are omitted.
Main entry points: main.cpp UCI Engine · search.h Search and Time · position.h Position and Moves · resonance_acc.h Feature Accumulators
Components 14
UCI and Position
- UCI Engine
src/main.cpp - Position and Moves
src/position.h
Move Search
- Search and Time
src/search.h - Search Tuning
src/tune.h
Resonance Evaluation
- Evaluation Entry
src/eval.h - Resonance Network
src/resonance_net.h - Network Loading
src/resonance_net.h - Embedded Weights
src/resonance_embedded.h - Resonance v12 Weights
networks/ceylondemon-3.1-resonance-v12-400m-full-scratch-e8.aa - Feature Accumulators
src/resonance_acc.h - Feature Encoding
src/resonance_features.h
Chess and Compute
- SIMD Kernels
src/resonance_simd.h - Chess Primitives
src/types.h
Other components
- Chess GUI
Connections 16
- Chess GUI → UCI Engine: sends UCI commands
- UCI Engine → Position and Moves: sets position
- UCI Engine → Search and Time: starts search
- UCI Engine → Network Loading: loads weights
- Search and Time → Position and Moves: generates and applies moves
- Search and Time → Evaluation Entry: scores positions
- Search and Time → Search Tuning: uses parameters
- Position and Moves → Feature Accumulators: updates features
- Position and Moves → Chess Primitives: uses chess primitives
- Evaluation Entry → Resonance Network: evaluates position
- Resonance Network → Feature Accumulators: reads accumulators
- Resonance Network → SIMD Kernels: runs kernels
- Feature Accumulators → Feature Encoding: indexes pieces
- Feature Accumulators → SIMD Kernels: updates vectors
- Network Loading → Embedded Weights: reads embedded data
- Embedded Weights → Resonance v12 Weights: embeds weights