<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abhijeet Nardele</title>
    <description>The latest articles on DEV Community by Abhijeet Nardele (@abhiisalright).</description>
    <link>https://dev.to/abhiisalright</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4156533%2F9a583f80-dc0d-4c6a-84f3-0f6d54e8194c.jpg</url>
      <title>DEV Community: Abhijeet Nardele</title>
      <link>https://dev.to/abhiisalright</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhiisalright"/>
    <language>en</language>
    <item>
      <title>GearWitness: Privacy-First Local AI Return Inspection for Equipment Rentals</title>
      <dc:creator>Abhijeet Nardele</dc:creator>
      <pubDate>Thu, 15 Oct 2026 13:22:29 +0000</pubDate>
      <link>https://dev.to/abhiisalright/gearwitness-privacy-first-local-ai-return-inspection-for-equipment-rentals-12fj</link>
      <guid>https://dev.to/abhiisalright/gearwitness-privacy-first-local-ai-return-inspection-for-equipment-rentals-12fj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GearWitness&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;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 &lt;strong&gt;$39 one-time workstation license&lt;/strong&gt;, 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.&lt;/p&gt;

&lt;p&gt;Why would they pay?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster, calmer counter check-ins&lt;/li&gt;
&lt;li&gt;Fewer missed accessories before the customer leaves&lt;/li&gt;
&lt;li&gt;Evidence-linked conversations instead of subjective memory&lt;/li&gt;
&lt;li&gt;No per-image API bill or cloud subscription&lt;/li&gt;
&lt;li&gt;Customer photos, serial numbers, and project context stay on the shop's machine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvp4x519q8zgatmyo20g4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvp4x519q8zgatmyo20g4.png" alt="GearWitness inspection workspace" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://gearwitness.onrender.com" rel="noopener noreferrer"&gt;https://gearwitness.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The public Render deployment deliberately identifies itself as &lt;strong&gt;Deterministic Fixture&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;Try this path:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Drag the comparison divider across the Sony FX3 baseline and return images.&lt;/li&gt;
&lt;li&gt;Toggle the heatmap or switch to side-by-side view.&lt;/li&gt;
&lt;li&gt;Confirm the real scratch, dismiss the lighting artifact, and mark the missing cable uncertain or confirmed.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Review &amp;amp; Export&lt;/strong&gt;. The server will not allow final approval while any proposal remains pending.&lt;/li&gt;
&lt;li&gt;Export the manifest JSON, printable HTML, or vector PDF report.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abhijeetnardele24-hash" rel="noopener noreferrer"&gt;
        abhijeetnardele24-hash
      &lt;/a&gt; / &lt;a href="https://github.com/abhijeetnardele24-hash/gearwitness" rel="noopener noreferrer"&gt;
        gearwitness
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Privacy-first local AI return-inspection system for equipment rental businesses. Hacktoberfest 2026 Week 2.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;GearWitness 🔍&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Privacy-First Local AI Return-Inspection System for Equipment Rental Businesses&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Deterministic Computer Vision Alignment + Constrained Local Gemma 3 Multimodal Reasoning + Strict Human Decision Boundary&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/abhijeetnardele24-hash/gearwitness/actions" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/abhijeetnardele24-hash/gearwitness/actions/workflows/ci.yml/badge.svg" alt="CI Quality Gates"&gt;&lt;/a&gt;
&lt;a href="https://github.com/abhijeetnardele24-hash/gearwitness/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5b60841bea9e11d9d0b0950d690c9bc554e06385634056a7d5d62a15d1a4eabe/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4170616368655f322e302d626c75652e737667" alt="License: Apache 2.0"&gt;&lt;/a&gt;
&lt;a href="https://www.python.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ff5485368fb431b85334c62c9c281e6aea67635a4e761978923fbd333c4140ef/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f707974686f6e2d332e31312d7465616c2e737667" alt="Python 3.11"&gt;&lt;/a&gt;
&lt;a href="https://react.dev/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/929850e5410e6587e821e02ac7770242f786730c6ea2ad7466c7662250bbda36/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31382d6379616e2e737667" alt="React 18"&gt;&lt;/a&gt;
&lt;a href="https://ollama.ai/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/47a449a50f39ba3660a93a3487d4a6b3184bae8a12c355e9362cb8da902410c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f6c6c616d612d47656d6d615f335f4d756c74696d6f64616c2d6f72616e67652e737667" alt="Ollama Local"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/1659dc051ad61e15b813a3e0b817cac7d7dd922bb0cbd034d29923bcb52c93f3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d39332e33352532352d627269676874677265656e2e737667" alt="Coverage: 93.35%"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/58b878b45a090fd15221a7f30ce3965170725da94ecbcc2878300abcc14fd646/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4532452d506c61797772696768745f4178655f305f56696f6c6174696f6e732d737563636573732e737667" alt="E2E: Playwright + Axe"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/eb9728d6ea24e0dcbebe60146543cbe1b06cdeff55139d99785ffe4ebcf05073/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4165737468657469632d466f72656e7369635f43616c6d2d3064393438382e737667" alt="Design: Forensic Calm"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/abhijeetnardele24-hash/gearwitness/docs/assets/hero_banner.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fabhijeetnardele24-hash%2Fgearwitness%2FHEAD%2Fdocs%2Fassets%2Fhero_banner.png" alt="GearWitness Forensic Return Inspection Workstation"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📌 Executive Summary&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Equipment rental operations (cameras, cinema packages, pro audio, drones, precision surveying tools, and construction machinery) face a structural friction point at the return counter:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check-In Bottlenecks:&lt;/strong&gt; Skilled rental agents spend 10–20 minutes visually inspecting cameras and multi-piece accessory cases, causing long customer queues during peak turn-in windows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disputed Charges:&lt;/strong&gt; Minor scuffs, preexisting wear, and lighting glare create confrontational disputes between operators and valued clients.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing Kit Accessories:&lt;/strong&gt; 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.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Privacy &amp;amp; Compliance Liabilities:&lt;/strong&gt; Operators hesitate to upload proprietary equipment photos, rental contracts, and customer serial numbers to third-party proprietary clouds.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;GearWitness solves this by bringing&lt;/strong&gt;…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/abhijeetnardele24-hash/gearwitness" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Repository: &lt;a href="https://github.com/abhijeetnardele24-hash/gearwitness" rel="noopener noreferrer"&gt;https://github.com/abhijeetnardele24-hash/gearwitness&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;GearWitness deliberately separates detection, reasoning, and authority.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Deterministic alignment before AI
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Local Gemma 3 multimodal reasoning
&lt;/h3&gt;

