The Gemma 4 Good Hackathon · Special Technology Track · Cactus prize
KawanIsyarat
Built by Pradana Yahya
An Android communication prototype with on-device Gemma, a Whisper fallback, and BISINDO classifiers. The shipped word model has eight labels, despite a sixteen-class claim; we did not install the APK.
I also participated in this hackathon with Memory Moment. This coverage was prepared independently after results were announced.
The idea worth stealing
Load the fallback model, use it once, unload it.
The builder describes a Pixel 6a memory budget for one model at a time. KawanIsyarat sends raw PCM straight to Gemma 4 for transcription, and only if that comes back empty or throws an exception does it pull Whisper Base into memory, transcribe, and immediately unload it so Gemma can reclaim the RAM for simplification. The same discipline runs through the app: thinking mode off after the builder reported two-minute replies, long recordings decimated before they reach the model, and Gemma’s vision coaching grounded with a reference library of BISINDO hand shapes it does not know on its own.
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.
-
Whisper is loaded only after Gemma gives up
Verified
The provider disposes Whisper, strips the WAV header, sends raw PCM to Gemma, and only on an empty result or an exception initializes Whisper, transcribes, and disposes it again before simplification. There is no timeout. Source
-
Thinking off, 256 KB guard on
Verified
cactus_wrapper sets enable_thinking_if_supported to false; recordings over 256 KB of PCM, about eight seconds, are decimated up to twice before the audio encoder sees them. Source
-
The shipped sign model knows eight words
Inconsistent
bisindo_wl_labels.json lists air, belajar, hari, maaf, makan, saya, terima_kasih, and tuli. The README and writeup describe a sixteen-class model at 86.2 percent, with different words. Source
What we need: The submitted APK’s model and labels with its evaluation output, or a corrected eight-class description.
Under the hood
- A 512-token context and four threads
- Cactus starts with n_ctx 512, an FP16 KV cache, batch size 1, and four of eight threads to leave room for the camera and the Flutter UI; the weights are Cactus’s INT4 Gemma 4 E2B.
- The reference library is a Dart map
- Fifty hand-shape descriptions, 26 BISINDO and 24 SIBI letters, are constants in gemma_service.dart and injected into every vision prompt so the coach has something to compare against.
Nuance
The APK is a 349 MB release from May 10 that we did not install; the Pixel 6a figures are the builder’s. The word-sign gap may be an older model left in assets, but the app loads the eight-class file. The alphabet classifiers, 26 and 24 classes, match their labels. One widget test exists.
Sources
Last updated: . Editorial updates do not imply a new technical check.
Builder credits reviewed: , using the official announcement, submission, and any linked credit sources.
Builder? Add context, request a correction, or ask for a re-check →
- Official winner announcementkaggle.com
- Submissionkaggle.com
- Repositorygithub.com
- Demoyoutu.be
- Live appkawanisyarat.pradanayahya.com
- Sign coach referencesgithub.com
- v1.0.0 APKgithub.com
- Whisper is loaded only after Gemma gives upgithub.com
- Thinking off, 256 KB guard ongithub.com
- The shipped sign model knows eight wordsgithub.com