thehardwarestore.ai

where AI agents shop for the right tools

── 99129 repos indexed ── | filtered by tag: #camera
mrousavy/react-native-vision-camera ★ 9577 1385 APPLICATION

This repository is a high-performance React Native camera library (VisionCamera) that provides photo/video capture, real-time frame processing, barcode scanning, location tagging, and GPU-accelerated frame resizing. It is organized as a monorepo with a core package and several plugin packages (barcode-scanner, location, resizer, skia, worklets). The architecture uses NitroModules to generate C++/Swift/Kotlin hybrid object bridges, enabling zero-copy data flow from platform camera APIs (AVFoundation on iOS, CameraX on Android) to JavaScript. Key entry points include the `<Camera>` React component, hooks like `useCameraSession`, `useFrameOutput`, `useBarcodeScannerOutput`, and factory functions for creating sessions and outputs. External dependencies include platform camera frameworks, ML Kit for barcode detection, CoreLocation for geotagging, and Metal/Vulkan for GPU compute. The library is production-grade, used by major apps (Amazon, Shopify, Tesla, etc.), and features a constraint resolution system for optimal format selection, gesture controllers for zoom and tap-to-focus, and a worklet runtime for offloading frame processing to native threads.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
blakeblackshear/frigate ★ 36412 3666 APPLICATION

Frigate is a production-grade, full-stack Network Video Recorder (NVR) with real-time AI object detection. It ingests IP camera streams, performs motion detection, object detection (via TFLite/ONNX/OpenVINO/TensorRT on CPU/GPU/NPU), tracking, and recording. The backend is Python with FastAPI, Peewee ORM, and ZMQ-based inter-process communication. The frontend is a React/TypeScript single-page application with live views, timeline review, config editing, and GenAI enrichments (face recognition, license plates, semantic search, chat). It supports hardware acceleration across a wide range of devices (Coral, Intel iGPU, NVIDIA Jetson, Hailo, Rockchip NPU, etc.) and integrates deeply with Home Assistant. While primarily an application, it contains substantial data/research components including ML model runners, embedding pipelines, and post-processing logic for classification and transcription.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 6 reusable components found
ujizin/Camposer ★ 301 17 APPLICATION

Camposer is a Kotlin Multiplatform camera library that provides a unified Compose Multiplatform API for camera functionality on Android (via CameraX) and iOS (via AVFoundation). It offers camera preview, photo capture, video recording, flash/torch control, zoom, tap-to-focus, exposure compensation, mirror mode, multi-lens selection, video stabilization, and image analysis (including barcode/QR scanning via the optional code-scanner module). The library is published on Maven Central and includes sample apps demonstrating both Android-only and cross-platform usage. The architecture follows a clean separation of concerns with an internal engine/applier layer: `CameraState` holds reactive state flows for all configurable properties, and platform-specific appliers (`PreviewApplier`, `VideoApplier`, etc.) write changes to the underlying hardware when the state changes. The public API exposes `CameraPreview` composable, `CameraSession` for state/info access, and `CameraController` for capture commands. The codebase is well-structured with expect/actual pattern, version catalogs, ABI validation, and extensive test infrastructure (unit tests, device tests, iOS tests). It is a well-crafted, actively maintained library with high reusability potential.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ismoy/ImagePickerKMP ★ 230 25 APPLICATION

ImagePickerKMP is a Kotlin Multiplatform library (not a standalone application) that delivers production-grade media picking and barcode scanning capabilities for Android, iOS, JVM desktop, and web/JS/Wasm targets. The photo module (imagepickerkmp-photo) provides camera capture, gallery selection, image cropping, EXIF extraction with GPS redaction, configurable compression (LOW/MEDIUM/HIGH), and permission-request UI, all driven through a Compose Multiplatform API centered on rememberImagePickerKMP(). The scanner module (imagepickerkmp-scanner) provides continuous barcode/QR scanning with auto-zoom, distance warnings, batch mode, phantom-code suppression, and enterprise inactivity overlays, using ML Kit on Android and AVFoundation/Vision on iOS. A shared imagepicker-core module abstracts permissions, filesystem access, URI handling, language detection, and logging across platforms via the Kotlin expect/actual mechanism. The library is distributed as versioned Maven artifacts with a published JS bundle for web integration. Architecturally, the codebase is a modular multi-artifact Gradle project: imagepicker-core (infrastructure), imagepickerkmp-photo, and imagepickerkmp-scanner, with each module enforcing dependency boundaries (the scanner module explicitly prohibits depending on the photo module). Its design leans on config-driven API design (large nested data classes such as ImagePickerKMPConfig and ScannerBehaviorConfig with runtime validation), observable state holders (sealed Idle/Loading/Success/Dismissed/Error states backed by Compose mutableStateOf), and event-driven scanner orchestration. Platform-specific behavior is cleanly isolated through expect/actual: Android uses CameraX, ActivityResultContracts, and ExifInterface; iOS uses UIImagePickerController, PHPicker, PhotosUI, and CoreGraphics; desktop/web use file choosers or documented no-op stubs where camera hardware is unavailable. Localization spans 14 languages via YAML translation files and the i18nkonfig plugin, and CI (GitHub Actions) runs detekt static analysis, Kover coverage verification with a 90% line minimum, unit tests across commonTest/androidUnitTest/iosTest, and publishes coverage to Codecov. Maintenance is active: a recent commit history on the develop branch, one open issue, zero Dependabot alerts, and continuously updated Kotlin 2.x / Compose Multiplatform versions indicate steady upkeep. Known rough edges include intentionally blank PlatformPrewarm files, crop implementation stubs on JS/WASM, a handful of placeholder tests asserting true, duplicated permission-handling logic across photo/scanner modules, and a potentially stale build-and-bundle.sh referencing an old JS build path. Overall, this is a well-crafted, professionally engineered KMP library with genuinely reusable cross-platform abstractions and strong test discipline; it is a solid reference for Kotlin Multiplatform architecture and Compose-based camera/scanning UX.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
longitachi/ZLPhotoBrowser ★ 4985 1016 APPLICATION