&lt;p&gt;Aligned crop pairs are sent to &lt;strong&gt;Gemma 3 4B through Ollama&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;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 &lt;strong&gt;Deterministic Fixture Engine&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. A strict human decision boundary
&lt;/h3&gt;

&lt;p&gt;Every proposal has exactly three operator actions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm Damage&lt;/li&gt;
&lt;li&gt;Dismiss Wear / Glare&lt;/li&gt;
&lt;li&gt;Mark Uncertain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Evidence and integrity
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj49rz2hiobh5umv31gz1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj49rz2hiobh5umv31gz1.png" alt="Five-stage GearWitness workflow" width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation is not a branding choice here; it is what makes the product viable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy:&lt;/strong&gt; Rental records may contain names, serial numbers, location metadata, and images from unreleased productions. Local Ollama inference keeps that material off hosted model APIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Predictable economics:&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replaceability:&lt;/strong&gt; Operators are not locked into one provider's endpoint, retention policy, or pricing. The model layer is explicit and swappable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auditability:&lt;/strong&gt; OpenCV, FastAPI, Pydantic, SQLite, Ollama, and the application code can be inspected and tested. Degraded behavior is visible instead of silently substituted.&lt;/p&gt;

&lt;p&gt;Community work on &lt;a href="https://dev.to/koolkamalkishor/ollama-multimodal-models-run-vision-ai-locally-2fj3"&gt;local multimodal models with Ollama&lt;/a&gt;, &lt;a href="https://dev.to/laythayache/real-time-video-anonymization-at-30-fps-on-a-35-computer-2gkl"&gt;privacy-preserving local computer vision&lt;/a&gt;, and &lt;a href="https://dev.to/samhartley_dev/run-your-own-ai-server-for-0month-with-ollama-5ecg"&gt;zero-monthly-cost local AI servers&lt;/a&gt; reinforced these choices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evaluation and Quality Evidence
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Results:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;40 matched-pair cases&lt;/li&gt;
&lt;li&gt;24 true positives&lt;/li&gt;
&lt;li&gt;0 false negatives&lt;/li&gt;
&lt;li&gt;100% recall on the synthetic damage cases&lt;/li&gt;
&lt;li&gt;0.787 F1&lt;/li&gt;
&lt;li&gt;100% missing-accessory accuracy across 8 cases&lt;/li&gt;
&lt;li&gt;Zero automatic charges by architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Automated quality gates are green:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;61 backend tests with 92.96% line coverage&lt;/li&gt;
&lt;li&gt;10 React component tests&lt;/li&gt;
&lt;li&gt;6 Playwright browser tests across 360px to 1920px&lt;/li&gt;
&lt;li&gt;Zero serious or critical Axe accessibility violations&lt;/li&gt;
&lt;li&gt;Ruff, Bandit, and Oxlint clean&lt;/li&gt;
&lt;li&gt;Docker health gate and GitHub Actions green&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Honest Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Extreme perspective differences can require a guided recapture.&lt;/li&gt;
&lt;li&gt;Specular optics and chrome remain difficult under inconsistent lighting.&lt;/li&gt;
&lt;li&gt;Live Gemma inference requires a local Ollama installation and Gemma 3 4B model.&lt;/li&gt;
&lt;li&gt;The public Render demo uses transparent fixture mode because it does not include the local model runtime.&lt;/li&gt;
&lt;li&gt;The current benchmark is synthetic and is not a substitute for a multi-shop field study.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Use of Render
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;GearWitness turns an uncomfortable return-counter judgment into a calm, source-linked workflow—without sending sensitive inspection data outside the deployment boundary.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>GroundSignal — The Sidewalk Told on Itself</title>
      <dc:creator>Abhijeet Nardele</dc:creator>
      <pubDate>Thu, 08 Oct 2026 20:10:14 +0000</pubDate>
      <link>https://dev.to/abhiisalright/groundsignal-the-sidewalk-told-on-itself-25k3</link>
      <guid>https://dev.to/abhiisalright/groundsignal-the-sidewalk-told-on-itself-25k3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;GroundSignal started with one question: &lt;strong&gt;can the motion already happening in your pocket become useful evidence without becoming surveillance?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built it from scratch during the Week 1 challenge window. It turns a short walk, wheelchair journey, or stroller trip into a private, inspectable surface report. The AI core is &lt;strong&gt;TabPFN&lt;/strong&gt;, which is well suited to the small, personal calibration sets this problem creates—and gives me probability evidence instead of a mystery label.&lt;/p&gt;

