Flutter starter kit for building Liquid Galaxy apps with tours, KML, external APIs, and AI-assisted workflows using Gemini.
This repository is my submission for the Liquid Galaxy Agentic Programming Contest β a competition focused on Agentic Programming and the "AI tsunami". The challenge: build an Antigravity-powered environment that automates the development of Liquid Galaxy Flutter applications using Google's Antigravity framework with Gemini as the exclusive LLM.
I built an agentic system β an Antigravity package with 33 specialized agent skills, 5 architecture rules, and 4 workflows that can generate production-ready LG Flutter applications from scratch. The agent pipeline guides students through an 11-stage journey from environment setup to a deployed APK, enforcing best practices and verifying understanding at every checkpoint.
| # | Deliverable | Description | Status |
|---|---|---|---|
| 1 | Starter Kit | Flutter "skeleton" with LG best practices built in | flutter_client/ |
| 2 | agent/ Folder | 33 skills, 5 rules, 4 workflows β the core agentic system | .agent/ |
| 3 | Demo Repository | Sample app created entirely by the agent system | π Separate repo |
| 4 | Video Demo | Walkthrough of repository, agent skills, and resulting app | π₯ Separate |
| 5 | Technical Documentation | This README + comprehensive DOCUMENTATION/ folder |
LG-Task2-Controller β A demo application built entirely using this starter kit and the Antigravity agent system. Visualizes real-time USGS earthquake data on a Liquid Galaxy rig with KML heatmaps, camera tours, and multi-screen overlays.
- About the Contest
1.1. What I Built
1.2. Deliverables
1.3. Demo App - Main Workflow
- Agentic Architecture
- Agent Skills Overview
- CI/CD Pipeline
- Key Features
- Getting Started with Antigravity
7.1. Step-by-Step: From Install to Running App
7.2. Prompts to Explore the Starter Kit
7.3. How GUIDE.md Powers the Agent - Installation
- Running the Project
9.1. Standard Start (3-Screen Rig)
9.2. Custom Rig Configuration
9.3. Screen Mapping (3-Screen Rig)
9.4. Building for Release
9.5. Node.js Server (Optional) - Architecture Overview
10.1. The Flutter App
10.2. The LG Rig
10.3. App β Rig Communication
10.4. The 5-Layer Import Matrix - What Can You Build?
- App Screens & Controls
12.1. 5 Core LG Operations (Task 2 Minimum) - Expert Agent Pipeline
13.1. Conversational Auto-Chain
13.2. Full Skill Roster (33 Skills)
13.3. 5 Enforced Architecture Rules - Educational Notes
14.1. Professional Quality Tools - Dependencies
- References & Resources
- Future Work
17.1. Data Visualization
17.2. Educational Tours
17.3. Satellite Tracking
17.4. AI-Powered Apps
17.5. Rig Management - Acknowledgments
- License
| Document | Description |
|---|---|
| Architecture | 5-layer system design, import matrix, data flow diagrams |
| Service API Reference | Complete method signatures for all services |
| Setup & Configuration | Prerequisites, build overrides, secure storage, rig config |
| Agent System | 11-stage pipeline, 33 skills, auto-chain details |
| Screens & UI | Every screen β purpose, route, widgets, behavior |
| CI/CD & Quality | GitHub Actions, static analysis, quality standards |
| Node.js Server | Companion server endpoints, WebSocket API |
| Repository Map | Complete annotated file tree |
| LG Development Guide | Comprehensive Liquid Galaxy + Flutter guide (onboarding, KML, rig setup, best practices) |
| Code of Conduct | Community standards and behavior expectations |
| Contributing | How to contribute, code standards, PR checklist |
| Security Policy | Vulnerability reporting and security practices |
A professional, production-grade starter kit for building Liquid Galaxy applications using Flutter, Dart, SSH/KML, and Node.js.
This project provides everything you need to build, test, and deploy Flutter apps that interact with the Liquid Galaxy multi-screen Google Earth system β from earthquake visualizers and satellite trackers to guided tours and interactive dashboards. It ships with Antigravity, a 33-skill AI engineering mentor that teaches you the full stack while you build.
The end-to-end development flow from starter kit to deployed LG application:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MAIN WORKFLOW β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β STARTER βββββΆβ AGENT βββββΆβ FLUTTER βββββΆβ LG β β
β β KIT β β PIPELINE β β APP β β RIG β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β β β β β
β Template code 11-stage flow Your custom Multi-screen β
β + services + AI mentoring LG application Google Earth β
β + architecture + code review + external API visualization β
β + KML tours β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Developer Journey: β β
β β 1. Clone starter kit β β
β β 2. Run `lg-env-doctor` β validates environment β β
β β 3. Run `lg-init` β scaffolds new app from template β β
β β 4. Brainstorm β Plan β Build (agent-guided) β β
β β 5. Code review + security scan β β
β β 6. Build APK β Deploy β Connect to LG rig β β
β β 7. Quiz β Graduate π β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The Antigravity agent system is organized into layers that separate concerns:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AGENTIC ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β WORKFLOWS (Orchestration Layer) .agent/workflows/ β β
β β βββββββββββββββ ββββββββββββββββ ββββββββββββ ββββββββββββ β β
β β βfull-pipeline β βgenerate-app β βtest-rig β βtest-ios β β β
β β β (11 stages) β β(flutter init)β β(flutter) β β(emulator)β β β
β β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββ¬ββββββ ββββββ¬ββββββ β β
β βββββββββββΌβββββββββββββββββΌβββββββββββββββΌβββββββββββββΌβββββββββ β
β β β β β β
β βββββββββββΌβββββββββββββββββΌβββββββββββββββΌβββββββββββββΌβββββββββ β
β β SKILLS (33 Specialized Agents) .agent/skills/ β β
β β β β
β β Pipeline: env-doctor β shield β init β brainstorm β β β
β β viz-architect β plan β exec β review β quiz β β
β β β β
β β Builders: data-pipeline, ui-scaffolder, kml-craftsman, β β
β β logic-builder, file-generator, ssh-controller β β
β β β β
β β Quality: critical-advisor, tester, debugger β β
β β DevOps: github-agent, flutter-build, emulator-manager β β
β β Teaching: learning-resources, resume-pipeline β β
β ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ β
β β β
β ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββ β
β β RULES (5 Architecture Guards) .agent/rules/ β β
β β ββββββββββββββββ βββββββββββββββββ ββββββββββββββββββββββββ β β
β β βlg-architectureβ βflutter-best- β β layer-boundaries β β β
β β β(rig + SSH) β βpractices β β (5-layer enforcement)β β β
β β ββββββββββββββββ βββββββββββββββββ ββββββββββββββββββββββββ β β
β β ββββββββββββββββ βββββββββββββββββ β β
β β βkml-standards β βdart-style β Enforced on EVERY β β
β β β(KML 2.2) β β(Effective Dart)β code generation β β
β β ββββββββββββββββ βββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β GUARDRAIL: Critical Advisor β β
β β Active across ALL stages β blocks progress if student β β
β β skips understanding. "Explain it or the pipeline stops." β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 33 AGENT SKILLS BY CATEGORY β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β π΅ PIPELINE CORE (11 skills β the main 11-stage journey) β
β ββββββββββββββ ββββββββββ ββββββββ ββββββββββββββ ββββββββββββββ β
β βenv-doctor βββshield βββinit βββflutter-initβββbrainstormerβ β
β β(validate) β β(scan) β β(repo)β β(flutter) β β(design) β β
β ββββββββββββββ ββββββββββ ββββββββ ββββββββββββββ ββββββββββββββ β
β ββββββββββββββ ββββββββββ ββββββββ ββββββββββββββ ββββββββββββββ β
β βviz-architectβββplan- βββexec βββcode- βββquiz-master β β
β β(storyboard)β βwriter β β(build)β βreviewer β β(graduate) β β
β ββββββββββββββ ββββββββββ ββββββββ ββββββββββββββ ββββββββββββββ β
β + setup-guide β
β β
β π’ ARCHITECTURE (7 skills β code generation) β
β data-pipeline Β· ui-scaffolder Β· kml-craftsman Β· kml-writer β
β logic-builder Β· file-generator Β· ssh-controller β
β β
β π‘ QUALITY (4 skills β enforcement) β
β critical-advisor Β· tester Β· debugger Β· dependency-resolver β
β β
β π΄ DEVOPS (5 skills β build & deploy) β
β github-agent Β· flutter-build Β· devops-agent β
β emulator-manager Β· demo-recorder β
β β
β π£ CONVERTERS (3 skills β transformation) β
β api-integrator Β· dart-converter Β· code-converter β
β β
β π TEACHING (3 skills β learning) β
β learning-resources Β· resume-pipeline Β· nanobanana-sprite β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CI/CD PIPELINE β
β 3 GitHub Actions Workflows β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 1. flutter-ci.yml (on every push & PR) β β
β β ββββββββββββ ββββββββββββ ββββββββββββ β β
β β β checkout ββ β flutter ββ β flutter β β β
β β β + setup β β analyze β β test β β β
β β ββββββββββββ ββββββββββββ ββββββββββββ β β
β β Blocks merge if lint errors or test failures β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 2. flutter-build.yml (on release tags) β β
β β ββββββββββββ ββββββββββββ ββββββββββββ β β
β β β checkout ββ β build ββ β upload β β β
β β β + setup β β APK β β artifact β β β
β β ββββββββββββ ββββββββββββ ββββββββββββ β β
β β Produces release APK for contest submission β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 3. security-scan.yml (on push to main) β β
β β ββββββββββββ ββββββββββββ ββββββββββββ β β
β β β secret ββ β dep auditββ β Node.js β β β
β β β scanning β β (pub) β β npm auditβ β β
β β ββββββββββββ ββββββββββββ ββββββββββββ β β
β β Scans for hardcoded secrets, vulnerable dependencies β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Flutter + LG Integration: Pre-wired Flutter app with SSH, KML generation, and LG rig communication out of the box. Connect your phone to a 3/5/7-screen Google Earth rig in minutes.
- Complete Service Layer:
- LG Service: High-level facade β
sendLogo(),flyTo(),sendPyramid(),cleanKML(),orbit() - SSH Service: Raw SSH command execution to the LG master machine via
dartssh2 - KML Service: Stateless KML XML generator β placemarks, tours, overlays, 3D objects, time animations
- API Services: Example data integrations (USGS earthquakes) ready for extension
- LG Service: High-level facade β
- 5-Layer Enforced Architecture: Strict import boundaries between Presentation β Orchestration β Providers β KML β Transport. Violations are blocked automatically.
- Material 3 UI: Modern Flutter design with light/dark themes, Provider state management, responsive layouts, and an interactive workflow visualizer.
- Antigravity AI Mentor: 33 agent skills, 5 architecture rules, 4 workflows β a conversational 11-stage pipeline that guides you from zero to deployed APK.
- Dynamic Rig Configuration: Configurable for any screen count (3, 5, 7) via
config.dart. Screen numbering, logo placement, and KML targeting adjust automatically. - Node.js Companion Server: Optional backend with Express + WebSocket for data processing, API proxying, and real-time communication.
- CI/CD Ready: 3 GitHub Actions workflows β continuous integration, APK builds, and security scanning.
This section walks you through installing Antigravity, cloning this starter kit, and using the AI agent system to build your own Liquid Galaxy Flutter app β all from inside the Antigravity application.
Reference: The agent system uses
GUIDE.mdas its primary knowledge source for Liquid Galaxy concepts, KML management, rig architecture, Flutter best practices, and GSoC deliverables. Antigravity automatically reads this file for context when answering your questions.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 1: Download Antigravity β
β β
β Visit: https://goo.gle/gemini-code-assist-antigravity β
β β
β Antigravity is a standalone desktop application powered by β
β Google Gemini. It provides: β
β β’ An AI chat interface for conversational coding β
β β’ Background agents that run tasks autonomously β
β β’ Full terminal, file editor, and workspace management β
β β’ Built-in Git integration β
β β
β Download β Install β Launch the Antigravity app β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
What is Antigravity? It's Google's agentic coding application β think of it as an AI-powered IDE that can read your entire project, run terminal commands, edit files, and guide you through complex development tasks using Gemini.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 2: Clone LGFlutterStarterKit inside Antigravity β
β β
β Open the Antigravity chat and type: β
β β
β π¬ "Clone the repo β
β github.com/AshishYesale7/LGFlutterStarterKit β
β and open it as my workspace" β
β β
β The agent will: β
β β
Clone the repo into Antigravity's scratch directory β
β β
Open the workspace with all files visible β
β β
Detect the .agent/ folder (33 skills, 5 rules) β
β β
Load GUIDE.md as context for LG-specific questions β
β β
β Your workspace will look like: β
β ~/.gemini/antigravity/scratch/ β
β βββ LGFlutterStarterKit/ β
β βββ .agent/ β 33 skills + 5 rules + 4 workflows β
β βββ flutter_client/ β Starter Flutter app template β
β βββ server/ β Node.js WebSocket server β
β βββ demo/ β Verified plugin stack reference β
β βββ GUIDE.md β LG development guide (agent reads) β
β βββ README.md β You are here! β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 3: Explore the Antigravity Chat + Background Agents β
β β
β Antigravity has TWO ways to interact with the AI: β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π¬ CHAT (Interactive) β β
β β βββββββββββββββββββββββββββββββββββββββββββββ β β
β β Type prompts in the chat panel. β β
β β The agent responds conversationally. β β
β β Use for: questions, brainstorming, reviews, β β
β β learning LG concepts, quick edits. β β
β β β β
β β Example: β β
β β π¬ "Explain how SSH works with the LG rig" β β
β β π¬ "What KML elements do I need for a flyTo?" β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π BACKGROUND AGENTS (Autonomous) β β
β β βββββββββββββββββββββββββββββββββββββββββββββ β β
β β Agents run in the background β they read files, β β
β β execute terminal commands, edit code, run tests, β β
β β and commit changes WITHOUT blocking you. β β
β β β β
β β Use for: scaffolding entire features, running β β
β β builds, code reviews, security scans, test gen. β β
β β β β
β β Example: β β
β β π¬ "Run lg-init to create my LG-EarthquakeViz β β
β β app in a new repo" β β
β β β Agent runs in background: creates dir, copies β β
β β template, runs flutter create, inits Git, β β
β β sets up GitHub repo β while you keep working. β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 4: Run the Environment Doctor β
β β
β π¬ "Run lg-env-doctor to check my setup" β
β β
β The agent validates your entire dev environment: β
β β
β β
Flutter SDK installed & on PATH β
β β
Dart SDK version >=3.0.0 β
β β
Git configured with user.name & user.email β
β β
JDK 17+ for Android builds β
β β
Android SDK with platform-tools β
β β
SSH client available (for LG rig communication) β
β β
β β If anything fails β the agent tells you exactly β
β how to fix it before continuing. β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 5: Initialize a new LG app from the starter kit β
β β
β π¬ "Run lg-init to create my app called EarthquakeViz" β
β β
β The agent (running in background) will: β
β β
β 1οΈβ£ Ask your project name β enforces LG-<TaskName> format β
β 2οΈβ£ Create a NEW sibling directory: β
β ~/.gemini/antigravity/scratch/ β
β βββ LGFlutterStarterKit/ (template β untouched) β
β βββ LG-EarthquakeViz/ (YOUR new app) β
β β
β 3οΈβ£ Copy scaffolding from the starter kit β
β 4οΈβ£ Run flutter create --platforms=android β
β 5οΈβ£ Install dependencies from demo/DEPENDENCIES.md β
β 6οΈβ£ Configure LG rig connection in config.dart β
β 7οΈβ£ Init Git + create GitHub repo β
β 8οΈβ£ Open BOTH repos side-by-side in the workspace β
β β
β β The agent STOPS at checkpoints to verify you understand β
β the architecture before moving forward. β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 6-7: The agent guides you through the full pipeline β
β β
β π¬ "Let's brainstorm β I want to visualize earthquake data" β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β BRAINSTORM β The agent discusses data sources, β β
β β KML strategies, screen layouts, and user flows. β β
β β Outputs: docs/plans/<date>-design.md β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β π¬ "Start the execution phase" β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β EXECUTE β Background agent implements features in β β
β β batches of 2-3 tasks. After each batch: β β
β β β’ Shows what was built β β
β β β’ Asks you to explain what the code does β β
β β β’ Only proceeds if you demonstrate understanding β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β π¬ "Run code review and security scan" β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β REVIEW β Professional audit: SOLID compliance, β β
β β flutter analyze, dart format, layer boundary check. β β
β β Shield scans for hardcoded secrets & credentials. β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 8: Build the release APK β
β β
β π¬ "Build my app for release" β
β β
β The agent runs the full build pipeline: β
β flutter analyze β Zero errors required β
β dart format --set-exit-if-changed . β Clean formatting β
β flutter build apk --release --split-per-abi β
β β
β Output: LG-EarthquakeViz-arm64-v8a-release.apk β
β β
β Install on your Android phone β connect to LG rig β done! π‘ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β STEP 9: Graduate! β
β β
β π¬ "start the quiz" β
β β
β The agent asks 5 questions covering: β
β β SSH rig communication β
β β KML structure & Google Earth rendering β
β β 5-layer architecture & import boundaries β
β β Provider state management β
β β Performance & multi-screen considerations β
β β
β Pass = you understand what you built (not just what AI wrote) β
β β
β π Quiz report saved to: docs/reviews/<date>-quiz-report.md β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ANTIGRAVITY APP LGFlutterStarterKit β
β βββββββββββββββ ββββββββββββββββββββ β
β β β reads from β β β
β β π¬ Chat ββββββββββββββββββΊβ .agent/ β β
β β Interface β skills & β βββ skills/ β β
β β β rules β βββ rules/ β β
β ββββββββ¬βββββββ β βββ workflows/ β β
β β β β β
β ββββββββΌβββββββ reads for β GUIDE.md β β
β β β LG context β (LG knowledge β β
β β π Back- βββββββββββββββββΊβ base) β β
β β ground β β β β
β β Agents β uses as β flutter_client/ β β
β β β template β (starter code) β β
β ββββββββ¬βββββββ β β β
β β β demo/ β β
β β uses verified β (plugin stack) β β
β ββββββββββversionsββββββββ β β
β βΌ ββββββββββββββββββββ β
β βββββββββββββββ β
β β YOUR NEW β Created as sibling directory β
β β LG APP β ~/.gemini/antigravity/scratch/LG-<Name>/ β
β β (separate β Own Git repo, own GitHub, own APK β
β β repo) β β
β βββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Insight: The starter kit is never modified. It serves as a read-only template and knowledge base. Antigravity reads the
.agent/skills,GUIDE.md, anddemo/references to create and guide YOUR app in a separate directory.
Use these prompts directly in the Antigravity chat to learn and build:
| Prompt | What It Does |
|---|---|
"Explain the 5-layer architecture of this project" |
Agent walks through Presentation β Transport layers with examples from the codebase |
"How does SSH communication work with the LG rig?" |
Agent explains SSHService, command execution, and /tmp/query.txt using GUIDE.md context |
"Show me how KML files are generated and sent" |
Agent traces the flow from KMLService β SSHService β LG rig |
"What is the master-slave architecture of Liquid Galaxy?" |
Agent explains using GUIDE.md β master node, slave screens, UDP sync |
"Explain the service layer pattern in this kit" |
Agent shows LGService facade, why screens never touch SSH/KML directly |
| Prompt | What It Does |
|---|---|
"Create a new screen that displays weather data on the LG rig" |
Agent scaffolds a screen + service + KML generation following architecture rules |
"Add an API service that fetches ISS position from NASA" |
Agent creates the service, model, and wires it into the provider layer |
"Generate a KML tour that orbits around 3 cities" |
Agent uses KMLService patterns to create a multi-stop animated tour |
"Help me send a ScreenOverlay logo to the left slave screen" |
Agent explains and implements using sendLogo() with proper screen targeting |
"Add a settings screen where users enter their LG rig IP" |
Agent extends SettingsProvider with flutter_secure_storage |
| Prompt | What It Does |
|---|---|
"Run flutter analyze and fix all warnings" |
Agent runs analysis and fixes lint issues following dart-style rules |
"Write unit tests for KMLService" |
Agent generates tests for pure KML generation functions |
"Check if my app follows the layer boundary rules" |
Agent scans imports and flags architecture violations |
"Scan my code for hardcoded secrets" |
Agent runs lg-shield to find exposed passwords or API keys |
| Prompt | What It Does |
|---|---|
"What are the essential LG functions my app must implement?" |
Agent lists requirements from GUIDE.md β KML cleanup, camera sync, orbit, QR connect |
"Explain KML coordinate order and common mistakes" |
Agent clarifies longitude,latitude,altitude order and why it matters |
"How should I handle camera tilt and zoom for 3D views?" |
Agent explains 45Β° tilt, 2km altitude rule from the LG guide |
"What are KML balloons and their limitations on LG?" |
Agent explains balloon rendering issues on legacy Google Earth |
"Walk me through the GSoC deliverables checklist" |
Agent lists APK builds, documentation, worklog, and GO webstore from GUIDE.md |
| Prompt | What It Does |
|---|---|
"Design a multi-screen visualization for satellite tracking" |
Agent runs viz-architect β storyboards, KML elements, performance budget |
"Create a data pipeline from USGS API to KML overlay" |
Agent wires API β Model β KMLService β SSHService end-to-end |
"Build an AI-powered tour generator using Gemini" |
Agent integrates Gemini API, generates waypoints, renders KML tours |
"Set up my project for the GO webstore submission" |
Agent runs flutter-build, prepares APK, checks deliverable checklist |
π‘ Tip: You don't need to memorize these prompts. Just say "ready" after each pipeline stage and the agent automatically suggests the next step. The prompts above are for when you want to explore specific topics or skip ahead.
How GUIDE.md Powers the Agent
The GUIDE.md file is a comprehensive Liquid Galaxy development guide covering:
- Onboarding β GSoC bonding period, mentor meetings, environment setup (Windows & macOS)
- GitHub Methodology β Branch strategy, PR workflow, commit conventions
- Liquid Galaxy Architecture β Master-slave model, UDP communication, screen synchronization
- Essential LG Functions β KML cleanup, camera sync, orbit controls, QR connection
- KML Management β XML structure, placemarks, tours, overlays, balloon limitations
- Flutter Fundamentals β Widgets, state, reactive programming, composition
- Best Practices β Camera tilt/zoom, 3D views, data transmission, rig compatibility
- Deliverables β APK builds, documentation, worklog, GO webstore
When you ask the agent any question about Liquid Galaxy, KML, rig setup, or GSoC requirements, it pulls context directly from this file to give accurate, project-specific answers.
- Clone the repository
git clone https://github.com/AshishYesale7/LGFlutterStarterKit.git
cd LGFlutterStarterKit- Install dependencies:
cd flutter_client flutter pub get
The default mode assumes a standard 3-screen Liquid Galaxy rig at 192.168.56.101.
cd flutter_client
flutter runEdit lib/config.dart to match your rig:
class Config {
static const String lgHost = '192.168.56.101'; // Your LG master IP
static const int lgPort = 22;
static const int totalScreens = 3; // 3, 5, or 7
static const String lgUser = 'lg';
static const String lgPassword = 'lg';
}ββββββββββββ ββββββββββββ ββββββββββββ
β Screen 3 β β Screen 1 β β Screen 2 β
β (Left) β β (Master) β β (Right) β
β Logo β β β Center β β β
ββββββββββββ ββββββββββββ ββββββββββββ
- Screen 1 (Master): Primary Google Earth display, receives camera commands via
/tmp/query.txt - Screen 3 (Left Slave): App logo displayed as
<ScreenOverlay>KML - Screen 2 (Right Slave): Additional overlays and legends
# Debug APK
flutter build apk --debug
# Release APK (contest submission)
flutter build apk --release
# With custom LG host override
flutter build apk --dart-define=LG_HOST=192.168.56.101cd server
npm install
npm start
# Server runs on http://localhost:3000The project follows a Client-to-Rig model. Your Flutter app communicates with the LG rig over SSH, sending KML data and camera commands. Google Earth on the rig handles all multi-screen rendering.
- Screens: UI for rig interaction β Splash, Connection, Dashboard, Settings, Help, Workflow Visualizer. Actions trigger KML/SSH operations on the rig.
- Services: All business logic.
LGServiceis the facade that coordinates SSH + KML. Screens never touch SSH or KML directly. - Providers: State management via
ChangeNotifier+MultiProvider. Settings, themes, and connection state. - Models: Immutable domain data classes. Pure data β no I/O, no side effects.
- LG Master (Screen 1): Receives SSH commands from your app. Writes KML files to
/var/www/html/kml/and camera commands to/tmp/query.txt. - Slave Screens: Google Earth instances that poll the KML files and render synchronized visualizations across all screens automatically.
- No Code Runs on the Rig: You don't deploy anything to the rig. You send KML over SSH, and Google Earth handles the rest.
User taps "FlyTo" in the app
β Screen dispatches action to LGService (facade)
β LGService calls KMLService.generateFlyTo(lat, lon, alt)
β KMLService returns a KML XML string (pure, no side effects)
β LGService calls SSHService.execute("echo '$kml' > /tmp/query.txt")
β SSH sends command to LG Master at 192.168.56.101:22
β Google Earth reads /tmp/query.txt and flies the camera
β All 3+ screens update simultaneously (Google Earth handles sync)
This is the core concept every student must understand. Your Flutter app sends data to the rig β Google Earth handles all multi-screen rendering.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PRESENTATION screens/, widgets/ β
β β Cannot import: dartssh2, http, kml_service β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ORCHESTRATION services/lg_service.dart β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β DATA PROVIDERS services/*_service.dart, providers/ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β KML GENERATION services/kml_service.dart β
β β Cannot import: dartssh2, ssh_service β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β TRANSPORT services/ssh_service.dart β
β β Cannot import: kml_service, models/ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Data flows one direction: API β Provider β Domain Model β KML Generator β SSH Transport β LG Rig
This starter kit supports any type of Liquid Galaxy application:
| App Type | Example | Data Source |
|---|---|---|
| Data Visualization | Earthquake heatmaps, volcano activity, weather patterns | USGS, NASA, OpenWeather APIs |
| Educational Tours | Historical city tours, museum walkthroughs, geography lessons | Static data, Wikipedia, custom |
| Satellite Tracking | ISS tracker, Starlink constellation visualizer | NASA TLE, CelesTrak |
| AI-Powered | AI travel itinerary generator, smart city explorer | Gemini API, OpenAI, custom ML |
| Rig Management | Dashboard for controlling Google Earth navigation | Direct SSH commands |
| Contest Task 2 | Basic LG operations (logo, pyramid, flyTo, clean) | None (built-in) |
Browse 100+ past GSoC LG projects for inspiration.
| Screen | Purpose |
|---|---|
| Splash | App branding, auto-navigates to Connection |
| Connection | Enter LG rig IP, port, credentials. Test connection. |
| Main Dashboard | Action cards: FlyTo, Send Logo, Send Pyramid, Orbit, Clean |
| Settings | Rig config, screen count, home city coordinates |
| Help/About | Usage instructions and LG architecture overview |
| Workflow Flow | Interactive n8n-style visualization of the 11-stage agent pipeline |
All screens are starting points β extend, replace, or add new ones for your project.
| Operation | Service Method | Effect on Rig |
|---|---|---|
| Send Logo | lgService.sendLogo() |
ScreenOverlay KML β left slave screen |
| Send 3D Pyramid | lgService.sendPyramid() |
Extruded colored polygon β master screen |
| FlyTo Home City | lgService.flyToHomeCity() |
Smooth camera flight to your coordinates |
| Clean Logos | lgService.cleanLogos() |
Remove overlays from slave screens |
| Clean KMLs | lgService.cleanKMLs() |
Clear all KML files from the rig |
This repository is "Agent-Hardened" with a built-in 11-stage mentoring system designed to guide you from zero to a "Wow-Factor" graduation.
Env Doctor β Shield (pre) β Init β Brainstorm β Viz Architect β
Plan Writer β Data Pipeline β UI Scaffold β Execute β
Code Review β Shield (post) β Quiz (Finale)
- Environment Doctor (
lg-env-doctor): Validates Flutter, Dart, Git, JDK, Android SDK, SSH β blocks pipeline until everything passes. - Security Pre-Flight (
lg-shield): Scans for hardcoded secrets, validates.gitignore, checksflutter_secure_storage. - Initialize (
lg-init): Creates your app in a separate directory withLG-<TaskName>naming, scaffolds architecture, inits Git + GitHub. - Brainstorm (
lg-brainstormer): Collaborative design focusing on visual impact on the LG rig, data sources, and architectural tradeoffs. - Viz Architect (
lg-viz-architect): Designs the multi-screen Google Earth experience β storyboards, KML elements, camera tours, performance budgets. - Plan (
lg-plan-writer): Detailed implementation roadmap with 5-10 minute tasks and built-in educational checkpoints. - Data Pipeline + UI Scaffold (
lg-data-pipeline+lg-ui-scaffolder): Wires API β Model β KML β SSH pipeline. Generates Flutter screens with Provider wiring. - Execute (
lg-exec): Guided implementation in batches of 2-3 tasks. Stops after every batch for a verification question. Will not auto-continue. - Code Review (
lg-code-reviewer): Professional OSS-grade audit β SOLID, DRY,flutter analyze,dart format, 80%+ test coverage. - Security Post-Flight (
lg-shield): Final scan on completed code. Blocks graduation if critical issues found. - Quiz (
lg-quiz-master): The "TV Show" finale! 5 high-stakes questions covering SSH pipelines, KML constructs, engineering principles, performance, and architecture.
** PROMINENT GUARDRAIL**: The Critical Advisor (lg-critical-advisor) is active throughout the entire journey. If you rush, skip explanations, or say "just build it" β it intervenes immediately. You must demonstrate understanding at every checkpoint.
After each stage, the agent automatically offers the next one:
"Project scaffolded! Now let's brainstorm features β what should your LG app visualize on Google Earth? Ready? π§ "
No manual skill-hunting required. Say "ready" and the pipeline flows.
| Category | Skills |
|---|---|
| Pipeline Core | lg-env-doctor, lg-setup-guide, lg-shield, lg-init, lg-flutter-init, lg-brainstormer, lg-viz-architect, lg-plan-writer, lg-exec, lg-code-reviewer, lg-quiz-master |
| Architecture | lg-data-pipeline, lg-ui-scaffolder, lg-kml-craftsman, lg-kml-writer, lg-logic-builder, lg-file-generator, lg-ssh-controller |
| Quality | lg-critical-advisor, lg-tester, lg-debugger, lg-dependency-resolver |
| DevOps | lg-github-agent, lg-flutter-build, lg-devops-agent, lg-emulator-manager, lg-demo-recorder |
| Converters | lg-api-integrator, lg-dart-converter, lg-code-converter |
| Teaching | lg-learning-resources, lg-resume-pipeline, lg-nanobanana-sprite |
| Rule | Enforces |
|---|---|
lg-architecture.md |
LG rig model, SSH communication, service layer patterns |
flutter-best-practices.md |
Provider patterns, widget decomposition, const constructors |
layer-boundaries.md |
5-layer import matrix, one-direction data flow |
kml-standards.md |
Valid KML 2.2 structure, lon,lat,alt coordinate order, tour conventions |
dart-style.md |
Effective Dart naming, /// documentation, formatting standards |
- No Free Code: The agent explains every architectural decision before writing code. If you can't explain it, the pipeline stops.
- Service Layer Pattern: All SSH, KML, and API logic lives in services β never in screens or widgets. This matches how Lucia's LG Master Web App structures the reference implementation.
- KML Coordinate Order: Google Earth uses
longitude,latitude,altitudeβ notlat,lon. Getting this wrong is the #1 beginner mistake. - SSH Lifecycle: Connections must be properly opened, verified, and disposed. The agent enforces
dispose()methods on services to prevent resource leaks. - Secure Storage: Passwords and API keys must use
flutter_secure_storageβ neverSharedPreferences. The Shield skill scans for this.
This starter kit comes pre-configured with the same tools used by professional Flutter teams:
flutter analyze: Static analysis β zero errors/warnings required at all times.dart format: Consistent code formatting enforced via--set-exit-if-changed.flutter test: Unit and widget tests with 80%+ coverage target.- GitHub Actions CI/CD:
flutter-ci.yml(lint + test),flutter-build.yml(APK build),security-scan.yml(automated scanning). - Provider + ChangeNotifier: Google-recommended state management for medium-complexity apps.
Students are expected to keep flutter analyze passing at all times!
| Package | Version | Purpose |
|---|---|---|
dartssh2 |
^2.9.0 | SSH communication with LG rig |
provider |
^6.1.1 | State management (ChangeNotifier) |
http |
^1.2.0 | REST API calls to external data sources |
xml |
^6.3.0 | KML XML generation & validation |
shared_preferences |
^2.2.2 | Persistent settings (non-sensitive) |
flutter_secure_storage |
^9.0.0 | Encrypted credential storage |
path_provider |
^2.1.1 | File system access |
web_socket_channel |
^3.0.1 | WebSocket to Node.js server |
| Resource | Link |
|---|---|
| Lucia's LG Master Web App (reference implementation) | GitHub |
| All Liquid Galaxy Lab Projects (100+ GSoC repos) | GitHub |
| GSoC 2026 Ideas Page | liquidgalaxy.eu |
| LG Mobile Applications Showcase | liquidgalaxy.eu |
| LG App Store | store.liquidgalaxy.eu |
| LG Core Installation | GitHub |
| KML Reference (Google) | developers.google.com |
| Flutter App Architecture (Google) | docs.flutter.dev |
For detailed technical documentation, see the DOCUMENTATION/ folder β architecture deep dives, service API reference, setup guides, agent system docs, and more. Full listing in the Index above.
This starter kit is designed to help build any kind of Flutter-powered Liquid Galaxy application. Here's how each app category can benefit from future enhancements:
| Enhancement | Description |
|---|---|
| KML Heatmap Generator | Built-in service to convert datasets (CSV, JSON, API) into KML heatmap overlays with configurable color gradients and intensity scaling |
| Real-Time Data Streaming | WebSocket-based live data pipeline β push updates from APIs (USGS, OpenWeather, NASA) directly to KML on the rig without manual refresh |
| Multi-Layer Overlays | Support stacking multiple data layers (e.g., earthquakes + fault lines + population density) on different slave screens simultaneously |
| Chart-to-KML Converter | Transform Flutter charts (bar, line, pie) into <ScreenOverlay> KMLs rendered on LG slave screens as dashboard panels |
| Enhancement | Description |
|---|---|
| Tour Builder UI | Drag-and-drop screen for creating multi-stop Google Earth tours β set waypoints, camera angles, dwell times, and narrative text |
| Narration Engine | TTS integration to auto-narrate tour stops as the camera flies between locations on the rig |
| Pre-Built Tour Templates | Ready-made tour packages (World Wonders, Solar System, Historical Battles, Ocean Exploration) that students can customize |
| Quiz-at-Waypoint | Embed interactive quiz questions at tour stops β the rig pauses until the user answers correctly on the phone |
| Enhancement | Description |
|---|---|
| TLE Parser Service | Built-in Two-Line Element parser to convert CelesTrak/NASA orbital data into real-time KML satellite positions |
| Orbit Prediction KML | Generate animated orbit paths showing past tracks and future predictions as KML <gx:Track> elements |
| Constellation Visualizer | Render entire constellations (Starlink, GPS, Iridium) with color-coded altitude bands across multiple screens |
| ISS Live Tracker | Pre-wired ISS tracking module with live crew info overlay and ground track KML β plug and play |
| Enhancement | Description |
|---|---|
| Gemini API Service | Ready-to-use service class for calling Gemini β text generation, image analysis, and structured JSON output for KML creation |
| AI Itinerary Generator | Describe a trip in natural language β Gemini generates waypoints β KMLService renders the tour on the rig automatically |
| Smart Data Enrichment | Feed raw location data to Gemini for context (history, demographics, ecology) displayed as info balloons on the rig |
| Natural Language Rig Control | Voice or text commands ("Fly to the Eiffel Tower and orbit at 500m") parsed by Gemini into LGService method calls |
| Enhancement | Description |
|---|---|
| Health Dashboard | Real-time monitoring of all rig screens β connection status, CPU/memory, Google Earth process health β displayed on the phone |
| Multi-Rig Support | Manage multiple LG rigs from a single app instance β switch between rigs, broadcast KML to all, or target specific rigs |
| Scheduled Tasks | Cron-style scheduler for automated rig operations β rotate demos every 10 minutes, clean KMLs at midnight, auto-relaunch GE |
| Remote Configuration | Push config changes (screen count, resolution, network settings) to the rig over SSH without physically accessing the machines |
Special thanks to the Liquid Galaxy community and mentors who make this project possible:
- Lucia Fernandez β For the LG Master Web App, the reference implementation that established the service-layer patterns and KML communication protocols used throughout this starter kit.
- Victor Sanchez β For mentoring the Liquid Galaxy project, driving the contest vision, and championing the integration of AI and agentic programming into the LG ecosystem.
- The Liquid Galaxy LAB Team β For maintaining the open-source infrastructure, documentation, and community that supports 100+ GSoC projects.
This project is licensed under the MIT License.
Copyright (c) 2026 Ashish Yesale.