Crate chess_vector_engine

Source
Expand description

§Chess Vector Engine

A fully open source, production-ready Rust chess engine that revolutionizes position evaluation by combining vector-based pattern recognition with advanced tactical search and NNUE neural network evaluation.

§Features

  • 🎯 Hybrid Evaluation: Combines pattern recognition with advanced tactical search
  • ⚡ Advanced Tactical Search: 14+ ply search with PVS, check extensions, and sophisticated pruning
  • 🧠 NNUE Integration: Efficiently Updatable Neural Networks for fast position evaluation
  • 🚀 GPU Acceleration: CUDA/Metal/CPU with automatic device detection and 10-100x speedup potential
  • 📐 Vector Position Encoding: Convert chess positions to 1024-dimensional vectors
  • 🎮 Full UCI Compliance: Complete chess engine with pondering, Multi-PV, and all standard UCI features
  • ⚡ Production Optimizations: 7 major performance optimizations for 2-5x overall improvement

§Quick Start

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

// Create a new chess engine
let mut engine = ChessVectorEngine::new(1024);

// Add some positions with evaluations
let board = Board::default();
engine.add_position(&board, 0.0);

// Find similar positions
let similar = engine.find_similar_positions(&board, 5);
println!("Found {} similar positions", similar.len());

// Get position evaluation
if let Some(eval) = engine.evaluate_position(&board) {
    println!("Position evaluation: {:.2}", eval);
}

§Open Source Features

All features are included in the open source release (MIT/Apache-2.0):

  • Advanced UCI Engine: Complete chess engine with pondering, Multi-PV, and all standard features
  • Professional Tactical Search: 14+ ply search with check extensions and sophisticated pruning
  • GPU Acceleration: CUDA/Metal/CPU support with automatic device detection
  • NNUE Networks: Neural network evaluation with incremental updates
  • Ultra-fast Loading: Memory-mapped files and optimized data structures
  • Vector Analysis: High-dimensional position encoding and similarity search
  • Opening Book: 50+ professional chess openings and variations

Re-exports§

