Inspiration
I live in a rural region of Brazil whose economy, identity, and daily life are deeply connected to agriculture. Here, what happens inside a field affects much more than one harvest: it influences local businesses, jobs, families, and entire towns.
Yet many advanced precision-agriculture and geospatial tools are still inaccessible to smaller producers. Sentinel-2 imagery is publicly available, but turning it into useful information requires finding suitable scenes, filtering clouds, aligning spectral bands, processing large raster files, calculating indices, and interpreting a time series.
The data may be free, but the expertise required to use it is not.
That gap inspired 1415 Agri. We asked a simple question: could Gemini make satellite analysis feel less like specialist software and more like a conversation with someone who understands the producer’s field?
The satellites measure. Gemini reasons. The farmer decides.
What it does
1415 Agri helps farmers discover which parts of their fields deserve attention.
The farmer identifies a field, provides the crop-season dates, and confirms the cultivated boundary. The platform then searches real Sentinel-2 imagery and processes visible, red-edge, near-infrared, and short-wave infrared bands.
Deterministic software calculates NDVI, NDRE, and NDMI across multiple dates and divides the field into relative-development zones. These zones reveal areas that have behaved differently from the rest of the same field over time.
Gemini 3.5 Flash, running on Vertex AI, coordinates specialized agents through Google ADK. It selects the appropriate tools, examines the persisted evidence, compares dates and zones, and explains in accessible language where the farmer should inspect first and why.
The system does not claim to diagnose diseases, water stress, nutrient deficiencies, or pests from space. A spectral anomaly can have several possible causes. Our goal is safer and more practical: reduce a large field to a smaller, evidence-backed area that deserves an in-person inspection.
How we built it
We designed the architecture around a clear separation between measurement and reasoning.
A deterministic geospatial worker processes Sentinel-2 L2A imagery using Python, Rasterio, NumPy, Shapely, and scikit-learn. It handles cloud masks, band alignment, calibration, spectral-index calculation, time-series comparison, and zone generation.
Gemini 3.5 Flash does not calculate or modify pixel values. Instead, it receives compact, structured evidence produced by the geospatial pipeline. Through Google ADK, a coordinator delegates requests to boundary, temporal-analysis, and evidence specialists. MCP tools provide a controlled interface to satellite metadata and stored analysis results.
The application uses:
- Vertex AI for Gemini 3.5 Flash
- Google ADK for the multi-agent workflow
- Cloud Run for the web application, agent service, MCP service, and Sentinel worker
- Cloud Tasks for asynchronous and idempotent processing
- Firestore for fields, analyses, sessions, feedback, and provenance
- Cloud Storage for generated maps and GeoJSON artifacts
- Sentinel-2 L2A imagery from public Earth Search and AWS Open Data sources
The interface works in Portuguese and English and was designed to be usable on a phone, without requiring the farmer to understand satellite catalogs or remote-sensing software.
Challenges we faced
Satellite imagery is powerful, but real-world processing is rarely simple. Scenes may be cloudy, incomplete, distributed across adjacent tiles, acquired on different grids, or affected by invalid pixels. The required bands also have different spatial resolutions and must be aligned before comparison.
We addressed these challenges by applying explicit cloud and invalid-pixel masks, preserving calibration metadata, reprojecting observations to a canonical grid, limiting raster reads to the field boundary, and storing the provenance of every result.
The second major challenge was preventing an AI-generated explanation from sounding more certain than the evidence justified. We created strict boundaries between deterministic calculations and Gemini’s reasoning. The platform reports observed differences, cites the dates and indices behind its conclusions, and recommends field inspection instead of presenting a remote diagnosis.
We also kept the farmer in control: the cultivated boundary must be confirmed, consequential actions require explicit intent, and repeated agent calls cannot accidentally create duplicate analyses.
What we learned
Our most important lesson was that Gemini’s greatest value here is not replacing remote-sensing algorithms. Its value is coordinating them, choosing the right tools, retaining the farmer’s context, asking for missing information, and translating complex evidence into an understandable next step.
We also learned that accessibility does not require hiding uncertainty. A useful agricultural AI should clearly distinguish between what the satellite measured, what the evidence may suggest, and what still needs to be verified in the field.
1415 Agri turns a workflow that normally demands specialized software and technical knowledge into a guided experience centered on one practical question:
Where should I look first?
What’s next
The next steps include testing the platform across more crops and authorized farms, incorporating agronomist-reviewed field observations, evaluating additional satellite constellations, and adding optional drone imagery for higher-resolution inspections.
Our long-term goal is to make advanced geospatial intelligence available to producers who could benefit from it most—while keeping scientific evidence, local knowledge, and the farmer’s final decision at the center of the product.## Inspiration
Built With
- artifact-registry
- cloud-build
- cloud-logging
- cloud-run
- cloud-storage
- cloud-tasks
- django
- docker
- earth-search
- firestore
- gemini-3.5-flash
- geojson
- google-adk
- google-cloud
- html5
- javascript
- model-context-protocol-(mcp)
- numpy
- python
- rasterio
- secret-manager
- sentinel-2
- stac
- vertex-ai
Log in or sign up for Devpost to join the conversation.