&lt;p&gt;A sidewalk already communicates through motion. Smooth pavement, rough patches, unstable sections, and transitions all feel different, but they also change with the person, mobility mode, device, phone placement, pace, and conditions. So GroundSignal does not pretend that one universal threshold can describe every path. It learns from surfaces the user already knows.&lt;/p&gt;

&lt;p&gt;That is the &lt;strong&gt;Touch Grass&lt;/strong&gt; idea at the center of the project: the useful data is collected while someone is actually moving through the world. Screen time is reserved for setup, review, and export.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fenvs2tdiki5qi7op2gjp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fenvs2tdiki5qi7op2gjp.png" alt="GroundSignal landing screen showing its privacy and uncertainty promises" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The deployed starting screen: no account, no map, and no location collection.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The workflow is deliberately designed to keep the screen as the shortest part of the experience:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose a mobility mode and phone placement.&lt;/li&gt;
&lt;li&gt;Record examples of at least two known surface types.&lt;/li&gt;
&lt;li&gt;Start an audit and put the phone in a pocket, bag, or mount.&lt;/li&gt;
&lt;li&gt;Move naturally while GroundSignal records motion locally.&lt;/li&gt;
&lt;li&gt;Finish the audit and inspect the resulting surface signals.&lt;/li&gt;
&lt;li&gt;Confirm, correct, or discard uncertain predictions.&lt;/li&gt;
&lt;li&gt;Export the evidence as CSV or JSON.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;During recording, &lt;strong&gt;Pocket Mode&lt;/strong&gt; becomes intentionally quiet and minimal. The product should encourage the user to experience the outside world instead of staring at another dashboard.&lt;/p&gt;

