This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle.
What I Built
Independent camera-rental shops, community equipment libraries, and creators running rental side hustles face the same awkward moment: a valuable kit comes back, a customer is waiting, and the operator must quickly decide whether a mark is new damage, harmless glare, or normal wear—and whether every cable and battery came back.
GearWitness is a privacy-first local AI return-inspection workstation. It aligns checkout and return photos, proposes evidence-backed changes, reconciles the kit inventory, and requires a human decision before an inspection can be finalized.
The paying users are small rental operators and media-loan desks that cannot justify enterprise inspection software or cloud vision fees. My launch hypothesis is a $39 one-time workstation license, with an optional paid setup service for custom capture templates and inventory imports. This is a pricing hypothesis, not a revenue claim; I have not taken payment yet.
Why would they pay?
- Faster, calmer counter check-ins
- Fewer missed accessories before the customer leaves
- Evidence-linked conversations instead of subjective memory
- No per-image API bill or cloud subscription
- Customer photos, serial numbers, and project context stay on the shop's machine
Demo
Live demo: https://gearwitness.onrender.com
The public Render deployment deliberately identifies itself as Deterministic Fixture mode. It demonstrates the complete operator workflow without pretending that the free hosted container has a local Ollama runtime. A free Render instance may need a short cold start after inactivity.
Try this path:
- Drag the comparison divider across the Sony FX3 baseline and return images.
- Toggle the heatmap or switch to side-by-side view.
- Confirm the real scratch, dismiss the lighting artifact, and mark the missing cable uncertain or confirmed.
- Open Review & Export. The server will not allow final approval while any proposal remains pending.
- Export the manifest JSON, printable HTML, or vector PDF report.
The deployed health endpoint, image fixtures, evidence crops, operator decisions, manifest, HTML report, and PDF report were all verified with HTTP 200 responses. A clean browser run produced zero console errors.
Code
abhijeetnardele24-hash
/
gearwitness
Privacy-first local AI return-inspection system for equipment rental businesses. Hacktoberfest 2026 Week 2.
GearWitness 🔍
Privacy-First Local AI Return-Inspection System for Equipment Rental Businesses
Deterministic Computer Vision Alignment + Constrained Local Gemma 3 Multimodal Reasoning + Strict Human Decision Boundary
📌 Executive Summary
Equipment rental operations (cameras, cinema packages, pro audio, drones, precision surveying tools, and construction machinery) face a structural friction point at the return counter:
- Check-In Bottlenecks: Skilled rental agents spend 10–20 minutes visually inspecting cameras and multi-piece accessory cases, causing long customer queues during peak turn-in windows.
- Disputed Charges: Minor scuffs, preexisting wear, and lighting glare create confrontational disputes between operators and valued clients.
- Missing Kit Accessories: High-value items (e.g., $150 USB-C tethering cables, custom mounting brackets, extra NP-FZ100 batteries) are overlooked until the next customer discovers them missing on a production set.
- Cloud Privacy & Compliance Liabilities: Operators hesitate to upload proprietary equipment photos, rental contracts, and customer serial numbers to third-party proprietary clouds.
GearWitness solves this by bringing…
Repository: https://github.com/abhijeetnardele24-hash/gearwitness
The repository includes an Apache-2.0 license, Dockerfile, Render Blueprint, architecture guide, model card, evaluation methodology, privacy threat model, deterministic fixtures, and reproducible automated tests.
How I Built It
GearWitness deliberately separates detection, reasoning, and authority.
1. Deterministic alignment before AI
Checkout and return photos rarely share the same angle. Feeding unaligned images directly to a vision model encourages false differences. GearWitness first uses OpenCV ORB keypoints, Hamming-distance matching, RANSAC homography, perspective warping, bilateral filtering, luminance subtraction, and Otsu thresholding. The result is a set of small, aligned candidate regions rather than two uncontrolled full-frame images.
2. Local Gemma 3 multimodal reasoning
Aligned crop pairs are sent to Gemma 3 4B through Ollama in local mode. Gemma must produce a schema-valid condition, severity, confidence, description, and observable rationale. It is not asked who caused damage and it cannot create a charge.
Real local execution was verified against Gemma 3 4B. When Ollama is unavailable, GearWitness does not disguise fixture output as model inference: health metadata reports Ollama disconnected and labels the engine Deterministic Fixture Engine.
3. A strict human decision boundary
Every proposal has exactly three operator actions:
- Confirm Damage
- Dismiss Wear / Glare
- Mark Uncertain
The backend rejects final approval while any proposal remains pending. There is no payment integration and no automatic charging path. The model proposes; the operator decides.
4. Evidence and integrity
The final report binds source-image hashes, proposal coordinates, inventory status, and operator decisions into a SHA-256 Content Integrity Digest. This is accurately described as tamper-evident when compared with a trusted stored digest—not as a digital signature, timestamp authority, or proof of custody.
Architecture
Checkout and return photos flow through OpenCV alignment, candidate-region extraction, local Gemma structured analysis, the human review UI, and finally the integrity manifest plus reports. FastAPI and SQLite provide the local API and storage layer; React and TypeScript provide the forensic comparison workspace.
The design remains modular: the model adapter can be swapped, the deterministic vision stage can be tuned independently, and the operator boundary remains enforced server-side.
Why Does Open Innovation Matter?
Open innovation is not a branding choice here; it is what makes the product viable.
Privacy: Rental records may contain names, serial numbers, location metadata, and images from unreleased productions. Local Ollama inference keeps that material off hosted model APIs.
Predictable economics: A one-time tool for a small shop is difficult to sustain if every inspection generates variable vision-API charges. Running Gemma on existing hardware makes the pricing model possible.
Replaceability: Operators are not locked into one provider's endpoint, retention policy, or pricing. The model layer is explicit and swappable.
Auditability: OpenCV, FastAPI, Pydantic, SQLite, Ollama, and the application code can be inspected and tested. Degraded behavior is visible instead of silently substituted.
Community work on local multimodal models with Ollama, privacy-preserving local computer vision, and zero-monthly-cost local AI servers reinforced these choices.
Evaluation and Quality Evidence
I used a separated 40-case synthetic benchmark. Prediction code receives inputs without gold labels; a regression guard fails if a prediction runner attempts to access ground truth.
Results:
- 40 matched-pair cases
- 24 true positives
- 0 false negatives
- 100% recall on the synthetic damage cases
- 0.787 F1
- 100% missing-accessory accuracy across 8 cases
- Zero automatic charges by architecture
The deliberately sensitive pixel baseline also produces false positives under lighting changes. That limitation is exactly why candidate generation is followed by multimodal reasoning and mandatory human review rather than an automatic accusation.
Automated quality gates are green:
- 61 backend tests with 92.96% line coverage
- 10 React component tests
- 6 Playwright browser tests across 360px to 1920px
- Zero serious or critical Axe accessibility violations
- Ruff, Bandit, and Oxlint clean
- Docker health gate and GitHub Actions green
Honest Limitations
- Extreme perspective differences can require a guided recapture.
- Specular optics and chrome remain difficult under inconsistent lighting.
- Live Gemma inference requires a local Ollama installation and Gemma 3 4B model.
- The public Render demo uses transparent fixture mode because it does not include the local model runtime.
- The current benchmark is synthetic and is not a substitute for a multi-shop field study.
Prize Categories
Best Use of Gemma
Gemma 3 4B is the local multimodal reasoning layer over tightly cropped, OpenCV-aligned evidence. It converts visual deltas into constrained proposals while leaving every consequential decision to the operator.
Best Use of Render
Render hosts the complete public judging experience from the repository's Blueprint: React UI, FastAPI service, health checks, image fixtures, evidence crops, manifest JSON, printable HTML, and PDF generation from one Docker service.
What I Learned
The strongest design was not “let the model decide.” It was to give each subsystem a narrow job: deterministic vision finds candidate regions, Gemma explains physical deltas, and the human owns the decision. That separation made the application more useful, more testable, and more honest.
GearWitness turns an uncomfortable return-counter judgment into a calm, source-linked workflow—without sending sensitive inspection data outside the deployment boundary.



Top comments (0)