ChessPrism/cline_docs/techContext.md

4.6 KiB

Technical Context

Development Environment

  • macOS development platform
  • Xcode IDE
  • SwiftUI for user interface
  • Swift 5.x language features

Core Technologies

ScreenCaptureKit

  • System framework for screen capture
  • Requires user permissions
  • Supports window/display filtering
  • Real-time frame capture capabilities

Vision Framework

  • Used for board and coordinate detection
  • Key components:
    • VNRecognizeTextRequest: Chess coordinate detection
    • VNDetectRectanglesRequest: Board boundary detection
  • Configuration:
    • Text recognition level: accurate
    • Language correction: disabled
    • Rectangle aspect ratio: 0.3-0.5 (for taller rectangles)
    • Minimum size: 0.4
    • Maximum observations: 1

Coordinate Systems

  1. Vision Framework

    • Origin: Bottom-left (0,0)
    • Y-axis: Upward positive
    • Normalized coordinates (0-1)
    • Used in: VNRectangleObservation, VNTextObservation
  2. NSImage/CGImage

    • Origin: Bottom-left (0,0)
    • Y-axis: Upward positive
    • Pixel coordinates
    • Used in: Image cropping, processing
  3. SwiftUI

    • Origin: Top-left (0,0)
    • Y-axis: Downward positive
    • Point coordinates
    • Used in: View layout, rendering
  4. Transformations

    • Vision → Screen: Flip Y coordinate
    • Screen → Image: Scale to pixel coordinates
    • Image → View: SwiftUI handles automatically

SwiftUI

  • Modern declarative UI framework
  • Handles view lifecycle
  • State management via @Published properties
  • Environmental object propagation

Technical Constraints

Board Detection

  1. Pattern Recognition

    • Detect taller rectangles (0.3-0.5 aspect ratio)
    • Extract square board from upper portion
    • Use width as reference measurement
    • Handle coordinate system transformations
  2. Coordinate Recognition

    • Must detect a-h and 1-8 coordinates
    • Handles both light and dark themes
    • Requires clear coordinate visibility
    • Minimum text size requirements
  3. Board Boundaries

    • Square aspect ratio (1:1)
    • Tolerance: 0.3 for dimensions
    • Extract from detected area
    • Proper coordinate transformations
  4. Performance

    • Frame processing on dedicated queue
    • Asynchronous Vision requests
    • Memory management for capture session
    • Resource cleanup requirements

System Requirements

  • macOS 12.0 or later
  • Screen Capture permissions
  • Sufficient CPU for real-time processing
  • Adequate memory for frame buffering

Dependencies

Internal

  • ScreenCapture.swift: Core capture logic
  • ScreenCaptureViewModel.swift: State management
  • BoardDetector.swift: Pattern recognition
  • ContentView.swift: User interface

External

  • ScreenCaptureKit.framework
  • Vision.framework
  • SwiftUI.framework
  • CoreImage.framework

Development Guidelines

Code Organization

  • MVVM architecture
  • Protocol-oriented design
  • Clear separation of concerns
  • Comprehensive error handling

Performance Optimization

  • Efficient frame processing
  • Memory management
  • Resource cleanup
  • Background queue usage

Error Handling

  • Custom error types
  • Comprehensive error cases
  • User-friendly error messages
  • Proper error propagation

Testing Requirements

Unit Tests

  • Board detection accuracy
  • Coordinate transformations
  • Error handling
  • State management

Integration Tests

  • End-to-end workflows
  • Component interaction
  • Event propagation

UI Tests

  • User interaction flows
  • Error state handling
  • Visual feedback

Documentation Requirements

Code Documentation

  • Function documentation
  • Parameter descriptions
  • Return value documentation
  • Error documentation

Architecture Documentation

  • System overview
  • Component interaction
  • Data flow diagrams
  • State management

Current Challenges

Coordinate Systems

  1. Understanding

    • Different origin points
    • Axis directions
    • Coordinate spaces
    • Transformation requirements
  2. Implementation

    • Proper transformations
    • Consistent handling
    • Validation methods
    • Error checking

Board Detection

  1. Full Capture

    • Complete board visibility
    • Proper positioning
    • Consistent results
    • Coordinate accuracy
  2. Performance

    • Processing efficiency
    • Memory usage
    • Resource management
    • Error recovery

Future Considerations

Planned Features

  1. ML Model Integration

    • Piece detection
    • Position analysis
    • Move validation
  2. Engine Integration

    • Stockfish analysis
    • Move evaluation
    • Position scoring
  3. Visual Overlay

    • Move suggestions
    • Analysis visualization
    • Interactive elements

Technical Debt

  • Refactor coordinate handling
  • Optimize frame processing
  • Improve error recovery
  • Enhanced permission handling