Three Things Outside: letting AI start an observation, then putting the phone away
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.
What I Built
Three Things Outside is a small mobile web exercise: take one outdoor photo, let an open-source object detector suggest three ways to look more closely, then put the phone away for three minutes. The last prompt always asks what the AI missed. After the timer, the person writes one field note. It is for anyone who wants a reason to stop identifying everything on a screen and pay attention outside.
The interesting result should be the human note, not the model's labels.
The screenshots show a 15-second judge-demo countdown and a completed note reading “a smell after rain.” They show the interaction, but I have not documented a verified outdoor field test, so I will not present them as proof of one. In the repeatable public-site test, a synthetic PNG gave the model no confident objects. The app said so plainly and still offered three prompts, including one about what lay beyond the frame. That is the behavior I wanted: an imperfect model can start an observation without pretending it saw everything.
Demo
Live HTTPS demo: main.dkm0k3epi65hg.amplifyapp.com
Screenshot 1 — 15-second judge timer: !The judge demo timer asking the user to put the phone away
Screenshot 2 — completed field note: !A completed field note reading “a smell after rain”
For judges, the same flow has a clearly labeled 15-second demo mode after photo analysis. The standard exercise is three minutes.
Code
GitHub repository: ABhattacharya-dev/three-things-outside
Run locally with python -m http.server 8000, then open http://localhost:8000/. The repository README explains the full journey, test checklist, limitations, and deployment.
How I Built It
The app is buildless HTML, CSS, and JavaScript. TensorFlow.js 4.22.0 runs COCO-SSD 2.2.3 in the browser with its lite_mobilenet_v2 base. A selected JPEG, PNG, or WebP up to 12 MB is decoded into a canvas scaled to at most 960 pixels on its longest edge. Local inference yields up to three classes scoring at least 50%, or an honest empty result. The detections shape the first prompt. The second asks for a sensory detail. The third asks what AI missed. A wall-clock timer sends the person away from the phone; a field note closes the loop. The latest text result uses browser localStorage; sharing uses Web Share with a selectable text fallback.
flowchart LR
A[Outdoor photo] --> B[Browser canvas]
B --> C[Local COCO-SSD inference]
C --> D[Three prompts]
D --> E[Phone-away timer]
E --> F[Field note]
F --> G[Text-only local result and share]
The app contains no photo upload path or backend. The temporary photo URL is revoked and the preview canvas is cleared after inference. Only the latest note text, completion time, and detected class names go into localStorage; a blocked store leaves the note usable until reload. The first visit requires downloads of the libraries and model, so this is not an offline-first app. The model can be wrong and must never be treated as a safety or species identifier. A browser Network capture is still needed before claiming the no-upload property was independently verified.
Local audit, October 11: The four browser self-checks passed. The pinned model loaded and analyzed a tiny valid PNG in a desktop browser, producing the honest zero-detections path. At desktop and 320 px simulated mobile widths, no horizontal overflow appeared; keyboard focus reached the skip link and file input. Temporary local stubs verified confident detection display, failed model loading with Retry, failed inference with Retry, unsupported/corrupt/oversized image errors, blocked storage, restart, and text-only share fallback. Both the full three-minute timer and 15-second judge mode reached the field-note screen. The synthetic images and stubbed detections are test fixtures, not outdoor evidence.
Public HTTPS audit, October 11: An Amplify manual deployment contained only the three runtime files. Requests for the README, DEV draft, project instructions, and self-check page returned 404. In a fresh browser tab at the public URL, the pinned model became ready, analyzed a valid synthetic PNG with zero confident detections, produced three prompts, completed the full 15-second judge timer, and saved a field note. The synthetic image is a technical fixture, not outdoor evidence.
Still to verify: physical mobile Chrome and camera permission, a real outdoor image and three-minute phone-away run, a reduced-motion device setting, native Web Share, and a Network capture showing no photo upload.
Why Does Open Innovation Matter?
An inspectable, replaceable open-source detector makes the photo-to-prompt loop possible without a private inference API. There is no per-image API fee and no account. Because the model's limited object vocabulary is visible, its misses become part of the experience: the person can notice sounds, changes, and details that a single frame cannot capture. Local inference makes a private-photo design possible while keeping the screen part short.
My Agent Session
This public curated DevRelay build and verification session records selected, paraphrased milestones. It contains no raw tool logs, private machine paths, credentials, or photos.
{% agent_session 799 %}
Credits and disclosure
The app uses TensorFlow.js, COCO-SSD, and its COCO object classes. Project code is MIT licensed; upstream code, model weights, and data keep their own licenses. Codex AI produced this article and substantial project code at the project owner's request. The post is marked fully_autonomous in DEV's AI disclosure. The two screenshots were supplied by the project owner; no real outdoor-test account was provided.
1 comment
Mentions
TensorFlow, Google'ın açık kaynak makine öğrenimi çatısıdır! Derin öğrenme ve sinir ağları için kapsamlı bir ekosistem sunar. Araştırmacılar ve geliştiriciler için güçlü bir araç. tensorflow/tensorflow #MachineLearning #TensorFlow #YapayZeka
TensorFlow: a free machine learning toolkit The machine learning platform Google Brain researchers built, free. TensorFlow is an open-source platform for machine learning, first developed by Google Brain researchers. Use it to build, train and deploy models. Get it free on GitHub: tensorflow/tensorflow Comment "TENSOR" and I'll send you the link. Follow RepoDrop for a free GitHub tool every day. #shorts #github #tensorflow
Day3 - M - TensorFlow from blank file to first example (EN) You are unsure what to write in a new script; the README leads through installation, an addition, and a constant, then points to tutorials. 200,986 stars, per GitHub, 16 Oct 2026. License: Apache-2.0 Apache-2.0 with applicable BSD/Caffe notices. This introduction does not distribute code. tensorflow/tensorflow github.com/tensorflow/tensorflow/blob/master/LICE… This video is not sponsored.
@TensorFlow @Google @googledevgroups @gitsocialspace Open source hits different when @Google engineers review your code. 🙌 🚀 🔗 Here is the PR link tensorflow#115111 #TensorFlow #OpenSource #Python #MachineLearning #100DaysOfCode #GitHub #AI #DeepLearning #CodeNewbie
tensorflow: The Hottest C++ Repo on GitHub Right Now In this video, we break down tensorflow/tensorflow - one of the hottest open-source projects on GitHub right now. Before you clone tensorflow/tensorflow, here is what it actually does, how its README says to run it, and what to inspect first. This project has 201.0K stars on GitHub. tensorflow/tensorflow is described as An Open Source Machine Learning Framework for Everyone. It is written mainly in C++. The useful question is not only why it is popular, but which problem it solves for you. The README is the p 📂 Repo: tensorflow/tensorflow 🌐 Stars: 201.0K | Language: C++ | Forks: 79.4K 🔔 Subscribe for daily picks of the hottest GitHub repos: youtube.com #github #opensource #programming
self attentionって凄まじく単純な機構なんだけど多義的なトークン(言葉)に前後のトークン全部入れる事で文脈理解させるができる たった数百行のコードで世界を激変させたんだな github.com/tensorflow/tensor2tensor/blob/14dafcd0…
機械学習の研究から、modelを使うappの構築とdeployまで同じecosystemで。 TensorFlowは、tools、libraries、communityをまとめたopen-source ML platformです。公式READMEはstable Python APIとC++ APIを案内しています。 tensorflow/tensorflow
Three Things Outside: letting AI start an observation, then putting the phone away This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass. What I Built Three Things Outside is a small mobile web exercise: take one outdoor photo, let an open-source object detector suggest three ways to look more closely, then put the phone away for three minutes. The last prompt always asks what the AI missed. After the timer, the person writes one field note. It is for anyone who wants a reason to stop identifying everything on a screen and pay attention outside. The interesting result should be the human note, not the model's labels. The screenshots show a 15-second judge-demo countdown and a completed note reading “a smell after rain.” They show the interaction, but I have not documented a verified outdoor field test, so I will not present them as proof of one. In the repeatable public-site test, a synthetic PNG gave the model no confident objects. The app said so plainly and still offered three prompts, including one about what lay beyond the frame. That is the behavior I wanted: an imperfect model can start an observation without pretending it saw everything. Demo Live HTTPS demo: main.dkm0k3epi65hg.amplifyapp.com Screenshot 1 — 15-second judge timer: !The judge demo timer asking the user to put the phone away Screenshot 2 — completed field note: !A completed field note reading “a smell after rain” For judges, the same flow has a clearly labeled 15-second demo mode after photo analysis. The standard exercise is three minutes. Code GitHub repository: ABhattacharya-dev/three-things-outside Run locally with python -m http.server 8000, then open http://localhost:8000/. The repository README explains the full journey, test checklist, limitations, and deployment. How I Built It The app is buildless HTML, CSS, and JavaScript. TensorFlow.js 4.22.0 runs COCO-SSD 2.2.3 in the browser with its lite_mobilenet_v2 base. A selected JPEG, PNG, or WebP up to 12 MB is decoded into a canvas scaled to at most 960 pixels on its longest edge. Local inference yields up to three classes scoring at least 50%, or an honest empty result. The detections shape the first prompt. The second asks for a sensory detail. The third asks what AI missed. A wall-clock timer sends the person away from the phone; a field note closes the loop. The latest text result uses browser localStorage; sharing uses Web Share with a selectable text fallback. flowchart LR A[Outdoor photo] --> B[Browser canvas] B --> C[Local COCO-SSD inference] C --> D[Three prompts] D --> E[Phone-away timer] E --> F[Field note] F --> G[Text-only local result and share] The app contains no photo upload path or backend. The temporary photo URL is revoked and the preview canvas is cleared after inference. Only the latest note text, completion time, and detected class names go into localStorage; a blocked store leaves the note usable until reload. The first visit requires downloads of the libraries and model, so this is not an offline-first app. The model can be wrong and must never be treated as a safety or species identifier. A browser Network capture is still needed before claiming the no-upload property was independently verified. Local audit, October 11: The four browser self-checks passed. The pinned model loaded and analyzed a tiny valid PNG in a desktop browser, producing the honest zero-detections path. At desktop and 320 px simulated mobile widths, no horizontal overflow appeared; keyboard focus reached the skip link and file input. Temporary local stubs verified confident detection display, failed model loading with Retry, failed inference with Retry, unsupported/corrupt/oversized image errors, blocked storage, restart, and text-only share fallback. Both the full three-minute timer and 15-second judge mode reached the field-note screen. The synthetic images and stubbed detections are test fixtures, not outdoor evidence. Public HTTPS audit, October 11: An Amplify manual deployment contained only the three runtime files. Requests for the README, DEV draft, project instructions, and self-check page returned 404. In a fresh browser tab at the public URL, the pinned model became ready, analyzed a valid synthetic PNG with zero confident detections, produced three prompts, completed the full 15-second judge timer, and saved a field note. The synthetic image is a technical fixture, not outdoor evidence. Still to verify: physical mobile Chrome and camera permission, a real outdoor image and three-minute phone-away run, a reduced-motion device setting, native Web Share, and a Network capture showing no photo upload. Why Does Open Innovation Matter? An inspectable, replaceable open-source detector makes the photo-to-prompt loop possible without a private inference API. There is no per-image API fee and no account. Because the model's limited object vocabulary is visible, its misses become part of the experience: the person can notice sounds, changes, and details that a single frame cannot capture. Local inference makes a private-photo design possible while keeping the screen part short. My Agent Session This public curated DevRelay build and verification session records selected, paraphrased milestones. It contains no raw tool logs, private machine paths, credentials, or photos. {% agent_session 799 %} Credits and disclosure The app uses TensorFlow.js, COCO-SSD, and its COCO object classes. Project code is MIT licensed; upstream code, model weights, and data keep their own licenses. Codex AI produced this article and substantial project code at the project owner's request. The post is marked fully_autonomous in DEV's AI disclosure. The two screenshots were supplied by the project owner; no real outdoor-test account was provided.
tensorflowが8位に浮上。機械学習や深層学習モデルの開発からアプリへのデプロイまで対応するオープンソースプラットフォームです。安定したPythonやC++ APIを提供し、研究者や開発者におすすめです。 tensorflow/tensorflow
今日のGitHubトレンド tensorflow/tensorflow TensorFlowは、機械学習のためのエンドツーエンドのオープンソースプラットフォームです。 包括的で柔軟なツールやライブラリのエコシステムを提供し、研究者が最先端の機械学習を追求することや、開発者が機械学習を活用したアプリケーションを効率的に構築し展開することを目的としています。