Inspiration
The idea for ClearDrop came from a real parcel-fall incident. On April 24, 2021, Dominga G. Soto stepped out of her home, slipped on a cylindrical package near her doorstep and injured her back. The incident is documented in Soto v. United States. It involved USPS, not Amazon. Court record.
I kept coming back to the same question: a delivery can be complete while the doorway is still difficult to use. A delivery photo tells us what arrived. I wanted to explore whether a camera could help someone notice a persistent change in the space they need to keep clear.
That is the problem behind ClearDrop. The incident inspired the idea; I am not claiming this prototype would have prevented it.
What it does
You mark a keep-clear area near your doorway and confirm an empty reference view. ClearDrop compares fresh video frames with that view. A change inside the marked area has to persist before it asks you to review it. The main monitor detects pixel changes, not parcel identity.
The review stays open until you check removal and confirm a fresh empty view. Acknowledging an alert does not close it. Neither does losing the camera. If a parcel is already there when you start, you can report it manually rather than accidentally teaching the app that an occupied doorway is empty.
Ring developer preview, a phone camera and a public controlled-test page use the same monitor. The public tests need no account or Ring token. Optional on-device AI explores parcel suggestions, but recognition is experimental and still needs human review.
How I built it
I started with Amazon's MIT-licensed Ring API Hello World project and retained its attribution. ClearDrop adds the marked-area workflow, persistent change monitoring, phone input, measured tests, video diagnostics and private review storage.
The app uses Next.js, React and TypeScript. Ring APIs provide device discovery and WHEP session setup, with WebRTC playback in the browser. The app checks received bytes and decoded frames separately from the connection status.
A shared browser adapter feeds pure TypeScript monitoring and review policies. Optional Grounding DINO Tiny and OWL-ViT experiments run in a Web Worker through Transformers.js and ONNX Runtime, with WebGPU or a CPU fallback. Stale results and inference failures cannot quietly clear an earlier concern.
Frames are processed locally. Supabase handles verified accounts and opt-in synchronization of review status and timestamps. Review records do not contain frames, recordings, Ring tokens or device IDs. Render hosts the public app, and GitHub Actions checks tests, types and builds.
Challenges
An early Ring session said it was connected but delivered no frames. I added video-health diagnostics so that a successful connection response was no longer mistaken for playback. Short-lived tokens and short sandbox clips also made it hard to repeat an empty-to-placement test.
The models did not perform as reliably as I hoped. OWL-ViT missed a visible parcel in a Ring sample, and an early Grounding DINO CPU replay timed out. Serving runtime assets from the same origin fixed a content-security-policy loading problem. It did not fix or prove recognition accuracy, so I kept AI separate from the calibrated change monitor.
What I am proud of
The public test page runs moving video through the production monitor and measures the results. It does not just show a scripted pass badge. The same monitoring policy also handles phone and Ring inputs.
I am particularly pleased with the removal workflow: a disconnected camera cannot make an unresolved concern disappear. The October 6 verification run passed 138 deterministic tests, type checking and a production build. These checks establish implementation behavior, not real-world parcel accuracy.
What I learned
I learned to inspect decoded frames instead of trusting a connection indicator, to reject stale model results, and to test interruptions as carefully as successful paths. Separating video transport, monitoring and human review made those problems easier to find.
What's next
I want to test permissioned placement/removal footage under different lighting and viewpoints, measure missed events and false alerts, and get feedback from people with accessibility needs. Approved consumer Ring authorization, durable sessions, production account controls and native-store packaging are future work.
ClearDrop is a foreground, human-assisted prototype. It does not measure physical walking clearance, provide unattended monitoring or guarantee injury prevention.
Demonstration and credits
The demo separates earlier Ring Playground playback, an earlier phone-camera box test and three generated-video tests through the production monitor. The Ring sample already contains a parcel; it is not an arrival or successful AI-detection demonstration. The model screen shows initialization, not recognition accuracy. The female narration is synthetic, not a cloned voice.
Ring sample: “Thief stealing our package” by frollard, CC BY 4.0. Original, author, license. The excerpt was shortened, cropped, scaled, shipping-label blurred, and given captions and narration. ClearDrop is independent and is not endorsed by Amazon or Ring.
Built With
- next.js
- react
- ring-api
- supabase
- transformers.js
- typescript
- webrtc
Log in or sign up for Devpost to join the conversation.