chess-vector-engine 0.2.0

Production-ready open-core chess engine with hybrid vector-based position analysis, advanced tactical search, and NNUE neural network evaluation
Documentation
# Chess Vector Engine

A **production-ready Rust chess engine** that revolutionizes position evaluation by combining vector-based pattern recognition with advanced tactical search and sophisticated endgame knowledge. Encode positions as high-dimensional vectors, search through millions of patterns, and leverage neural networks for cutting-edge chess AI with **2000+ ELO strength**.

[![Tests](https://img.shields.io/badge/tests-123%20passing-brightgreen)](#testing)
[![Rust](https://img.shields.io/badge/rust-1.81+-orange)](https://www.rust-lang.org/)
[![ELO](https://img.shields.io/badge/strength-2000%2B%20ELO-red)](#performance)
[![UCI](https://img.shields.io/badge/UCI-compliant-green)](#uci-engine)
[![Crates.io](https://img.shields.io/crates/v/chess-vector-engine)](https://crates.io/crates/chess-vector-engine)

## ๐Ÿš€ Features

### ๐Ÿง  **Hybrid Intelligence**
- **๐ŸŽฏ Hybrid Evaluation** - Combines vector pattern recognition with professional-strength tactical search
- **โšก Advanced Tactical Search** - 12+ ply search with PVS, sophisticated pruning, and tournament-level optimization
- **๐Ÿ” Pattern Confidence Assessment** - Intelligently decides when to use patterns vs tactical calculation
- **๐Ÿ“Š Professional Strength** - Achieves 2000+ ELO through advanced evaluation and search techniques
- **๐ŸŽฎ Full UCI Compliance** - Complete chess engine with pondering, Multi-PV, and all standard UCI features

### ๐Ÿ† **Tournament-Level Evaluation**
- **โ™Ÿ๏ธ Advanced Pawn Structure** - Sophisticated evaluation of doubled, isolated, passed, backward, and connected pawns
- **๐Ÿ‘‘ Professional King Safety** - 7-component safety evaluation including castling, pawn shields, and piece attacks
- **๐ŸŽฏ Game Phase Detection** - Dynamic opening/middlegame/endgame evaluation with smooth transitions
- **๐Ÿ“ˆ Mobility Analysis** - Comprehensive piece activity evaluation with tactical emphasis
- **๐ŸŽช Piece-Square Tables** - Phase-interpolated positional understanding for all pieces
- **๐Ÿ Endgame Tablebase Knowledge** - Production-ready patterns for K+P, basic mates, and theoretical endgames

### ๐Ÿ“š **Comprehensive Opening Knowledge**
- **๐Ÿ“– Expanded Opening Book** - 50+ professional chess openings and variations with ECO codes
- **โšก Instant Lookup** - Memory-efficient hash table for sub-millisecond opening access
- **๐ŸŽฏ Strength Ratings** - Each opening variation includes relative strength assessment
- **๐Ÿ”„ Major Systems** - Complete coverage of Sicilian, Ruy Lopez, French, Caro-Kann, King's Indian, and more

### ๐Ÿ”ฌ **Advanced Search Technology**
- **โš”๏ธ Principal Variation Search (PVS)** - Advanced search algorithm with 20-40% speedup over alpha-beta
- **โœ‚๏ธ Sophisticated Pruning** - Futility, razoring, and extended futility pruning for 2-5x search speedup
- **๐Ÿง  Enhanced LMR** - Late Move Reductions with depth and move-based reduction formulas
- **๐ŸŽฏ Professional Move Ordering** - Hash moves, MVV-LVA captures, killer moves, and history heuristic
- **โšก Multi-threading** - Parallel search with configurable thread count for 2-4x performance gain
- **โฑ๏ธ Tournament Time Management** - Sophisticated time allocation with panic mode and extensions

### ๐Ÿ’ช **Production Optimization**
- **๐Ÿš€ Multiple Configurations** - Fast (blitz), Default (standard), Strong (correspondence), Analysis (deep)
- **๐Ÿ”ง Fine-Tuned Parameters** - Professionally optimized search depths, pruning margins, and evaluation weights
- **๐Ÿ“Š Advanced Transposition** - 64MB+ hash tables with replacement strategies
- **๐ŸŽ›๏ธ Configurable Strength** - Adjustable search depth from 8 to 20+ ply for different time controls

### ๐Ÿ”ฌ **Vector-Based Innovation**
- **๐Ÿ“ High-Dimensional Encoding** - Convert chess positions to 1024-dimensional vectors
- **๐Ÿ” Pattern Recognition** - GPU-accelerated similarity search through position databases
- **๐Ÿง  Neural Network Integration** - NNUE evaluation with incremental updates
- **๐Ÿค– Memory Optimization** - 8:1 to 32:1 compression ratios with 95%+ accuracy retention

## ๐Ÿ“ฆ Installation

### Cargo (Recommended)

```bash
cargo install chess-vector-engine

# Or add to your Cargo.toml
[dependencies]
chess-vector-engine = "0.2"
```

### From Source

```bash
git clone https://github.com/chessvector/chess-vector-engine
cd chess-vector-engine
cargo build --release
```

## ๐ŸŽฏ Quick Start

### Basic Engine Usage

```rust
use chess_vector_engine::ChessVectorEngine;
use chess::Board;
use std::str::FromStr;

// Create the engine with professional strength
let mut engine = ChessVectorEngine::new(1024);

// Enable advanced features
engine.enable_opening_book();

// Analyze positions with 2000+ ELO strength
let board = Board::from_str("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1").unwrap();
let evaluation = engine.evaluate_position(&board);
let similar_positions = engine.find_similar_positions(&board, 5);

println!("Position evaluation: {:?}", evaluation);
```

### Professional Tournament Configuration

```rust
use chess_vector_engine::{ChessVectorEngine, TacticalConfig};

// Create engine with tournament-level configuration
let mut engine = ChessVectorEngine::new(1024);

// Configure for maximum strength (correspondence chess)
let strong_config = TacticalConfig::strong();
engine.enable_tactical_search(strong_config);

// Or configure for blitz play
let fast_config = TacticalConfig::fast();
engine.enable_tactical_search(fast_config);

// Load opening book for professional play
engine.enable_opening_book();

// Advanced evaluation with all 2000+ ELO features
let evaluation = engine.evaluate_position(&board);
```

### Configuration Options

```rust
// Blitz configuration (8 ply, 1 second, 200k nodes)
let blitz_config = TacticalConfig::fast();

// Standard configuration (12 ply, 5 seconds, 1M nodes)  
let standard_config = TacticalConfig::default();

// Correspondence configuration (16 ply, 30 seconds, 5M nodes)
let strong_config = TacticalConfig::strong();

// Analysis configuration (20 ply, 60 seconds, 10M nodes)
let analysis_config = TacticalConfig::analysis();
```

### UCI Engine

```bash
# Run as UCI engine for chess GUIs
cargo run --bin uci_engine

# Or use installed binary
chess-vector-engine-uci

# Compatible with Arena, ChessBase, Scid, and other UCI interfaces
```

## ๐Ÿ”ง Command Line Tools

The engine includes several demonstration and utility programs:

```bash
# Basic engine demonstration with 2000+ ELO features
cargo run --bin demo

# UCI engine for chess GUIs
cargo run --bin uci_engine

# Position analysis tool with advanced evaluation
cargo run --bin analyze "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"

# Performance benchmarking and optimization testing
cargo run --bin benchmark

# Feature system demonstration (open-core model)
cargo run --bin feature_demo
```

## ๐Ÿ† Architecture

### Core Components

1. **PositionEncoder** - Converts chess positions to 1024-dimensional vectors with strategic features
2. **SimilaritySearch** - GPU-accelerated k-NN search through position databases  
3. **TacticalSearch** - Professional-strength minimax with PVS, advanced pruning, and tournament optimization
4. **OpeningBook** - Comprehensive database of 50+ professional openings with instant lookup
5. **EndgamePatterns** - Production-ready tablebase knowledge for theoretical and practical endgames
6. **EvaluationEngine** - Advanced positional evaluation with pawn structure, king safety, and mobility
7. **UCIEngine** - Full UCI protocol implementation with pondering and Multi-PV analysis

### Professional Evaluation Pipeline

```
Chess Position โ†’ PositionEncoder โ†’ Vector (1024d)
                     โ†“
    โ”Œโ”€ Opening Book (50+ systems) โ”€โ”
    โ”‚                              โ†“
    โ”œโ”€ Pattern Recognition โ”€โ”€โ†’ Confidence Assessment
    โ”‚   (similarity search)        โ†“
    โ”‚                       โ”Œโ”€ High Confidence โ†’ Pattern Evaluation
    โ”‚                       โ””โ”€ Low Confidence โ†’ Tactical Search (12+ ply)
    โ”‚                              โ†“
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’ Professional Evaluation โ”€โ”€โ†’ Final Score
                            โ†“
                    Advanced Components:
                    โ€ข Pawn Structure (6 patterns)
                    โ€ข King Safety (7 components)  
                    โ€ข Piece Mobility & Coordination
                    โ€ข Endgame Tablebase Knowledge
                    โ€ข Game Phase Detection
```

## ๐Ÿ“Š Performance Characteristics

### Chess Strength
- **ELO Rating**: 2000+ tournament strength
- **Tactical Depth**: 12+ ply standard search with deep quiescence
- **Search Speed**: 1000-2800+ nodes/ms depending on configuration
- **Opening Knowledge**: 50+ professional systems with ECO classification
- **Endgame Technique**: Comprehensive tablebase patterns and theoretical knowledge

### Technical Performance
- **Memory Usage**: 150-200MB (75% optimized from original)
- **Loading Speed**: Ultra-fast startup with binary format priority
- **Multi-threading**: 2-4x speedup with parallel search
- **GPU Acceleration**: 10-100x speedup for large similarity searches
- **Cross-platform**: Ubuntu, Windows, macOS with MSRV Rust 1.81+

### Configuration Performance

| Configuration | Depth | Time   | Nodes | Use Case |
|---------------|-------|--------|-------|----------|
| Fast          | 8 ply | 1s     | 200k  | Blitz    |
| Default       | 12 ply| 5s     | 1M    | Standard |
| Strong        | 16 ply| 30s    | 5M    | Correspondence |
| Analysis      | 20 ply| 60s    | 10M   | Deep Analysis |

## ๐Ÿ› ๏ธ Development

### Building from Source

```bash
# Clone repository
git clone https://github.com/chessvector/chess-vector-engine
cd chess-vector-engine

# Build with all optimizations
cargo build --release

# Run comprehensive test suite (123 tests)
cargo test

# Run performance benchmarks
cargo run --bin benchmark

# Format and lint code
cargo fmt
cargo clippy
```

### Key Dependencies

- `chess` (3.2) - Chess game logic and position representation
- `ndarray` (0.16) - Numerical arrays for vector operations  
- `candle-core/candle-nn` (0.9) - Neural network framework for NNUE
- `rayon` (1.10) - Data parallelism for multi-threading
- `serde` (1.0) - Serialization for training data and persistence

### Minimum Supported Rust Version (MSRV)

This project requires **Rust 1.81+** due to advanced machine learning dependencies. Use:

```bash
rustup update stable
cargo update
```

## ๐Ÿงช Testing

The engine includes comprehensive test coverage across all components:

```bash
# Run all tests (123 passing)
cargo test

# Run specific component tests
cargo test position_encoder
cargo test similarity_search  
cargo test tactical_search
cargo test opening_book
cargo test endgame_patterns

# Run with detailed output
cargo test -- --nocapture
```

**Current test coverage**: **123 tests passing** across all modules with 100% success rate.

## ๐Ÿ“ˆ Version History & Roadmap

### Version 0.2.0 (Current) - "Tournament Strength"
โœ… **Professional chess evaluation achieving 2000+ ELO**
- Advanced pawn structure evaluation (6 major patterns)
- Professional king safety assessment (7 components)  
- Comprehensive mobility analysis with tactical emphasis
- Production-ready endgame tablebase knowledge (8 systems)
- Expanded opening book (50+ professional systems)
- Optimized search parameters for tournament play
- Multiple strength configurations (fast/standard/strong/analysis)

### Version 0.1.x - "Foundation"
- Core vector-based position encoding
- Basic similarity search and pattern recognition
- Fundamental tactical search with alpha-beta
- NNUE neural network integration
- UCI engine implementation
- GPU acceleration framework

### Version 0.3.0 (Planned) - "Advanced Analytics"
- Enhanced neural network architectures
- Advanced endgame tablebase integration
- Distributed training infrastructure
- Professional time management
- Tournament book management

## ๐Ÿค Contributing

We welcome contributions to the open source core! The engine uses an open-core model where basic features are open source and advanced features require licensing.

### Open Source Contributions
- Core evaluation improvements
- Search algorithm optimizations
- Bug fixes and performance enhancements
- Documentation and examples
- Test coverage expansion

Please see [CONTRIBUTING.md](.github/CONTRIBUTING.md) for guidelines.

## ๐Ÿ“„ License

This project is licensed under **MIT OR Apache-2.0** at your option.

The open source version includes:
- Core vector-based position analysis
- Basic tactical search (6+ ply)
- Opening book access
- UCI engine functionality
- Standard evaluation features

See [LICENSE](LICENSE) for full details.

## ๐Ÿ†˜ Support

- **GitHub Issues** - Bug reports and feature requests
- **Documentation** - Comprehensive API documentation at [docs.rs]https://docs.rs/chess-vector-engine
- **Examples** - Extensive code examples and demonstrations
- **Community** - Active development and chess programming discussions

## ๐Ÿ† Acknowledgments

Built with excellent open source libraries:
- [chess]https://crates.io/crates/chess - Chess game logic and position representation
- [ndarray]https://crates.io/crates/ndarray - Numerical computing and linear algebra
- [candle]https://github.com/huggingface/candle - Neural network framework from HuggingFace
- [rayon]https://crates.io/crates/rayon - Data parallelism and multi-threading
- [tokio]https://crates.io/crates/tokio - Async runtime for concurrent operations

Special thanks to the chess programming community and contributors to:
- **Stockfish** - Reference for advanced search algorithms and evaluation techniques
- **Leela Chess Zero** - Inspiration for neural network integration in chess engines  
- **Chess Programming Wiki** - Comprehensive resource for chess engine development
- **Computer Chess Forums** - Community knowledge and testing methodologies

---

**Ready to experience 2000+ ELO chess AI?** Start with `cargo install chess-vector-engine` and explore the power of hybrid vector-based analysis combined with tournament-strength evaluation!