&lt;p&gt;GroundSignal is intended for walkers, wheelchair users, mobility-scooter users, parents using strollers, and anyone interested in documenting how a path physically feels.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;GroundSignal is a field-observation tool—not a route-safety guarantee, navigation product, or universal accessibility rating.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Live application
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://groundsignal-rlmh.onrender.com" rel="noopener noreferrer"&gt;Open the GroundSignal live demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1aj3vrtnnwm4971j2e5k.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1aj3vrtnnwm4971j2e5k.gif" alt="Automated walkthrough of the deployed GroundSignal demo" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This self-playing walkthrough was captured from the deployed application. The demo motion is synthetic and visibly labeled; it is not presented as field evidence.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The application includes a &lt;strong&gt;Run transparent demo walk&lt;/strong&gt; option. It creates clearly labeled synthetic motion data, allowing judges to evaluate the complete workflow without granting sensor permission or physically carrying a phone.&lt;/p&gt;

&lt;p&gt;The transparent demo covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personal calibration data&lt;/li&gt;
&lt;li&gt;Overlapping motion-window analysis&lt;/li&gt;
&lt;li&gt;Surface predictions&lt;/li&gt;
&lt;li&gt;Complete probability distributions&lt;/li&gt;
&lt;li&gt;Confidence and abstention&lt;/li&gt;
&lt;li&gt;Evidence-quality warnings&lt;/li&gt;
&lt;li&gt;Human review and correction&lt;/li&gt;
&lt;li&gt;Calibration improvement using reviewed signals&lt;/li&gt;
&lt;li&gt;Local report persistence&lt;/li&gt;
&lt;li&gt;CSV and JSON evidence exports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fixytipt5rcmubmx0719u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fixytipt5rcmubmx0719u.png" alt="GroundSignal field report produced by the deployed TabPFN workflow" width="800" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The report keeps the model name, confidence, evidence-quality warning, route signature, and human-review controls visible together.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The production API health endpoint is also public:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://groundsignal-api.onrender.com/health" rel="noopener noreferrer"&gt;GroundSignal API health&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The API response identifies the active model provider as &lt;code&gt;tabpfn&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Because the API currently uses Render's free compute plan, the first request after an idle period may need a short cold start. The installed PWA still has a deterministic local fallback when the hosted model cannot be reached.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three-minute judge path
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open the application and notice the local ledger and privacy boundary.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Run transparent demo walk&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Inspect the predicted route segments, probabilities, confidence, and review queue.&lt;/li&gt;
&lt;li&gt;Confirm or relabel one uncertain segment.&lt;/li&gt;
&lt;li&gt;Promote the reviewed signal into the next local calibration.&lt;/li&gt;
&lt;li&gt;Export the report as CSV or JSON.&lt;/li&gt;
&lt;li&gt;Reload the application and confirm that the report remains in the local ledger.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The complete project is open source under the MIT License:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/abhijeetnardele24-hash" rel="noopener noreferrer"&gt;
        abhijeetnardele24-hash
      &lt;/a&gt; / &lt;a href="https://github.com/abhijeetnardele24-hash/groundsignal" rel="noopener noreferrer"&gt;
        groundsignal
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A local-first pocket field instrument for uncertainty-aware surface reports.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;GroundSignal&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The sidewalk told on itself.&lt;/strong&gt; Turn a short outdoor walk into a private, inspectable, uncertainty-aware surface report.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/abhijeetnardele24-hash/groundsignal/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/abhijeetnardele24-hash/groundsignal/actions/workflows/ci.yml/badge.svg" alt="CI"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/d8633e7815e83f7d68b61e4307c38e0677d017de44329a0c42ae9784a7223c6c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d313833333266"&gt;&lt;img src="https://camo.githubusercontent.com/d8633e7815e83f7d68b61e4307c38e0677d017de44329a0c42ae9784a7223c6c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d313833333266" alt="License"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/8c04eb1cb070ae02a1b6ef99a7d277170f9fe850bc8aa033e1b85de5f0da3d1a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7261772532306d6f74696f6e2d6c6f63616c2d2d6f6e6c792d663462393432"&gt;&lt;img src="https://camo.githubusercontent.com/8c04eb1cb070ae02a1b6ef99a7d277170f9fe850bc8aa033e1b85de5f0da3d1a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7261772532306d6f74696f6e2d6c6f63616c2d2d6f6e6c792d663462393432" alt="Privacy"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/5235c887495201c2e5c2ea0252700c0dc41787b107c12f845f47be6a87d3ad1a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5057412d6f66666c696e652d2d72656164792d656635623335"&gt;&lt;img src="https://camo.githubusercontent.com/5235c887495201c2e5c2ea0252700c0dc41787b107c12f845f47be6a87d3ad1a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5057412d6f66666c696e652d2d72656164792d656635623335" alt="PWA"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;GroundSignal is a local-first pocket field instrument for the Hacktoberfest 2026 Week 1 &lt;strong&gt;Touch Grass&lt;/strong&gt; challenge. It uses phone motion sensors, personal calibration, transparent signal features, and an open tabular model to describe how a path felt underfoot or under wheels—without collecting location or identity.&lt;/p&gt;
&lt;p&gt;The project is built for two challenge categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of TabPFN:&lt;/strong&gt; few-shot, personal surface classification from a small labeled calibration set.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render:&lt;/strong&gt; a deployable PWA and bounded FastAPI inference service defined in one Blueprint.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;GroundSignal is a field-observation aid. It is not a safety guarantee, navigation service, or universal accessibility rating.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why this should exist&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Traditional path data is usually static, generic, or tied to a map. But a surface feels different depending on a person's mobility mode, phone hardware, placement, weather, and…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/abhijeetnardele24-hash/groundsignal" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Repository: &lt;a href="https://github.com/abhijeetnardele24-hash/groundsignal" rel="noopener noreferrer"&gt;github.com/abhijeetnardele24-hash/groundsignal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React 19 and TypeScript PWA&lt;/li&gt;
&lt;li&gt;FastAPI analysis service&lt;/li&gt;
&lt;li&gt;TabPFN model provider&lt;/li&gt;
&lt;li&gt;Deterministic offline baseline&lt;/li&gt;
&lt;li&gt;Motion-feature extraction&lt;/li&gt;
&lt;li&gt;IndexedDB persistence&lt;/li&gt;
&lt;li&gt;CSV and JSON export&lt;/li&gt;
&lt;li&gt;Automated frontend and backend tests&lt;/li&gt;
&lt;li&gt;GitHub Actions continuous integration&lt;/li&gt;
&lt;li&gt;Render Blueprint deployment&lt;/li&gt;
&lt;li&gt;Architecture, security, field-testing, and contribution documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;GroundSignal is separated by a strict privacy boundary: &lt;strong&gt;raw motion belongs to the browser&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdj0srdjzsv6mtd8l681n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdj0srdjzsv6mtd8l681n.png" alt="GroundSignal privacy-first system architecture" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Raw motion stays on the device. Only bounded derived features and personal calibration labels cross the explicit analysis boundary; probabilities return for local human review.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Motion becomes bounded tabular evidence
&lt;/h3&gt;

