PlumeLens (鉴翎) is a local bird photo analysis and culling workstation for bird photographers. It uses on-device ML models—YOLOv26l for detection, a custom 11-keypoint pose estimator, CLIPIQA+/HyperIQA for quality assessment, and DINOv3 with LoRA adapters for species classification—to process photos without any cloud upload. The system scans user photo directories (read-only), performs detection, pose estimation, quality scoring, and species identification, then presents a grading interface (reject/record/usable/select) with manual review and species override capabilities. Export supports JPG/RAW with XMP sidecars, and a geographic archive module visualizes species sightings on an interactive map with conservation status. The architecture is a desktop application split into an Electron+React frontend and a Python FastAPI backend. The backend runs as a subprocess managed by Electron, communicating via REST APIs and Server-Sent Events for progress. The ML pipeline is orchestrated in `engine/pipeline/manager.py` with ONNX Runtime and PyTorch inferences. The frontend uses React 19, TanStack Query, Zustand, and a virtualized grid for handling large photo sets. The application is packaged for macOS (arm64) via electron-builder and PyInstaller. While the primary delivery is a desktop application, the repository also contains extensive model training scripts, evaluation frameworks (`evals/`), and dataset preparation utilities, making it a hybrid project with significant research and data engineering components. Model integrity is enforced via SHA-256 manifest verification at startup, and all inference is deterministic with versioned pipeline hashes to invalidate caches on updates.
Seek is a React Native mobile application for identifying plants, animals, and fungi using the device camera and on-device machine learning (InatVision). It allows users to capture photos, receive species identifications, save observations locally via Realm, and optionally post them to the iNaturalist citizen science platform. The app includes gamification features such as badges, levels, monthly challenges, and a year-in-review recap. It integrates with iNaturalist APIs for authentication, species data, range maps, and seasonality charts. The architecture is a monolithic React Native app with multiple Context providers for state management, React Navigation for routing, and a variety of native modules. The codebase is well-structured with TypeScript, has CI/CD pipelines, and uses snapshot tests. However, it has technical drift from patched dependencies, hardcoded monthly challenge content, and some tightly coupled components. Overall, it is a solid, actively maintained mobile app with moderate reusability of its UI primitives and custom hooks.