Waar het om gaat
Elk AI-hulpmiddel dat een ambtenaar vandaag heeft, stopt bij dezelfde deur: vertrouwelijk, persoonsgegevens, opnames. Publieke chatbots lekken (de Autoriteit Persoonsgegevens telt tientallen meldingen; een gemeente vond cv's en jeugdzorgdossiers terug in een chatbot). Microsoft Copilot staat bij het Rijk op oranje. En zelfs Vlam, de eigen assistent van de rijksoverheid, mag geen vertrouwelijke of privacygevoelige informatie verwerken.
Achter die deur zit het saaiste en duurste werk: notuleren (ambtenaren vergaderen 40 tot 60 % van hun tijd), lakken (de Woo kost €150 miljoen per jaar, 134 mensuur per verzoek bij ministeries), beoordelen, rapporteren.
De stelling: een model dat op het toestel blijft heeft voor dat werk geen toestemming nodig. Geen DPIA-gesprek, geen verwerkersovereenkomst, geen bereik. Openen en doen. De vraag was of dat écht kan, op een gewone telefoon, met Nederlands — en of het dan ook nog leuk is.
Wat er gebouwd is
Drie pagina's, één codebasis, nul servers die iets verwerken. De machine levert statische bestanden; de modellen draaien in de browser via WebAssembly en WebGPU — op een telefoon, een laptop, een iPad.
AntBench — het lab
Alle browser-modellen van Desert Ant Labs los te proberen: spraak, sprekers, taal, onderwerpen, persoonsgegevens, beeld. Plus de vliegtuigtest die bewijst dat niets het toestel verlaat.
De twaalf klussen — de menukaart
Overleg → notulen, Woo lakken, inspraak, veldinspectie, hoorzitting, memo-checklist, archiveren, toegankelijkheid… met per klus de cijfers en één knop.
Ketting — zelf rijgen
Kralen uit een voorraad slepen in de volgorde die je wilt. Elke kraal geeft zijn resultaat door aan de volgende. Groen als het past, rood als er iets mist, grijs als de kraal nog niet bestaat.
De ketting: één pakket dat doorgegeven wordt
Het idee dat alles bij elkaar bracht: een klus is een ketting van kralen. Elke kraal doet één ding en geeft zijn resultaat door in één pakket — tekst, audio, beeld, woorden met tijd, sprekers, taal, onderwerpen, persoonsgegevens, spraak. Een kraal "past" als alles wat hij nodig heeft op dat punt in de ketting al in het pakket zit. Dat is meteen de uitleg voor de gebruiker: groen past, rood mist iets, grijs bestaat nog niet.
De voorraad telt twintig kralen van drie soorten leveranciers: de SDK van Desert Ant Labs (herkennen: spraak, sprekers, taal, onderwerpen, persoonsgegevens, beeld), open modellen die lezen, schrijven, vertalen en spreken (Tesseract, Opus-MT, Qwen3, Piper), en eigen kralen naar ideeën van Michiel Buisman — de vragenlijst willen/mogen/kunnen, de checklist, zoeken met bronvermelding.
Wat de metingen zeiden
Elke stap is gemeten, niet aangenomen. Een paar uitkomsten die het verhaal hebben veranderd:
| Meting | Uitkomst | Gevolg |
|---|---|---|
| Clear (opschonen) vóór Voz | Transcript aantoonbaar slechter; de ruisonderdrukking haalt spraakdetail weg | Clear standaard uit in de keten, wel beschikbaar voor afspeelbare audio |
Clear's standaard maxGainDB = 9 dB | Een stille opname (−43 LUFS) blijft stil (−34) | Gain-cap naar 40 dB; eigen BS.1770-meter omdat de SDK alleen de invoer meet |
| Whisper large-v3-turbo op dezelfde 19 min | Niet beter dan Voz: nettere zinnen, meer weggelaten, zelfde eigennamen fout | De opname is de beperking, niet het model; microfoon dichterbij wint meer dan welk model ook |
| Moderator op een portret (gezicht met hand) | "nude 70 %" → NSFW; de SDK neemt de hoogste regio-score als totaal | Drempel en policy instelbaar; vals-positief gemeld |
| Geheugen bij 19 min audio op een telefoon | Tab crasht bij het samenstellen (48 kHz Float32 + WAV + ZIP tegelijk) | Terug naar 16 kHz, buffers vrijgeven, WAV buiten de ZIP |
| Modelcache | De browser-SDK bewaart modellen alleen in het paginageheugen (349 MB Voz per lading) | Eigen service worker cachet modellen en app; herladen en vliegtuigmodus werken |
| Telemetrie | Bij elke modellading één verzoek naar events.desertant.com/api/v1, hardgecodeerd in de wasm-kern | Zichtbaar in de netwerkteller; vraag aan de leverancier over inhoud en opt-out |
Hoe het verliep
- za 8 nov · ochtend
Vraag: kunnen de modellen van Desert Ant Labs in een eigen app, met lokale invoer? Android-app in één dag: twaalf modellen uit Maven, tekst delen vanuit andere apps, APK op de telefoon.
- za 8 nov · middag
Zelfde modellen als webapp op dev.3n.nl (elf uit npm), zodat ook iPhone en iPad meedoen. Project-tabblad: veel bestanden in één keer, trefwoorden in de foto's teruggeschreven. Vergadering-keten: opname → notulen met sprekers.
- za 8 nov · avond
Metingen en reparaties in acht versies: gain-cap, geheugen, sprekers per zin, moderator-drempel, Clear uit. Vliegtuigtest en modelcache: lokaal is nu te bewijzen, niet te beweren.
- zo 9 nov
Whisper naast Voz gelegd op een echte paneldiscussie. Vragenlijst voor de leverancier met elke meting erbij.
- di 10 nov
Kennismaking met Desert Ant Labs; broncode openbaar op GitHub op hun verzoek. Onderzoek naar de business cases van de ambtenaar (breder dan één organisatie). De twaalf klussen als menukaart. De ketting: kralen slepen tot een klus, met de nieuwe kralen OCR, vertalen, schrijven, voorlezen.
Werkwijze zoals altijd bij 3n: de mens stuurt, de AI bouwt, elke wijziging gaat als pull request naar main, en de server haalt hem zelf op. Dertien pull requests in drie dagen, elk met een headless test erbij.
Wat we leerden
Doen
Begin bij het minst leuke werk. Bijna de helft van de ambtenaren noemt notuleren de rotklus; daar begint adoptie, niet bij brainstormen.
Doen
Laat lokaal zien, zeg het niet. Een teller op 0 en een groen stempel overtuigen sneller dan een beleidsstuk. Dataveiligheid is de tweede rem bij ambtenaren (40 %).
Doen
Ontwerp voor controleren, niet voor vertrouwen. 85 % kijkt AI-tekst toch na. Dus: origineel naast resultaat, herkomst waar het kan, en de enige kraal die kan verzinnen (het taalmodel) duidelijk gemarkeerd.
Doen
Eindig met een bestand. Een A4, een ZIP, een geredigeerde versie. Een chatvenster is geen resultaat voor een ambtenaar.
Nog niet af
"Soeverein" is half waar. Modellen komen van Hugging Face en de SDK belt naar huis. Lokaal verwerken: ja. Zonder leverancier: pas na zelf hosten en een antwoord over de telemetrie.
Nog niet af
Kwaliteit is één meting. Eén opname, één brief. Voor de Woo-claim is een echte testset nodig: twintig stukken, tien opnames, door mensen nagekeken.
Zelf proberen
De twaalf klussen
Per klus: voor wie, wat er gebeurt, waarom op het toestel, wat het oplevert — en één knop.
Ketting
Rijg zelf kralen tot een klus. Deelbare link per ketting.
AntBench, het lab
Alle modellen los, met de vliegtuigtest onderaan.
Broncode (MIT)
npm ci && npm run dev. De SDK en de modellen vallen onder hun eigen voorwaarden.
De demo-site is tijdelijk en blijft tot 1 december 2026 bereikbaar; daarna draait de werkbank vanuit het repo. Werkt het best in Chrome (Android, desktop) en Safari 26+; het taalmodel heeft WebGPU nodig.
Met dank aan en bronnen
Desert Ant Labs voor de SDK en het gesprek · Michiel Buisman voor de ideeën achter de vragenlijst willen/mogen/kunnen, de checklist en zoeken met bronvermelding · UWV InnovatieHub voor Leesplank (Nederlands naar B1 op EuroLLM) · de makers van Tesseract.js, Transformers.js, WebLLM en Piper.
Cijfers: vergadertijd ambtenaren · Minute (UK) · Sira Consulting over de Woo · Consult (UK) · BIT/GovAI-enquête · Vlam · Copilot op oranje · AP over datalekken.