&lt;p&gt;GroundSignal listens to browser &lt;code&gt;DeviceMotionEvent&lt;/code&gt; readings after an explicit user action. It records acceleration and rotation locally, then divides the recording into overlapping three-second windows.&lt;/p&gt;

&lt;p&gt;Each window becomes a bounded feature vector containing interpretable measurements such as acceleration RMS and standard deviation, peak-to-peak acceleration, jerk RMS, gyroscope RMS, dominant frequency, spectral entropy, vertical and horizontal energy, and sample coverage.&lt;/p&gt;

&lt;p&gt;Raw sensor samples are never included in an analysis request. GroundSignal also does not request or collect GPS coordinates, precise location, identity, accounts, camera data, or microphone data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Personal calibration with TabPFN
&lt;/h3&gt;

&lt;p&gt;A surface signal depends heavily on the user's device, mobility mode, phone placement, and pace. That makes this a small, session-specific tabular learning problem.&lt;/p&gt;

&lt;p&gt;Before analysis, GroundSignal requires at least eight usable calibration windows covering at least two known surface classes.&lt;/p&gt;

&lt;p&gt;The production backend sends only derived features and user-provided calibration labels to the TabPFN provider. The model returns predictions for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;smooth&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rough&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unstable&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;transition&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each prediction contains the complete probability distribution, not only the winning label. A prediction below the documented &lt;code&gt;0.58&lt;/code&gt; confidence threshold is marked as &lt;strong&gt;abstained&lt;/strong&gt; and placed into human review. GroundSignal does not silently turn uncertainty into truth.&lt;/p&gt;

