138 lines
3.8 KiB
Markdown
138 lines
3.8 KiB
Markdown
# 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]
|