Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › AI agents

SYSTEM://GRASS: Key Lessons from a One-Day Offline Game Build

By Freedom251 Team · · 10 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

An AI coding agent can build a playable outdoor quest game in a day when the design sharply separates reliable rules from generative behavior. SYSTEM://GRASS uses a phone as a lightweight browser terminal while a laptop on the local network runs quest generation, submission checks and narration through Ollama. Photos can be captured without connectivity, held in the browser’s IndexedDB buffer and uploaded when the phone reconnects to the laptop. The important qualification is that version one does not understand what appears in a photo: deterministic code checks metadata such as count, timestamp and file size, while a local Gemma model writes the in-game “System” voice. That boundary makes the prototype practical, private by design and honest about what the AI can—and cannot—do.

What exactly was built?

SYSTEM://GRASS is a local-first outdoor game created as a Hacktoberfest 2026 Week 1 “Touch Grass” submission. Each day, the System assigns one short outdoor micro-quest. The player goes outside, takes one to three photos as evidence and submits them. The game then returns a narrated verdict and updates a rank that runs from F through S.

As an Amazon Associate I earn from qualifying purchases.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ignoring a deadline is not merely a missed reminder. The game applies an XP penalty, so procrastination can push a player down the progression system. That consequence gives the loop more weight than a checklist that only awards cosmetic points.

The intended interaction is deliberately brief:

  1. Open the app and read the current quest.
  2. Go outside and complete the activity.
  3. Capture one to three photos.
  4. Submit the evidence and wait for the verdict.
  5. Check the narration, XP change and current rank.

The project is best understood as a focused systems demonstration, not a finished commercial game. It proves that an agent-driven build can connect a browser interface, an offline capture queue, a local API, a database and an on-device language model in a single day.

#1 Best Overall
Logitech G F310 Wired Gamepad Controller Console - Blue/Black | Console-like layout, 4-switch D-pad
  • With broad game support, the Logitech Gamepad F310 works with old standbys to today's biggest titles, so it's easy to set up and use with your favorite games.
  • Profiler software allows the gamepad to be programmed to perform keyboard and mouse commands for games without gamepad support.* * Requires software installation.
  • A familiar control layout that doesn't require a learning curve to be able to use, with all the same buttons as on an Xbox 360.
  • The unique floating D-pad rests on four switches-instead of a single pivot point-making it responsive to quick changes in direction.
  • The six-foot cord lets you lean back and play a comfortable distance from your PC monitor.

How does the local-first architecture work?

The phone is intentionally a “dumb terminal.” The laptop is the brain: it runs quest generation, the authoritative submission checks and the language model through Ollama. Both devices communicate over the local network rather than sending the game loop to a hosted AI service.

The documented stack is:

Layer Implementation Purpose
Backend runtime Python 3.13 Hosts the application logic
Web API FastAPI Connects the phone interface to quest and judging services
Storage SQLite Stores quest and result state locally
Frontend Vanilla JavaScript and CSS Runs in the phone browser without a build step
Inference Ollama with Gemma Generates quests and writes the System narration

This arrangement changes the usual mobile-AI trade-off. The phone does not need to carry a model or wait for a remote API, but the laptop must be running and reachable on the same network when the game needs to generate, submit or judge a quest. The model and database remain on the laptop; the browser handles presentation and temporary evidence storage.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How does offline photo capture and retry work?

Capture does not depend on an immediate network response. When a player takes a photo, the frontend writes it to an IndexedDB buffer in the browser. The app can therefore preserve evidence while the phone is temporarily disconnected from the laptop.

The queue attempts to flush at three predictable times:

  • when the browser receives its online event;
  • when the app loads;
  • when the player taps the manual flush control.

A queued row is deleted only after the server returns HTTP 200, meaning the submission was accepted, or HTTP 409, meaning the quest was already judged. In the 409 case, the interface loads and displays the existing verdict instead of creating a second result. That rule prevents a flaky connection from turning one outing into duplicate submissions or repeated XP changes.