&lt;h3&gt;
  
  
  Human judgment remains part of the model loop
&lt;/h3&gt;

&lt;p&gt;A user can confirm a prediction, correct its surface label, discard an unusable window, or promote reviewed evidence into later local calibration. The correction remains visible in the exported evidence, making model output inspectable instead of presenting it as unquestionable truth.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local-first and offline-capable
&lt;/h3&gt;

&lt;p&gt;Reports, derived features, calibration evidence, and reviews are stored in IndexedDB. The local ledger has bounded retention and allows recent audits to be reopened.&lt;/p&gt;

&lt;p&gt;The PWA includes a manifest and service worker. If the hosted API is unavailable, the frontend switches to an explicitly named &lt;code&gt;offline-transparent-baseline&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The fallback is a deterministic nearest-centroid classifier. It is not disguised as TabPFN, and every exported report identifies which provider produced it.&lt;/p&gt;

&lt;h3&gt;
  
  
  A bounded public API
&lt;/h3&gt;

&lt;p&gt;The FastAPI service applies strict schemas that reject unknown fields, request-size limits, rate limiting, model concurrency limits, an inference timeout, restricted CORS origins, and defensive browser headers.&lt;/p&gt;

&lt;p&gt;The production service has no user accounts, file uploads, location storage, or database. The frontend and API are deployed together using a Render Blueprint, while the TabPFN token remains a private Render environment variable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Verification
&lt;/h3&gt;

&lt;p&gt;I tested the project locally and on its deployed Render environment.&lt;/p&gt;

&lt;p&gt;Current automated verification:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;9/9 frontend tests passed&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;12/12 backend tests passed&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Production PWA build passed&lt;/li&gt;
&lt;li&gt;Python dependency check passed&lt;/li&gt;
&lt;li&gt;Production npm audit reported &lt;strong&gt;0 vulnerabilities&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;GitHub Actions passed&lt;/li&gt;
&lt;li&gt;Render Blueprint parsed and deployed successfully&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The deployed flow was also tested through the browser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Production API health and model card&lt;/li&gt;
&lt;li&gt;TabPFN analysis&lt;/li&gt;
&lt;li&gt;Confidence and abstention&lt;/li&gt;
&lt;li&gt;Human review&lt;/li&gt;
&lt;li&gt;Calibration promotion&lt;/li&gt;
&lt;li&gt;IndexedDB persistence across reload&lt;/li&gt;
&lt;li&gt;CSV and JSON export&lt;/li&gt;
&lt;li&gt;Service-worker registration&lt;/li&gt;
&lt;li&gt;Offline reload and transparent fallback&lt;/li&gt;
&lt;li&gt;CORS, request limits, validation, and security headers&lt;/li&gt;
&lt;li&gt;No browser-console errors during the complete demo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I kept the synthetic demo visibly labeled as simulation. I do not present generated motion as real field evidence, and GroundSignal documents physical phone testing as a separate validation step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;GroundSignal handles motion that may indirectly reflect a person's mobility and environment. That made an inspectable, replaceable, and privacy-conscious architecture more important than hiding everything behind one opaque prediction endpoint.&lt;/p&gt;