pub use errors::ChessEngineError;
pub use auto_discovery::AutoDiscovery;
pub use auto_discovery::FormatPriority;
pub use auto_discovery::TrainingFile;
pub use gpu_acceleration::DeviceType;
pub use gpu_acceleration::GPUAccelerator;
pub use lichess_loader::LichessLoader;
pub use lsh::LSH;
pub use nnue::BlendStrategy;
pub use nnue::EvalStats;
pub use nnue::HybridEvaluator;
pub use nnue::NNUEConfig;
pub use nnue::NNUE;
pub use opening_book::OpeningBook;
pub use opening_book::OpeningBookStats;
pub use opening_book::OpeningEntry;
pub use persistence::Database;
pub use persistence::LSHTableData;
pub use persistence::PositionData;
pub use position_encoder::PositionEncoder;
pub use similarity_search::SimilaritySearch;
pub use strategic_evaluator::AttackingPattern;
pub use strategic_evaluator::PlanGoal;
pub use strategic_evaluator::PlanUrgency;
pub use strategic_evaluator::PositionalPlan;
pub use strategic_evaluator::StrategicConfig;
pub use strategic_evaluator::StrategicEvaluation;
pub use strategic_evaluator::StrategicEvaluator;
pub use strategic_evaluator_lazy::LazyStrategicEvaluator;
pub use strategic_evaluator_lazy::EnhancedStrategicEvaluation;
pub use strategic_evaluator_lazy::StrategicThemeAnalysis;
pub use streaming_loader::StreamingLoader;
pub use core_evaluation::CoreEvaluator;
pub use core_evaluation::CoreEvaluationResult;
pub use core_evaluation::SimilarityInsights;
pub use core_evaluation::StrategicInsights;
pub use core_evaluation::SimilarityEngine;
pub use core_evaluation::StrategicAnalyzer;
pub use core_evaluation::EvaluationBlender as CoreEvaluationBlender;
pub use tactical_search::TacticalConfig;
pub use tactical_search::TacticalResult;
pub use tactical_search::TacticalSearch;
pub use training::AdvancedSelfLearningSystem;
pub use training::EngineEvaluator;
pub use training::GameExtractor;
pub use training::LearningProgress;
pub use training::LearningStats;
pub use training::SelfPlayConfig;
pub use training::SelfPlayTrainer;
pub use training::TacticalPuzzle;
pub use training::TacticalPuzzleParser;
pub use training::TacticalTrainingData;
pub use training::TrainingData;
pub use training::TrainingDataset;
pub use ultra_fast_loader::LoadingStats;
pub use ultra_fast_loader::UltraFastLoader;
pub use evaluation_calibration::CalibrationConfig;
pub use evaluation_calibration::CalibratedEvaluator;
pub use evaluation_calibration::EvaluationBreakdown;
pub use evaluation_calibration::EvaluationComponent;
pub use evaluation_calibration::MaterialEvaluator;
pub use evaluation_calibration::PieceValues;
pub use evaluation_calibration::PositionalEvaluator;
pub use stockfish_testing::StockfishTester;
pub use stockfish_testing::StockfishTestConfig;
pub use stockfish_testing::EvaluationComparison;
pub use stockfish_testing::EvaluationCategory;
pub use stockfish_testing::TestSuiteResults;
pub use stockfish_testing::TestStatistics;
pub use stockfish_testing::StockfishTestError;
pub use hybrid_evaluation::AdaptiveLearningStats;
pub use hybrid_evaluation::AnalysisDepth;
pub use hybrid_evaluation::BlendWeights;
pub use hybrid_evaluation::ComplexityAnalysisResult;
pub use hybrid_evaluation::ComplexityAnalyzer;
pub use hybrid_evaluation::ComplexityCategory;
pub use hybrid_evaluation::ComplexityFactor;
pub use hybrid_evaluation::ComplexityWeights;
pub use hybrid_evaluation::ConfidenceScorer;
pub use hybrid_evaluation::EvaluationBlender;
pub use hybrid_evaluation::EvaluationComponent as HybridEvaluationComponent;
pub use hybrid_evaluation::EvaluationRecommendations;
pub use hybrid_evaluation::GamePhase as HybridGamePhase;
pub use hybrid_evaluation::GamePhaseAnalysisResult;
pub use hybrid_evaluation::GamePhaseDetector;
pub use hybrid_evaluation::HybridEvaluationEngine;
pub use hybrid_evaluation::HybridEvaluationResult;
pub use hybrid_evaluation::HybridEvaluationStats;
pub use hybrid_evaluation::NNUEEvaluator;
pub use hybrid_evaluation::PatternEvaluator;
pub use hybrid_evaluation::PhaseAdaptationRecommendations;
pub use hybrid_evaluation::PhaseAdaptationSettings;
pub use hybrid_evaluation::PhaseDetectionWeights;
pub use hybrid_evaluation::PhaseIndicator;
pub use hybrid_evaluation::PhaseTransition;
pub use hybrid_evaluation::StrategicEvaluator as HybridStrategicEvaluator;
pub use hybrid_evaluation::TacticalEvaluator;
pub use pattern_recognition::AdvancedPatternRecognizer;
pub use pattern_recognition::EndgamePatternAnalysis;
pub use pattern_recognition::KingSafetyAnalysis;
pub use pattern_recognition::LearnedPatternMatch;
pub use pattern_recognition::PatternAnalysisResult;
pub use pattern_recognition::PatternRecognitionStats;
pub use pattern_recognition::PatternWeights;
pub use pattern_recognition::PawnStructureAnalysis;
pub use pattern_recognition::PieceCoordinationAnalysis;
pub use pattern_recognition::TacticalPatternAnalysis;
pub use strategic_initiative::ColorInitiativeAnalysis;
pub use strategic_initiative::InitiativeAnalyzer;
pub use strategic_initiative::InitiativeFactors;
pub use strategic_initiative::PlanOutcome;
pub use strategic_initiative::PositionalPressure;
pub use strategic_initiative::PositionalPressureEvaluator;
pub use strategic_initiative::StrategicInitiativeEvaluator;
pub use strategic_initiative::StrategicInitiativeResult;
pub use strategic_initiative::StrategicInitiativeStats;
pub use strategic_initiative::StrategicPlan;
pub use strategic_initiative::StrategicPlanGenerator;
pub use strategic_initiative::StrategicPlanType;
pub use strategic_initiative::TimePressure;
pub use strategic_initiative::TimePressureAnalyzer;
pub use uci::run_uci_engine;
pub use uci::run_uci_engine_with_config;
pub use uci::UCIConfig;
pub use uci::UCIEngine;
pub use motif_extractor::MotifExtractor;
pub use strategic_motifs::CoordinationPattern;
pub use strategic_motifs::EndgamePattern;
pub use strategic_motifs::GamePhase;
pub use strategic_motifs::InitiativePattern;
pub use strategic_motifs::MotifMatch;
pub use strategic_motifs::MotifType;
pub use strategic_motifs::OpeningPattern;
pub use strategic_motifs::PawnPattern;
pub use strategic_motifs::SafetyPattern;
pub use strategic_motifs::StrategicContext;
pub use strategic_motifs::StrategicDatabase;
pub use strategic_motifs::StrategicMotif;

Modules§

auto_discovery
core_evaluation
errors
evaluation_calibration
gpu_acceleration
hybrid_evaluation
lichess_loader
lsh
motif_extractor
Strategic Motif Extraction System
nnue
opening_book
pattern_recognition
persistence
position_encoder
similarity_search
stockfish_testing
strategic_evaluator
strategic_evaluator_lazy
Enhanced strategic evaluator with lazy-loaded motif database
strategic_initiative
strategic_motifs
Strategic Motif Recognition System
streaming_loader
tactical_search
training
uci
ultra_fast_loader
utils
Utility modules for the chess engine

Macros§

add_context
config_error
invalid_position
memory_limit_exceeded
profile_scope
Macro for easy scoped timing
resource_exhausted
search_error
training_error
validation_error
vector_error

Structs§

ChessVectorEngine
Chess Vector Engine - Fully open source, production-ready chess engine with hybrid evaluation
HybridConfig
Hybrid evaluation configuration
MaterialBalance
Material balance for tactical awareness
MoveRecommendation
Move recommendation data
TrainingStats
Training statistics for the engine