The offline path is local-first rather than “offline forever.” The phone can collect evidence without a connection, but it eventually needs a route to the laptop on the local network so the queued item can be judged and narrated.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
8Bitdo Ultimate 2C Wireless Controller for Windows PC and Android, with 1000 Hz Polling Rate, Hall Effect Joysticks and Triggers, and Remappable L4/R4 Bumpers (Green)
  • Compatible with Windows and Android.
  • 1000Hz Polling Rate (for 2.4G and wired connection)
  • Hall Effect joysticks and Hall triggers. Wear-resistant metal joystick rings.
  • Extra R4/L4 bumpers. Custom button mapping without using software. Turbo function.
  • Refined bumpers and D-pad. Light but tactile.

Does the AI actually understand what is in the photo?

No. Version one explicitly does not inspect image pixels. Its 4GB VRAM budget supports a metadata-driven judge: deterministic code checks the number of photos, their freshness relative to the quest issue time, whether they arrived before the deadline and whether their file sizes are sane.

Those checks produce the authoritative PASS or FAIL skeleton. Gemma receives the quest and evidence metadata and turns that result into a dry “System” narration. It does not decide whether the player satisfied the quest.

“The model narrates; it never judges. A hallucination should never cost you XP.” — Samar Nathani

If generated narration conflicts with the deterministic result, the narration is discarded and a canned line is used. This is the key reliability boundary: language can make the result feel like a game, but it cannot override the rules that change a player’s progression.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The author summarizes the limitation plainly: “v1 does not understand pixels.” A local vision model or a separate convolutional-neural-network gate is described as future work, not as a capability shipped in this build. A photo showing a tree and a photo showing a wall are treated alike if their metadata passes the same checks.

Which model is used, and how can it be changed?

The primary narration model is gemma3:4b. The application supports a fallback chain so the laptop can use another locally installed model when the preferred one is unavailable.

Rank #3
GameSir Nova Lite 2 Wireless PC Controller Hall Effect Sticks | Hall Effect Triggers,2.4G & Wired 1000Hz Polling Rate, Remappable Buttons - Compatible with PC/Switch/Steam/Android
  • Multi-Platform PC Gaming Controller: Working with Switch, PC, Android, and iOS devices via Bluetooth, wired, and wireless dongle connections.
  • Hall Effect Joysticks: Delivering enhanced recentering performance for smoother control and superior anti-drift capability. Plus, with anti-friction rings.
  • 2-Way Trigger Lock: With trigger stops, gamers can toggle between short and long pull positions. Additionally, gamers can activate hair trigger mode by pressing M+LT/RT (triggers must be in the long pull position).
  • 1000Hz Polling Rate: This ensures that your inputs are registered almost instantaneously, minimizing lag and maximizing your performance during competitive play.
  • Mechanical Circular D-pad: Designed for quick reactions and accuracy in every direction, this D-pad elevates your gaming experience with superior responsiveness.
Order Model setting Role
1 gemma3:4b Primary local model
2 llama3.2 First fallback
3 qwen2.5:7b Second fallback

The active choice is switchable with the GRASS_MODEL environment variable. Changing it affects the model used for generated text; it does not change the deterministic photo-count, freshness, deadline or file-size checks. That separation lets an operator trade model size or speed without changing the rules that protect the score.

What happens from quest creation to rank update?

The full path is easier to reason about as a sequence of ownership changes between the browser, the rules engine and the language model.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Quest generation: the laptop’s backend asks the local model to produce the day’s micro-quest and presents it in the phone browser.
  2. Evidence capture: the phone records one to three photos. IndexedDB stores the evidence immediately, even if the laptop cannot be reached.
  3. Queue flush: an online event, app load or manual action sends the buffered item to the FastAPI backend.
  4. Rule evaluation: deterministic code checks count, timestamp freshness, deadline compliance and file-size sanity.
  5. Narration: Gemma receives the quest and metadata and writes the System-style explanation. It cannot alter PASS or FAIL.
  6. Conflict handling: if the narration disagrees with the rule result, the server uses a canned line instead.
  7. Persistence and progression: SQLite records the judged quest, the interface shows the verdict and the player’s rank and XP are updated. A missed deadline can trigger the documented XP penalty.