&lt;p&gt;Open innovation made four important design decisions possible:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The model is replaceable.&lt;/strong&gt; The backend uses a provider interface instead of coupling the product permanently to one model. TabPFN powers the competition deployment, while the transparent local baseline preserves the workflow during poor connectivity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The input boundary is visible.&lt;/strong&gt; The repository documents every feature that may leave the device. Raw acceleration, rotation, location, and identity are excluded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uncertainty is a product feature.&lt;/strong&gt; Access to prediction probabilities lets GroundSignal expose uncertainty directly. When the model is unsure, the interface says &lt;strong&gt;review&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline behavior remains useful.&lt;/strong&gt; GroundSignal keeps its reports and calibration locally, and its fallback behavior is deterministic, labeled, and inspectable.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The project is available under the MIT License so others can audit its privacy assumptions, test alternative models, improve the feature pipeline, or adapt the instrument for different mobility experiences.&lt;/p&gt;

&lt;p&gt;Two community perspectives reinforced these choices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/crisiscoresystems/offline-first-without-a-backend-a-local-first-pwa-architecture-you-can-trust-3j15"&gt;Offline-first without a backend: building a local-first PWA you can actually trust&lt;/a&gt; emphasizes explicit trust boundaries, authoritative local storage, predictable service workers, and deliberate exports.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/amising6/what-i-learned-after-reviewing-many-ai-and-developer-projects-as-a-hackathon-judge-2g06"&gt;What I Learned After Reviewing Many AI and Developer Projects as a Hackathon Judge&lt;/a&gt; argues that completion, evidence, documentation, privacy, and deployment readiness turn an interesting idea into a trustworthy project.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I used an AI coding agent as a pair programmer during implementation, testing, security review, documentation, and Render deployment.&lt;/p&gt;

&lt;p&gt;AI assistance helped with reviewing architecture decisions, refining implementation code, expanding automated tests, diagnosing deployment and CORS issues, testing the local and deployed applications, and improving documentation.&lt;/p&gt;

&lt;p&gt;I reviewed the resulting work, kept the repository history visible, ran the complete test suites, and manually verified the deployed user journey.&lt;/p&gt;

&lt;p&gt;The project does not include API keys or secrets in the repository. Any agent-session transcript will be reviewed for sensitive setup information before being made public.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Best Use of TabPFN
&lt;/h3&gt;

&lt;p&gt;GroundSignal uses TabPFN for a small, personal, tabular classification problem.&lt;/p&gt;

&lt;p&gt;Each session begins with a limited calibration set representing the current user, device, placement, mobility mode, and conditions. TabPFN converts those calibration examples and derived motion features into a probability distribution across four surface-signal classes.&lt;/p&gt;

&lt;p&gt;The project makes the result inspectable through probabilities, confidence, abstention, evidence-quality reporting, and human correction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Use of Render
&lt;/h3&gt;

&lt;p&gt;Render hosts the complete public application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A static React and TypeScript PWA&lt;/li&gt;
&lt;li&gt;A Python FastAPI inference service&lt;/li&gt;
&lt;li&gt;Automated deployment after successful checks&lt;/li&gt;
&lt;li&gt;Health monitoring&lt;/li&gt;
&lt;li&gt;Private environment-variable management for the TabPFN token&lt;/li&gt;
&lt;li&gt;Explicit CORS and security-header configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both services are defined in a single &lt;code&gt;render.yaml&lt;/code&gt; Blueprint, making deployment reproducible directly from the public repository.&lt;/p&gt;

&lt;p&gt;GroundSignal uses Render as more than a place to host a landing page: Render runs the bounded inference API connecting personal calibration evidence to TabPFN.&lt;/p&gt;




&lt;p&gt;GroundSignal asks people to look at the path, not the screen.&lt;/p&gt;

&lt;p&gt;The phone becomes a small field instrument. The model stays uncertain when it should. And the sidewalk gets a chance to tell its own story.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
