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)
- v0.5.5 — LOGIK im Code: Taschenrechner, der wirklich rechnet
- v0.5.4 — ALLES per Code: leerer Start, Code-Editor VOR dem System
- v0.5.3 — ECHT Vollbild + Schicht-Buttons + Code-Editor
- v0.5.2 — Ebenen stimmen ueberein, Header restlos entfernt
- v0.5.1 — „KI-Init fehlgeschlagen: RuntimeException“ behoben
- Der „KI aus"-Bug von v0.4 — gefunden und behoben
- 3 Ebenen — jede ein/ausschaltbar (Settings-Screen)
- NPU-Messung (echtes Gerät, Qualcomm AI Hub)
- Training
- Installation (wichtig!)
- Reproduktion
- Job-IDs (AI Hub)
- v0.5.5 — LOGIK im Code: Taschenrechner, der wirklich rechnet
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 Tastedann=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 brauchenid=). - 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).
- Variablen:
- 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/y2in 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:
- Kein Zeit-Kill mehr — die Initialisierung prüft nur noch die Output-Form.
- Dein Start-Flow: Button → Ordner wählen (Dateimanager) → App sucht darin die
.tflite→ initialisiert sichtbar („NPU bereit" / „CPU bereit" / Fehlermeldung) → erst dann verschwindet der Button und die OS-Oberfläche startet. - Das Modell wird in
filesDirgespeichert und startet beim nächsten Mal automatisch. - 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.tfliteherunterladen (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