YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

E-OS v5 — Glass-Renderer (Apple-Style + Wasser-Interaktion)

E-OS v5 lernt Glas. Das KI-Modell (FrameGenerator v5, 1,59 Mio. Parameter) rendert jedes sichtbare Pixel im Apple-Glas-Stil: frostige Panels, Rim-Light, Specular, Aurora-Hintergrund — plus Wasser-Ripple-Interaktion an jedem Touchpunkt. Der Code zeichnet nur noch 3 Dinge: das grobe Layout-Wireframe (Modell-Input), den Text/Icon-Overlay und den Start-Dialog.

v0.5.5 — LOGIK im Code: Taschenrechner, der wirklich rechnet

  • Neu: Echte Logik in der Code-Sprache (EosLogic.kt, rein Kotlin, JVM-getestet):
    • Variablen: SET punkte = 0 (global, beim Start) · SET x = 2 + 3 * 4 — in FUNKs neu angelegte Variablen sind lokal.
    • Ausdrücke überall: + - * / %, Klammern, Punkt-vor-Strich, Vergleiche == != < <= > >=, Und/Oder && || !, Text-Verbindung mit + ('Akku ' + runde(akku()) + ' %').
    • Bedingungen: WENN punkte>=10 DANN set:…;text:… [SONST …] — SONST auf der gleichen Zeile oder in der Zeile direkt danach.
    • Eigene Funktionen: FUNK zahl(t) … FEND, Aufruf per Taste dann=aufruf:zahl('7') oder aus anderen Funktionen.
    • Ereignisse: FUNK start() läuft beim Start, FUNK tick() 1× pro Sekunde (Uhren/Timer/Spiele).
    • Elemente live ändern: set:anzeige.text='15', set:ball.x=ball.x+5, set:lampe.farbe='#FF8800', set:hinweis.sichtbar=aus — Eigenschaften: text x y w h r size t farbe sichtbar bold (Elemente brauchen id=).
    • Built-ins: num text runde abs min max wurzel hoch zufall laenge teil gross klein enthaelt ersetze rechne(a,op,b) + Welt: uhr uhrS datum ms sek akku wetter musik vibriere(ms).
  • Der mitgelieferte Taschenrechner rechnet WIRKLICH (Tasten-Simulation im JVM-Test: 12+3=15, Ketten 2+3+4=9, 6×7=42, 8÷2=4, 5÷0=„Fehler", Komma, ±, %). Beispiele: HILFE → „Rechner-Beispiel" / „Uhr-Beispiel".
  • Neue Element-Attribute: id=name (für Logik), align=links|mitte|rechts (Taschenrechner-Anzeige rechtsbündig), sichtbar=an|aus.
  • Fehler mit Zeilennummer beim STARTEN — auch für Logik (unbekannte Variable, fehlende FUNK, = statt ==, fehlendes FEND, doppelte id).
  • Systemprompt für Gemini & Co.: docs/E-OS_Systemprompt_fuer_Gemini.md — komplette Sprachreferenz + Beispiele; einfach der KI geben und App-Codes generieren lassen. Beispiel-Codes: docs/beispiel_taschenrechner.eos, docs/beispiel_uhr.eos.
  • Modell, Modell-Handling und Signatur unverändert (Update ohne Deinstallation).

v0.5.4 — ALLES per Code: leerer Start, Code-Editor VOR dem System

  • Die App startet jetzt im CODE-EDITOR (vor dem System, wie gewünscht). Die Buttons ▶ STARTEN · MODELL · HILFE sitzen FIX unten und werden beim Eintippen/Einfügen nie mehr nach unten geschoben (EditText in ScrollView mit weight=1 + windowSoftInputMode=adjustResize). Zuvor wurden die Dialog-Buttons beim Einfügen langen Codes aus dem Bild geschoben und waren nicht klickbar — behoben.
  • Alles leer: Die eingebauten Bildschirme (Lock/Home/Drawer/Rechner/Wetter/Musik/ Settings/About) sind ENTFERNT. Ohne Code zeigt das System nur das nackte KI-Glas. Jede Taste, jeder Text, jede Info, jedes Layout, jedes Element kommt aus deinem Code.
  • Neue Code-Sprache (einfach pro Zeile, kein JSON mehr — gute Tastatur-Erreichbarkeit): SCHICHT 1 AN|AUS · SEITE name [glas=1..8] · TEXT "Hallo" x=.. y=.. size=.. farbe=#FFFFFF bold · BUTTON "Start" x=.. y=.. w=.. h=.. dann=seite:andere · INFO uhr|datum|batterie|wetter|musik x=.. y=.. · RECHTECK/PILL/PUNKT x=.. y=.. w=.. h=.. r=.. [dann=..] · KREIS x=.. y=.. r=.. (x,y = Mitte). Aktionen: dann=seite:name · schicht:1(:an|:aus) · text:Nachricht · musik · editor — mehrere mit ;. Fehler werden mit Zeilennummer angezeigt, Code wird gespeichert. Beispiel-System über HILFE → „Beispiel einfügen".
  • Schicht-Semantik korrigiert (Lösung für „warum bleiben Formen sichtbar?"): Bisher versteckte L1 nur das Drahtgitter-Overlay — der Modell-Input (Hint) enthielt das Layout WEITERHIN, deshalb malte das Modell die Formen weiter. Jetzt: L1 AUS = Hint wirklich LEER (nur Wasser-Ripples vom Touch) — das Modell bekommt nichts und zeigt, was es „auswendig" kann (echter Lerntest!). L2 AUS + L1 AN = Input-Ansicht (reines Drahtgitter = exakt das, was das Modell bekommen würde). L3 = Text/Infos aus dem Code.
  • Chips oben rechts jetzt: L1 / KI / L3 / Editor (einklappbar). Zurück-Geste (vom linken Rand) = zurück in den Editor. Doppelt tippen = Text an/aus.
  • Engine: State-Vektor nutzt pro Seite den Glas-Stil glas=1..8 (wie die 8 Screen- Familien aus dem Training, Standard = 2 „home"). Modell-Datei unverändert.

v0.5.3 — ECHT Vollbild + Schicht-Buttons + Code-Editor

  • Der graue „E-OS"-Header war die Android-ActionBar! Das Manifest hatte kein Theme — Android zeigte deshalb die System-Leiste mit dem App-Label. In v0.5.3: EosTheme (Material NoActionBar Fullscreen, dunkler Hintergrund) + Immersive Sticky (Status-/Navigationsleiste ausgeblendet, Wischen zeigt sie kurz wieder). Die App ist jetzt randlos Vollbild.
  • Schicht-Buttons direkt an der Oberfläche (oben rechts, einklappbar über ▾/▴): L1 = Layout-Wireframe, KI = NPU-Rendering (Ebene 2), L3 = Text/Icons — jeder einzeln an/aus (aktiver Chip leuchtet blau), plus Würfeln (neues Layout) und Code (Editor). Ebene 2 aus = keine Inferenz (spart NPU/Strom).
  • Code-Editor (JSON-Eingabefeld): Du schreibst Code für Layout UND Ebene 3:
    • layout — Elemente des AKTUELLEN Bildschirms: kind (panel|card|button|pill|dot|circle), x/y/x2/y2 in 512×1088, r (Radius), t (Glas-Typ 0..1), role (Name für Text/Taps). Status-/Nav-Elemente werden automatisch ergänzt, das OS bleibt bedienbar.
    • labels — Texte pro Rolle überschreiben (z. B. "cardMusic": "Meine Musik").
    • l3 — freie Texte an beliebiger Position ({"text":"KI-Test","x":60,"y":960,"size":30,"bold":true}).
    • Anwenden = der Lerntest: Die KI bekommt das von dir veränderte Layout als Hint und muss das Glas dazu NEU rendern — folgt es, hat es wirklich gelernt (nicht auswendig).
    • Der Code wird gespeichert und beim nächsten Start automatisch angewendet.
  • Settings-Screen bleibt zusätzlich erhalten (Zeilen 1/2/3, Element +/−, Modell laden).

v0.5.2 — Ebenen stimmen ueberein, Header restlos entfernt

  • Ein Layout als einzige Quelle: Jedes Element hat eine Rolle. Ebene 1 (Wireframe), der Modell-Hint und Ebene 3 (Text/Icons) lesen dieselben Rechtecke — Text sitzt damit IMMER exakt auf dem Wireframe (v0.5.1 hatte v4-Reste: Wetter/Musik-Text vertauscht, Nav-Pills verschoben, Settings-Zeilen neben den Karten).
  • Header restlos weg: Startbildschirm nur noch Status + Buttons, kein "E-OS v5"-Titel.
  • Layout-Editor ist jetzt ein echter KI-Test: "Neu wuerfeln" veraendert die Geometrie ALLER Elemente (Text/Taps folgen automatisch) — rendert das Glas mit, hat das Modell wirklich gelernt. "Element +/−" fuegt Chaos-Formen hinzu/entfernt sie.
  • 3 Ebenen-Schalter (Settings 1/2/3) — jede Ebene einzeln an/aus, plus Doppel-Tipp = Ebene 3 an/aus.

v0.5.1 — „KI-Init fehlgeschlagen: RuntimeException“ behoben

Ursache (Modelldateien waren nicht kaputt — beide waren byte-identisch und valide): das v5-Modell hat NCHW-I/O ([1,3,544,256] → [1,3,1088,512]), die App verlangte in der Init-Prüfung aber NHWC-Output ([1,1088,512,3]) — deshalb scheiterte jede Init mit dem eigenen RuntimeException("Falsche Output-Form"), und der echte Fehler wurde als nur „RuntimeException“ verschluckt. Zusätzlich passte die Form der Java-Input-Arrays (Rang 3) nicht exakt zum Rang-4-Tensor.

Fix in v0.5.1:

  • Init liest das Layout aus den echten Modell-Tensoren (NCHW und NHWC werden unterstützt)
  • I/O über direkte ByteBuffers in exakter Tensor-Größe (keine Array-Formprobleme mehr)
  • Input-Reihenfolge (hint/state) wird anhand der Tensor-Formen zugeordnet
  • Fehlermeldungen zeigen jetzt die echte Ursache statt nur des Klassennamens

Der „KI aus"-Bug von v0.4 — gefunden und behoben

v0.4 hatte ein Warmup-Zeit-Limit: dauerte die erste Inferenz > 250 ms (kalt!), fiel die App still in den Code-Modus — bei jeder Version. Das Modell war zwar in der APK, aber die KI war effektiv immer aus.

v5 behebt das:

  1. Kein Zeit-Kill mehr — die Initialisierung prüft nur noch die Output-Form.
  2. Dein Start-Flow: Button → Ordner wählen (Dateimanager) → App sucht darin die .tfliteinitialisiert sichtbar („NPU bereit" / „CPU bereit" / Fehlermeldung) → erst dann verschwindet der Button und die OS-Oberfläche startet.
  3. Das Modell wird in filesDir gespeichert und startet beim nächsten Mal automatisch.
  4. Ehrlicher Status: Mini-Status-Chip unten links (z. B. „NPU 2.2ms") + Anzeige im Settings-Screen. Kein stiller Fallback mehr.

3 Ebenen — jede ein/ausschaltbar (Settings-Screen)

Ebene Inhalt gezeichnet von
1 Layout Rahmen + Formen, ohne Farben (Wireframe) Code
2 NPU-Rendering Glas + Wasser = alle sichtbaren Pixel KI-Modell
3 Overlay Text, Icons, Status-Chip Code

Layout-Editor zum Beweisen, dass es echte KI ist:

  • „Layout neu würfeln" → neues zufälliges Layout → die KI muss das Glas NEU rendern
  • „Element +" / „Element −" → einzelne Formen hinzufügen/entfernen
  • Folgt das Glas dem neuen Layout, generiert es das Modell — nicht starrer Code.

NPU-Messung (echtes Gerät, Qualcomm AI Hub)

Samsung Galaxy S26 Ultra (Snapdragon 8 Elite Gen 5 for Galaxy, Hexagon v81): 2,18 ms/Frame @ 512×1088 auf dem NPU (Budget 60 Hz = 16,7 ms) → 7,7× Reserve.

Training

  • Prozeduraler Glas-Datensatz on-the-fly (unendliche Vielfalt): zufällige Layouts (Panels/Cards/Buttons/Pills/Dots/Kreise, 8 App-Familien + Chaos-Formen) → Glass-Renderings als Trainingsziel, Hint = 3-Kanal-Wireframe + Ripple-Heatmap
  • 5.642 Steps, Mixed-Res-Feintuning (halbe Steps in App-Auflösung)
  • Val-PSNR 22,3 dB (gedeckelt durch unvorhersehbarem Filmkorn; Stil, Rim-Light, Specular und Ripple-Position/Alter werden korrekt getroffen)

Installation (wichtig!)

Einmalig v0.4 deinstallieren (der Keystore ging beim Sandbox-Reset verloren — neue Signatur), dann:

  • APK: apk/e-os-glass-v0.5.4.apk (Modell ist eingebettet — „MODELL" → „Eingebettetes Modell starten")
  • Nur Modell (für den Ordner-Flow): npu/os_glass_v5.tflite herunterladen (z. B. Chrome → Downloads), im App-Start-Dialog „KI-Modell auswählen (Ordner)" → Downloads

Reproduktion

python3 scripts/os5_glass.py          # Glas-Renderer + Vorschau
python3 scripts/os5_train.py --secs 480   # Training (chunked/resumable)
python3 scripts/os5_export.py         # ONNX (opset 17) + Verify
python3 scripts/os5_hub.py            # AI Hub: TFLite + S26-Ultra-NPU-Profil
bash scripts/build_apk5.sh            # APK (aapt2/kotlinc/d8/zipalign/apksigner)

Job-IDs (AI Hub)

Compile j567j8e7p · Profile j5w7vlq6g (2,18 ms NPU)

Downloads last month
44
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support