ChessPrism/README.md
2025-01-06 10:56:49 -06:00

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]