Photonix is a self-hosted, full-stack photo management application with AI-powered classification and search. The backend is a Django monolith exposing a GraphQL API, with background workers for importing, thumbnail generation, raw processing, and ML classification (color, objects, faces, location, style, events). The frontend is a React 19 single-page app built with TanStack Router, Apollo Client, Zustand state management, and a dark-themed shadcn/ui component library. The system supports multi-user libraries, invitations, map view, albums, and fine-grained search with facets. The architecture relies on a PostgreSQL database, Redis for task coordination and locks, and supervisor to manage numerous background processes. While the project shows solid engineering and a modern tech stack, it carries some technical debt from vendored ML models, TensorFlow 1.x compatibility, and hardcoded download URLs, and is explicitly not yet feature-complete.
BAAH (Blue Archive Aris Helper) is a Python-based automation tool for the mobile game Blue Archive. It automates daily tasks, combat, events, and other in-game activities through image recognition, OCR, and ADB-based emulator/device control. The application features a NiceGUI-powered desktop interface for configuration and task management, with support for multiple game servers (Global, Japan, CN, Bilibili, Steam) and cross-platform deployment (Windows, macOS, Linux, Android). The architecture follows a modular task-based design where each automation task (login, combat, cafe, etc.) inherits from a base Task class defining standardized lifecycle methods (pre_condition, on_run, post_condition). Game state detection relies on template matching via a Page class, while complex automation flows are built using composable actions from the define_actions module. Configuration is managed through a hierarchical system supporting user, software, session, and storage layers with i18n and post-processing capabilities. The GUI provides reusable components for list editing, screenshot capture, and task execution monitoring. Key external dependencies include OpenCV for image processing, ONNX Runtime for OCR, NiceGUI for the web-based GUI, and ADB for device communication. The tool stores user configurations as JSON files and maintains historical data in USER_STORAGE. Self-update functionality checks multiple sources (Gitee/GitHub/mirror) for new versions.
Airtest is a cross-platform UI automation testing framework developed by NetEase, primarily targeting mobile games and apps. It provides a unified Python API and CLI for automating interactions on Android, iOS, Windows, and Linux devices. The core mechanism is image recognition using computer vision algorithms (template matching, keypoint matching with SIFT/KAZE/BRISK, etc.) to locate UI elements, combined with device-specific input simulation via ADB, minitouch, WebDriverAgent, and pywinauto. The framework supports complex gestures, multi-touch, screen recording, and HTML report generation with step logs and screenshots. Architecturally, Airtest is a library with a CLI entry point (`airtest run/report/info`). It uses a device abstraction layer with platform-specific implementations (Android, IOS, Windows, Linux) that share a common API through `airtest.core.api`. The image matching is handled by the `aircv` subpackage, which offers multiple matching strategies configurable via `CVSTRATEGY`. The Android module employs a proxy pattern for screen capture (Minicap, Javacap, ADB) and touch input (Minitouch, Maxtouch, ADB), allowing runtime switching. The framework also integrates with the Poco UI hierarchy inspection tool and supports cloud device testing. While the primary focus is application testing, the repository includes a small benchmark directory that compares the performance of various image matching algorithms, producing metrics like CPU, memory, and keypoint counts. This is a minor component and does not shift the overall classification away from application. The codebase is well-structured with clear separation of concerns, but shows signs of technical debt such as Python 2 compatibility shims, pinned outdated dependencies (opencv-contrib-python ≤ 4.6.0.66, numpy < 2.0), and bundled precompiled binaries (minitouch, minicap, iproxy) that require periodic updates. The project is actively maintained with frequent commits and community engagement, but test coverage is limited due to reliance on real devices.