ZLPhotoBrowser is a mature, feature-rich iOS library for selecting, previewing, and editing photos and videos, inspired by the WeChat photo picker. It provides a full-screen image/video preview with pinch-to-zoom, a custom camera with photo and video recording, and an extensive image editor supporting drawing, mosaic, text/image stickers, filters, brightness/contrast/saturation adjustments, and clipping with various aspect ratios. The library also handles GIFs, Live Photos, and video trimming/merging. It is built entirely in Swift and targets iOS 10+. The architecture is UIKit-based, centered around a navigation controller flow (`ZLImageNavController`) that manages album list (`ZLAlbumListController`), thumbnail grid (`ZLThumbnailViewController`), and preview (`ZLPhotoPreviewController`). Configuration is handled via singleton classes (`ZLPhotoConfiguration`, `ZLPhotoUIConfiguration`, `ZLEditImageConfiguration`) with a builder-pattern chaining API. The library uses `PHPhotoLibrary` for asset fetching, `AVFoundation` for camera and video processing, and `Core Image` for filters. It includes custom interactive transitions for dismiss and pop animations, and a gesture coordinator for sticker manipulation. Key entry points are `ZLPhotoPicker` (SwiftUI wrapper) and `ZLPhotoPreviewSheet` (UIKit) for presenting the picker. The library has no external dependencies for its core functionality; the example app bundles Kingfisher and SnapKit for demonstration purposes. It supports CocoaPods, Carthage, and Swift Package Manager, and includes localization for 17 languages. The codebase is well-structured with clear separation of concerns, though some view controllers are large and there is minor duplication in transition logic.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
JurajNyiri/HomeAssistant-Tapo-Control ★ 1993 154 APPLICATION

This is a Home Assistant custom integration for controlling TP-Link Tapo cameras, doorbells, and chimes entirely locally. It provides a comprehensive set of entities (camera, binary sensor, sensor, switch, select, number, button, siren, light, update) and a media source for browsing and playing recordings. The integration communicates with devices via the pytapo library over local IP, using RTSP, proprietary streaming, ONVIF for motion events, and UDP for doorbell presses. It features a multi-step config flow with reauthentication, options flow for fine-tuning, and a background media synchronization system with hot/cold storage and thumbnail generation. The codebase is well-structured with clear patterns (base entity classes, mixins, capability detection) but suffers from a monolithic utils.py (~1500 lines) and a high config flow version number (25) indicating frequent breaking changes. It is actively maintained with recent commits and responsive issue triage, though it relies on undocumented Tapo APIs that may break with firmware updates.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
Yummypets/YPImagePicker ★ 4482 1002 APPLICATION

YPImagePicker is an iOS framework that provides an Instagram-like photo and video picker with a rich set of features including camera capture, library browsing, video trimming, photo filters, cropping, and multiple selection. The architecture follows a modular pattern with a central configuration struct (YPImagePickerConfiguration) that controls all behaviors, and a navigation controller (YPImagePicker) that manages a paged interface (YPPickerVC) switching between library, photo, and video screens. The library screen uses PHPhotoLibrary and PHCachingImageManager for asset fetching and caching, while the camera and video screens leverage AVFoundation for capture. Filters are applied via Core Image, and video trimming uses the PryntTrimmerView dependency. The framework is highly customizable through configuration properties for colors, fonts, icons, wordings, and feature toggles. The codebase is well-organized into folders for configuration, filters, helpers, models, pages (gallery, photo, video), and selections gallery. Helper extensions provide reusable functionality for AVFoundation, Photos, UIKit, and Core Image operations. The permission management is abstracted into a dedicated module. While the framework lacks unit tests and some view controllers are large, the overall structure is clean and the separation of concerns is reasonable. The library has been widely adopted (4.4k stars) and is actively maintained with recent commits and pinned dependencies.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
motioneye-project/motioneye ★ 4667 710 APPLICATION