Because the server treats an already judged quest as a conflict-safe 409 response, retries are part of the normal design rather than an exceptional recovery path.

How was an AI agent able to build it in one day?

The one-day claim refers to an engineered workflow, not to asking an agent for one giant prompt and accepting whatever code it produced. Samar Nathani first froze a design document, then split implementation into ten contracts. Each contract began with a failing test, and every green change was committed and reviewed before the next task.

The reported result was:

Measure Reported value
Backend and frontend code About 2,200 lines
Tests 61 passing
Commits 20
Build window One day

This process gives the agent narrow acceptance criteria and gives the human a checkpoint after every change. The tests are especially important for the offline queue and judging boundary, where a plausible-looking implementation can still lose data or let generated text change a score.

The agent was useful for turning contracts into code, but the architecture still came from a human decision: put correctness in deterministic code and reserve the model for tone. Without that boundary, a one-day prototype could appear more intelligent while being less trustworthy.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
ManbaOne Interactive Screen Wireless Gaming Controller (Black) | for PC/Switch1/2/iOS/Android,Hall Effect Stick & Trigger,RGB Lighting,Remappable Buttons,1800mAh with Charging Dock
  • Supported Multi-Platform:Switch/Switch 2 (NO support wake-up function)/iOS/Android/Windows PC (Notice:Not compatible with Xbox, PlayStation or GeForce Now, For game platforms not mentioned, please consult customer service before buying)
  • Connection modes:Wired/Bluetooth/Wireless Dongle(Connect to PC via Bluetooth : Select iOS (phone) mode, but it's not recommended; Dongle is more stable)
  • 【Innovative Intelligent Interactive Screen】Manba One V2 wireless game controllers create a new era of controller screens; Equipped with a 2-inch display, no App & software needed, you can set the pc controller directly through the screen visualization, More convenient operation
  • 【Micro Switch Button】Manba One wireless controller has Micro Switch Button and ALPS Bumper; The 6-axis gyroscope function makes switch games more immersive
  • 【Customize Your Own Controller】The intelligent interactive screen allows you to easily set vibrations, buttons, joysticks,lights, etc., without the need for complex key combinations; 4 configurations can be saved to unlock your own gameplay for different games; The 4 back keys support macro definition settings, and you can activate the set character's ultimate move with one click

What does the build require?

The documented project assumes an existing phone and laptop, with the laptop providing the local server and model runtime. No physical accessory or hosted account is required by the build description.

A practical setup follows this order:

  1. Install Python 3.13 and the FastAPI-based backend on the laptop.
  2. Install Ollama and make the selected local model available, starting with gemma3:4b or using the supported fallback setting.
  3. Start the backend so it can serve the quest API, SQLite state and frontend assets.
  4. Connect the phone and laptop to the same local network and open the frontend in the phone’s browser.
  5. Create or receive the daily quest, capture the evidence and submit it. If the network drops, leave the item in the IndexedDB buffer and use the app’s retry behavior when connectivity returns.
  6. Review the verdict and rank change after the backend has completed deterministic checks and narration.

The project uses vanilla JavaScript and CSS, so there is no frontend build step to install or maintain. The setup burden is instead concentrated on the laptop: Python, the local model runtime and enough memory or VRAM to run the chosen model.

How fast is local narration?

The only explicit latency figure reported for the project is approximately 10 seconds for Gemma narration. That delay is the cost of running the language model locally, but the author considers it acceptable because the game’s purpose is to move the player away from the screen rather than keep interaction instantaneous.

The figure applies to narration, not to every part of the request path. Photo capture and queueing happen in the browser, while rule checks are deterministic; the documented timing does not provide separate measurements for those stages.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What are the privacy and reliability trade-offs?

Local-first has a concrete meaning here: evidence can be captured without an internet connection, and the model runs on the laptop through Ollama instead of a cloud inference endpoint. Photos travel through the phone-to-laptop local workflow and are held in the browser until delivery succeeds or the server confirms that the quest was already judged.

The trade-off is operational. The laptop is a required part of the game loop, the phone must eventually reach it, and local model inference is slower than a lightweight remote text request might be. The design also inherits the laptop’s storage and availability limits; the source does not claim encryption, multi-device synchronization or a hosted backup service.

Best Value
Sale
VOYEE PC Controller, Wired Compatible with Xbox 360 & Slim/Windows 10/8/7 | Upgraded Joystick, 7.2ft Cord, Ergonomic Grips, Double Shock | Enhanced (Black)
  • Wide Compatibility: VOYEE wired 360 controller compatible with Microsoft Xbox 360 & Slim/ PC (Windows 11/10/8.1/8/7). Just plug and play, not for FPS games
  • Enhanced Game Controller: Upgraded PC 360 controller with new left and right trigger buttons and more sensitive joysticks and buttons - Respond quickly to player commands without delay
  • Astonishing Gaming Experience: VOYEE wired pc controller provides rumble control and according to the game automatic vibration feedback to enhanced game experience and match your personal preference
  • Ergonomic Design: Grips's contours have been designed to fit your hands more comfortably to hold for a long time and 7.2ft cord allows greater
  • What You Get: VOYEE wired 360/PC Controller, 45 Days Money Back, 365 Days Guarantee Against quality defect and 24 Hours Friendly Customer Support

Reliability comes from refusing to let the model own state transitions. A model can produce colorful prose or fail to respond, but it cannot turn a failed metadata check into a pass or charge XP twice after a retry.

What did the demo prove, and what did it leave out?

The recorded demonstration covered the main quest-submit-judge path. The author notes that the recorded photos were indoor shots, so the video does not establish that the game recognizes real outdoor scenes. The offline path existed in code and tests rather than being filmed in the demonstration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

There are also no published figures for user count, accuracy, revenue, market size or a controlled field study. The project should therefore be evaluated as a working technical pattern and an honest prototype, not as evidence that an AI referee can reliably verify outdoor behavior.

How should you evaluate a similar outdoor AI game?

Two projects can both advertise “AI quests” while making very different promises. Check these dimensions before assuming they work the same way:

  • Inference location: does the model run locally, in the cloud or through a hybrid?
  • What the model sees: does it inspect pixels, or only receive metadata such as timestamps and file sizes?
  • Offline behavior: can a player capture evidence without connectivity, and when is the retry queue flushed?
  • Duplicate protection: what response tells the client that a quest has already been judged?
  • Rule authority: can generated text alter a pass, fail or reward, or is it presentation only?
  • Setup burden: does the player need a separate computer, local network and model runtime?
  • Latency: is the response time compatible with the game’s intended rhythm?
  • Consequences: do missed deadlines affect rank or XP, or are rewards purely cosmetic?

SYSTEM://GRASS is distinctive less because it claims sophisticated vision than because it states exactly where vision is absent and protects the game state accordingly.

Frequently Asked Questions

Can I play when the phone has no internet connection?

You can capture evidence while offline because the browser writes photos to IndexedDB immediately. The phone still needs to reach the laptop over the local network later so the queue can be judged; internet access is not the dependency, local reachability is.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What changes when I set GRASS_MODEL to another option?

The variable selects the local language model used for quest or narration text. It does not replace the deterministic checks, so switching models cannot change the stored pass/fail logic or the duplicate-submission behavior.

Is a roughly 10-second response a failure of the design?

Not according to the project’s stated goal. The delay is the reported cost of local Gemma narration, and the author accepts it because the interaction is meant to send the player outdoors rather than maximize screen time.

Could a later version verify the actual scene in a photo?

Yes, but that would require adding a local vision model or a separate image-classification gate. The safer extension is to use vision as another signal while keeping deterministic checks authoritative, because the shipped version intentionally does not inspect pixels.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

AI agentsFastAPIgame developmentlocal-first appsoffline-firstOllamaPrivacySQLite

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.