Trina (ঀৃণ), a new open-source project submitted for the Hacktoberfest 2026 Open-Source AI Challenge, is flipping the script on productivity apps by requiring users to disconnect from the internet to play. The Android application, built by developer Susmita Biswas, uses a local open-weight AI to generate real-world outdoor challenges like cricket matches or kite flying, but enforces a strict "offline-first" rule: the Start button remains locked while mobile data or Wi-Fi is active. This design choice forces the AI layer to run entirely on-device or via a self-hosted server, eliminating reliance on third-party API calls during gameplay.

The Architecture of Disconnecting

The core technical challenge was ensuring the app functions without network access while still providing intelligent feature generation. Trina uses a model-agnostic interface that defaults to the Qwen3 family via Ollama or llama.cpp, allowing developers to swap models via config changes. When a user describes a new activity, such as "kite flying with friends," the local LLM drafts a schema-constrained ModuleIntent. This intent contains only metadata like movement type and safety concerns; it cannot dictate numerical values like points or thresholds. A deterministic compiler then converts this intent into a full module using fixed tables, ensuring that the AI never hallucinates game-breaking numbers.

Verification Without the Cloud

To maintain integrity without a constant server connection, Trina employs a hybrid verification system. Milestones are labeled based on their source: "Measured" (GPS/steps), "Evidenced" (photo), "Confirmed" (peer verification), or "Self-reported." For team sports like cricket, where GPS cannot verify specific actions like catching a ball, the app uses Ed25519 signed QR handshakes exchanged between phones offline. The server later validates these signatures and cross-references location data to flag anomalies, such as reciprocal confirmation rings or implausible counts. This approach ensures that self-reported actions earn titles but never points, preserving leaderboard fairness even in a decentralized environment.

Developer Notes on Offline Testing

The development process revealed critical pitfalls in simulating offline states. During the initial demo recording, the app failed to track minutes outside because the Android emulator’s "balanced" location accuracy mode relies on Wi-Fi and cell towers, which were disabled during the offline quest. This bug slipped through unit tests because they did not simulate actual radio shutdowns. The fix involved implementing a GPS-only profile for quests. The project is built with TypeScript across the stack, including a React Native (Expo) frontend and a Node/Express API, supported by 538 automated tests that include network-chaos scenarios to ensure sync integrity.

Key Takeaways

  • Trina enforces offline usage by locking the Start button when network radios are active, forcing local AI execution.
  • The local AI (Qwen3) generates schema-constrained intents that a deterministic compiler converts into game modules, preventing numerical hallucinations.
  • Peer verification for sports uses offline Ed25519 signed QR codes, with server-side validation for signature integrity and location plausibility.
  • The project highlights the difficulty of testing true offline states, as standard location modes often rely on disabled Wi-Fi/cell towers.
  • Built with MIT licensing, the stack includes React Native, Node/Express, and a pure rules engine that runs identically on-device and on-server.

The Bottom Line

Trina proves that local AI can be robust enough for real-world applications when paired with deterministic logic, but it also serves as a stark warning: if you aren't testing with your radios actually off, you aren't testing your offline app.