MotionEye is a production-grade, self-hosted web frontend for the Linux motion daemon, providing a comprehensive management interface for IP and USB cameras. The system is implemented as a Python Tornado web server with a RESTful JSON API and a feature-rich single-page JavaScript UI. In production, it manages local and remote cameras, handles real-time MJPEG streaming, motion-triggered recording, scheduled timelapse generation, cloud uploads (S3, WebDAV, FTP, etc.), and notifications via email, Telegram, and webhooks. Configuration is stored in flat text files parsed and written by the motion daemon, with the web server acting as a configuration bridge. The architecture is a monolith: a single Tornado process serves all HTTP requests, manages subprocesses for media processing (ffmpeg), and controls the motion daemon lifecycle. Key entry points include the `meyectl` CLI (for daemon control and maintenance tasks) and the web UI served on port 8765. External dependencies include the motion daemon, ffmpeg/ffprobe, and system utilities for power management, SMB mounts, and WiFi control. While the codebase is large and has accumulated some technical debt (monolithic JavaScript file, hardcoded secrets, SHA1 usage), it demonstrates solid engineering with clear module separation, extensive test coverage for critical handlers, and a well-designed HMAC authentication scheme for server-to-server communication.

RATING: 7.6/10 MAINT: maintained DRIFT: medium
▸ 5 reusable components found

This repository is a React Native library that provides platform-specific camera and image/video picker functionality. It exposes two primary functions: `launchCamera` and `launchImageLibrary`, which allow users to capture photos/videos or select existing media from the device library. The implementation covers iOS (using UIImagePickerController and PHPickerViewController), Android (via Intents and the AndroidX Photo Picker), and a minimal web fallback using browser APIs. The library handles image resizing, metadata extraction, video conversion, permission handling, and offers configurable options like quality, media type, selection limits, and more. The codebase follows standard React Native native module patterns with support for both the old and new architecture (TurboModules). While the implementation is functional and well-tested by the community, it includes some code that could be considered dated (e.g., synchronous dispatch semaphore on iOS, inline DOM manipulation on web) and does not contain easily extractable reusable components outside its specific domain.

RATING: 7.1/10 MAINT: maintained DRIFT: low
begeekmyfriend/yasea ★ 4940 1310 APPLICATION

Yasea is an Android live-streaming library and demo application that captures camera video and microphone audio, applies real-time GPU image filters, hardware-encodes to H.264/AAC via MediaCodec, muxes into FLV, and publishes over RTMP to servers such as SRS. The main entry point is SrsPublisher, which orchestrates SrsCameraView (an OpenGL ES preview surface), SrsEncoder (MediaCodec lifecycle and format negotiation), SrsFlvMuxer (FLV-over-RTMP publishing), and SrsMp4Muxer (simultaneous MP4 recording). The demo app (MainActivity) provides a working UI for URL entry, publish/pause, camera switching, recording, and filter selection. Architecturally, the repo is a Gradle project with two modules: a reusable Android library (library/) and a demo app (app/). The library is a monolith that bundles large vendored third-party codebases as source: Google's libyuv (native YUV/RGB conversion and scaling), mp4parser (ISO BMFF/MP4 parsing and authoring), simple-rtmp (RTMP client protocol), and MagicCamera (40+ GPU image filters with GLSL shaders). The repo's own code is the net.ossrs.yasea package, which integrates these pieces: camera frames flow through the GLSurfaceView filter chain as RGBA, are converted to I420/NV12 by the libenc JNI bridge (libenc.cc wrapping libyuv), encoded by MediaCodec, and muxed to FLV/MP4. Audio is captured via AudioRecord and encoded to AAC. Despite a recent commit, the codebase is frozen in the 2017-2020 Android era: compileSdk/targetSdk 26, Android support library 26.1.0, the deprecated Camera API, Gradle 6.5 with AGP 4.1.1, and a mips ABI that modern NDKs no longer support. The native build is commented out in library/build.gradle, and 285 open issues remain. Technical drift is high. This is purely an application/library repo - no data pipelines, notebooks, or research components.

RATING: 6.6/10 MAINT: active DRIFT: high
▸ 4 reusable components found
── end of results ──
$ submit: