The Gemma 4 Good Hackathon

The Gemma 4 Good Hackathon · Impact Track · Global Resilience prize

Acuífero·Vigía

Built by Joaquín León Alderete, Lucas Ercolano, Joaquín Cadeiras, Fede Trejo, and Juan Andrés Quiroga Bonetto

A flood-warning prototype combining camera nodes, citizen reports, deterministic alert rules, and Gemma summaries. Code supports a templated SINAGIR export; performance figures are team-reported and no field pilot is documented.

I also participated in this hackathon with Memory Moment. This coverage was prepared independently after results were announced.

The idea worth stealing

The model enriches the alert; it never gatekeeps it.

Every layer of Acuífero·Vigía has a path that works when the model does not. A deterministic pixel check decides when a frame is worth reasoning about, so Gemma runs only once the water crosses a marker. Citizen reports are structured on the phone and queued until a signal returns. And the Decision Engine runs a deterministic rule path in parallel: if Gemma is slow, absent, or malformed, the alert goes out anyway, and when Gemma does answer it attaches its reasoning in Spanish, because Santa Fe spent two decades in court reconstructing who knew what and when.

What we checked

Date checked: .

Public repository at the submission revision, Kaggle writeup, and linked artifacts; code was read, not executed. Deployment checks and limits are described below.

Labels apply to each finding and the evidence described, not to the project as a whole.

Not independently verified means the available evidence was insufficient to confirm a claim. It does not mean the claim is false.

  1. The firewall is not OpenCV

    Partially verified

    The deterministic gate is pure-Python PIL. Its docstring says why: importing NumPy or forking a subprocess corrupted the LiteRT-LM Vulkan runtime on the Pi. It still yields a waterline ratio, rise velocity, and crossed-line flag. Source

    What we need: A Raspberry Pi test of the PIL gate alongside LiteRT-LM, with waterline outputs and runtime logs.

  2. The alert level never waits for the model

    Verified

    Rules over node, volunteer, and weather evidence compute the score and colour; the LLM adds a Spanish reasoning summary, and if Ollama is down a rule-fallback summary is recorded. Source

  3. Function calls are guarded

    Verified

    Gemma may call trigger_alarm, send_radio_payload, or notify_app; each call is validated with Pydantic, limited to six per hour per zone, and rejected outside Argentina’s bounding box. The SINAGIR export is CAP 1.2 XML, not a tool call. Source

Under the hood

Twenty-three seconds per frame
The team reports a warm median of 22.9 seconds for the E2B multimodal call on the Pi 5, which is why the gate exists and the capture budget is 300 seconds. E4B overflowed WebGPU buffers on the same board.
Twenty-one test files
The backend ships tests for the firewall, fusion, CAP export, tool guard, Rioplatense structuring, and LiteRT node; the Kaggle notebook replays recorded hardware output, not a live camera.

Nuance

We read the code at the May 18 merge and ran none of it; the latency and 82 percent structuring figures are the team’s own measurements on a reference deployment, and there has been no field pilot, which the writeup states. Its claim that function calling does the SINAGIR mapping is not what the code does: the mapping is a template, the tools are actuators.