# Chess Teaching Assistant - ChessPrism ## Project Overview ChessPrism is a native macOS application designed to enhance chess learning and analysis by providing real-time visual feedback and move suggestions during online chess games. The application integrates with chess.com through screen capture and provides advanced analysis using Stockfish and custom machine learning models. ### Key Features - Real-time board position recognition - Visual move suggestions and threat analysis - Integrated Stockfish engine analysis - Customizable visual overlays - Multi-monitor support - Keyboard shortcut controls ## Current Development Status ### Completed Features - Project architecture setup (MVVM pattern) - Core screenshot capture functionality - Basic board recognition using Vision framework - Stockfish ARM64 integration - Metal-based rendering pipeline foundation ### In Progress - Advanced piece recognition model training - Visual overlay system implementation - Move suggestion system integration - Performance optimization for real-time analysis ### Upcoming Features - User settings and customization - Advanced threat visualization - Analytics and feedback system - TestFlight distribution setup ## Technical Architecture ### Core Components 1. **Screenshot Capture Module** - Uses VisionKit and Screen Capture API - Handles multi-monitor scenarios - Implements keyboard shortcuts 2. **Board Position Analysis** - Vision framework + CoreML for computer vision - Real-time FEN conversion - Position validation system 3. **Stockfish Integration** - ARM64 optimized binary - Async/await interface - Position evaluation caching 4. **Visual Overlay System** - Metal-accelerated rendering - Transparent NSWindow implementation - Multiple visualization types ### Technology Stack - **Languages**: Swift, Metal Shading Language - **Frameworks**: SwiftUI, Vision, CoreML, Metal - **Dependencies**: Stockfish 16, Create ML - **Tools**: Xcode 16.2, Swift 6.0.3 ## Development Environment Setup ### System Requirements - **Hardware**: Apple Silicon (M1/M2/M3) - **Memory**: 16GB+ RAM - **GPU**: Metal 2+ support - **OS**: macOS Ventura 13.0+ ### Installation 1. Clone the repository: ```bash git clone https://gitea.example.com/chessprism.git cd chessprism ``` 2. Install dependencies: ```bash brew install swiftlint ``` 3. Open project in Xcode: ```bash open ChessPrism/ChessPrism.xcodeproj ``` 4. Configure development settings: - Enable Metal API validation - Set up code signing - Configure entitlements ## Contribution Guidelines ### Code Style - Follow Swift style guide - Use SwiftLint for code formatting - Maintain 80%+ test coverage ### Branching Strategy 1. `main` - Stable production-ready code 2. `develop` - Current development branch 3. `feature/*` - Feature development branches 4. `hotfix/*` - Critical bug fixes ### Pull Request Process 1. Create a feature branch from `develop` 2. Implement changes with tests 3. Open PR with detailed description 4. Address code review feedback 5. Merge after CI passes and approval ## Key Milestones ### Completed - [x] Project setup and architecture - [x] Basic screenshot capture - [x] Stockfish integration ### Current - [ ] Advanced board recognition - [ ] Visual overlay system - [ ] Performance optimization ### Upcoming - [ ] User settings implementation - [ ] Analytics integration - [ ] TestFlight distribution ## Documentation - [Technical Specifications](docs/architecture/overview.md) - [API Reference](docs/api/) - [Development Guide](docs/development/getting-started.md) ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## Contact For project inquiries, please contact: - Project Lead: [Your Name] - Email: [your.email@example.com] - Gitea: [Your Gitea Profile]