A React Native mobile application that analyzes your photo gallery to detect monochromatic images and find similar/duplicate photos using advanced image processing algorithms.
- PhotoGrid: Renders photo collection in a customizable grid with efficient memory management
- ScanTab: Manages scanning workflows and result visualization
- BatchProcessor: Handles concurrent image analysis operations
- React Native + TypeScript
- Expo Media Library for asset access
- SHA-256 perceptual hashing for image similarity detection
- Parallel processing architecture for analyzing large photo libraries
- Paginated loading of device media
- Responsive grid display with date metadata
- Modal view for photo inspection
- Pull-to-refresh and infinite scroll implementations
- Monochrome Detection: Identifies images with color uniformity above 92%
- Similarity Detection: Finds similar photos with >87% hash similarity
- Duplicate Detection: Identifies near-identical photos with >98% hash similarity
- Real-time progress tracking with dual-phase progress display
- Batch processing with configurable chunk sizes
- In-memory caching of analysis results
- Limited parallel operations to prevent device overload
- Progressive asset loading for large libraries
- Asset Retrieval: Efficiently loads photo metadata in configurable batches
- Perceptual Hashing: Generates compact signatures for similarity comparison
- Images are resized to 16×16px
- Color data is transformed into cryptographic hash
- Color Analysis: Identifies monochromatic images
- Samples color distribution in 32×32px downsamples
- Calculates variance across color spectrum
- Applies 92% uniformity threshold for classification
- Similarity Comparison: Compares hash signatures using Hamming distance algorithm
HASH_SIZE: 16px (hash generation dimensions)COLOR_ANALYSIS_SIZE: 32px (color analysis dimensions)MONOCHROME_THRESHOLD: 0.92 (92% color uniformity)SIMILARITY_THRESHOLD: 0.87 (87% hash similarity)BATCH_SIZE: 100 (photos processed per batch)MAX_PARALLEL_OPERATIONS: 25 (concurrent operations)
- Node.js 12+
- React Native environment
- Expo CLI
# Clone the repository
git clone https://github.com/yourusername/ordy.git
# Install dependencies
cd ordy
npm install
# Start development server
expo startThe application implements several optimizations for processing large photo libraries:
- Memory-efficient processing: Photos are processed in configurable batches
- Operation throttling: Parallel operations are limited to prevent device lockup
- Progressive loading: Two-phase loading strategy for improved UX
- Hash caching: Previously processed images are cached to avoid redundant processing


