• Aleka ist eine plattformübergreifende Zeichen-App, die auf Flutter basiert

    Aleka ist eine leichte, schnelle Zeichen-App, die in Flutter geschrieben wurde. Es funktioniert überall: im Browser, auf dem Desktop (Windows, macOS, Linux) und auf mobilen Geräten (iOS, Android).

    Unter der Haube steckt pures Dart, Material 3 und Liebe zum Detail.

    Chancen

    • Freihandzeichnen: Glatte Striche mit quadratischer Bézier-Interpolation.
    • Palette mit 15 Farben: schnelle Auswahl mit visueller Anzeige.
    • Pinselgröße: einstellbar mit einem Schieberegler von 1 bis 30 Pixel.
    • Rückgängig machen: Machen Sie einen Schritt zurück durch Ihre Striche.
    • Löschen Sie die Leinwand: mit einem Klick.
    • Flutfüllung: BFS mit Toleranz für glatte Kanten.
    • Speichern: Format .aleka (JSON).
    • Laden: zuvor gespeicherte Zeichnungen öffnen und fortfahren.
    • PNG-Export: Leinwand mit 3-facher Auflösung erfassen.
    • 🎬 Animationsmodus: Einzelbildanimation mit Zeitleiste:
      • Rahmen hinzufügen und entfernen, jeder mit seinem eigenen Design.
      • Bilddauer von 50 ms bis 5 s.
      • FPS ändern: 6, 8, 12, 15, 24, 30 oder 60.
      • Export nach MP4 (über ffmpeg auf dem Desktop, ffmpeg.wasm im Browser).
    • Dunkles und helles Thema: Material 3, folgt dem System.

    Warum Flattern?

    Mit Flutter können Sie eine Anwendung für sechs Plattformen schreiben, ohne Code zu duplizieren. Aleka nutzt nur die nativen Funktionen des Dart and Flutter SDK und ein Minimum an Abhängigkeiten von Drittanbietern: file_picker, image für die Arbeit mit Pixeln beim Füllen, ffmpeg_wasm für den Export von Videos im Browser.

    Architektur

    Das Projekt folgt den Prinzipien sauberer Architektur und SOLID:

    • PaintCanvasController – steuert den Zustand von Strichen und Füllungen über das Listener/Observer-Muster.
    • PaintToolbar – UI-Komponente der Palette, des Schiebereglers und der Schaltflächen.
    • AlekaFile – Serialisierung/Deserialisierung in JSON, PNG-Erfassung.
    • MovieController – Modell von Frames und Animationsstatus.
    • VideoExport – kapselt MP4-Kodierungslogik (Desktop/Web).

    E/A-Funktionen (saveStrokes, loadStrokes, capturePng usw.) werden injizierbar gemacht – sie können beim Testen durch Mocks ersetzt werden. Das Projekt verfügt über 79 Tests: Überprüfung der Serialisierung, Abbruch, Laden/Speichern, PNG- und Videoexport, Frame-Modell und Zeitleiste.

    Dateiformat .aleka

    Die Datei .aleka ist eine lesbare JSON-Datei, die in jedem Texteditor geöffnet werden kann:

      "aleka": "1.0",
      "strokes": [
        {
          "color": 4278190080,
          "strokeWidth": 3.0,
          "points": [[100.0, 200.0], [150.0, 250.0]]
        }
      ]
    }
    

    Jeder Strich speichert eine Farbe (ARGB32), eine Dicke und eine Reihe von Punkten. Das Format wird durch das Feld aleka versioniert.

    Animationsmodus

    Eines der Hauptmerkmale ist der integrierte Bild-für-Bild-Animationseditor. Sie zeichnen einen Rahmen, fügen einen neuen hinzu, zeichnen den nächsten und so weiter. Die Zeitleiste zeigt Miniaturansichten an und ermöglicht Ihnen, die Reihenfolge und Dauer der Bilder zu ändern. Die fertige Animation kann in MP4 exportiert werden.

    Der Exportalgorithmus durchläuft alle Frames, erfasst sie über RepaintBoundary, sammelt PNG-Bytes und überträgt sie an den Encoder. Auf dem Desktop wird das System ffmpeg aufgerufen, im Browser kommt ffmpeg.wasm zum Einsatz – eine vollwertige Portierung von ffmpeg auf WebAssembly, die direkt in der Browser-Sandbox funktioniert.

    Flutfüllung

    Die Füllimplementierung verwendet Breadth First Search (BFS) mit einer Farbtoleranz (_kFillTolerance = 1000). Dadurch können Sie glatte Kanten von Strichen korrekt verarbeiten – die Füllung fließt nicht über den Umriss hinaus, sondern erfasst durchscheinende Pixel am Rand. Für eine leere Leinwand wird ohne unnötige Berechnungen eine feste Füllung erstellt.

    Versuchen Sie es

    Aleka ist im Web und als native Anwendung verfügbar:

    demensdeum.com/software/aleka/

    Der Quellcode ist unter der MIT-Lizenz offen:

    github.com/demensdeum/Aleka

  • Mama Calendar – plattformübergreifende Erinnerungs-App

    Mama Calendar ist eine plattformübergreifende Ereignis- und Erinnerungsanwendung, die in React Native (Expo) mit zwei Backend-Implementierungen geschrieben wurde: Node.js + MongoDB und PHP + MariaDB.

    Mit der Anwendung können Sie Ereignisse mit Emoji-Kategorisierung erstellen, die Art der Wiederholung auswählen (einmal, jährlich, monatlich, wöchentlich, täglich) und wichtige Ereignisse für die nächsten 3 Tage in einer separaten Registerkarte „Wichtige Ereignisse“ anzeigen.

    Technologie-Stack

    Das Frontend ist in React Native 0.86 über Expo SDK 57 mit TypeScript, Expo Router für die Navigation und react-native-reanimated für Animationen geschrieben. Expo-Symbole werden für Icons verwendet (SF-Symbole auf iOS, Material-Symbole auf Android/Web).

    Das Backend ist in zwei Versionen implementiert:

    • Node.js: Express 4, MongoDB 8 über nativen Treiber, benutzerdefinierte Authentifizierung mit Scrypt + Salt, manuelle Token-Verwaltung. Docker Compose ruft den Client (nginx), den Server und MongoDB auf.
    • PHP: PHP 8.2 ohne Frameworks, PDO + MariaDB 11, bcrypt für Passwort-Hashing, Ihr eigener Router und PSR-4-Autoloading über Composer.

    Anwendungsfunktionen

    • Registrierung und Autorisierung: einfaches System mit Benutzername/Passwort und Bearer-Token
    • CRUD-Ereignisse: Ereignisse mit Datum, Emoji und Wiederholungstyp erstellen, anzeigen, bearbeiten und löschen
    • Intelligente Filterung: Auf der Registerkarte „Wichtige Ereignisse“ werden Ereignisse der nächsten drei Tage unter Berücksichtigung von Wiederholungsregeln angezeigt. Jährliche Ereignisse zeigen beispielsweise das nächstgelegene jährliche Ereignis an, monatlich – nach Tag des Monats, wöchentlich – nach Tag der Woche
    • Emoji-Auswahl: 20 voreingestellte Emojis zur schnellen Kategorisierung von Ereignissen
    • Heutige Ereignisse hervorheben: Die heutigen Ereignisse werden mit einem roten Hintergrund hervorgehoben (#B71C1C)
    • Dunkles Thema: Automatische Erkennung des Systemfarbschemas mit separaten Paletten für helles und dunkles Thema
    • Internationalisierung: Russische und englische Sprachen über React Context
    • Анимации: анимированный сплэш-скрин с Keyframe API и упругой интерполяцией, анимированная иконка приложения с вращающимся свечением
    • Admin-Endpunkte: Verwaltung von Benutzern, Tokens und Löschen der Datenbank über Master-Tokens

    Warum zwei Backend-Implementierungen?

    Die Node.js-Version ist die Hauptversion, aber die PHP-Version existiert als Alternative für klassischeres Hosting. Die API ist völlig identisch, sodass Sie zwischen ihnen wechseln können, ohne den Client-Code zu ändern.

    Infrastruktur

    Der gesamte Stack wird durch Docker Compose angehoben: Der Client wird durch einen mehrstufigen Build (Expo-Export → Nginx Alpine) zusammengestellt, ein Server auf Node.js, MongoDB 8. Für die PHP-Version gibt es eine separate Compose-Datei mit MariaDB 11 und phpunit für Tests.

    Die Zusammenstellung der Webversion wird durch ein PowerShell-Skript automatisiert, das die API_URL vor dem expo export patcht und die Originale danach wiederherstellt.

    Ausgabe

    Mama Calendar ist eine plattformübergreifende Anwendung mit vollem Funktionsumfang, die den gesamten Zyklus abdeckt: vom mobilen und Web-Frontend auf React Native bis hin zu zwei serverseitigen Optionen. Das Projekt ist aufgrund seiner Architektur, der Nutzung moderner Expo SDK-Funktionen und der Dual-Backend-Implementierung interessant.

    Links

    https://github.com/zefir1990/Mama-Calendar
    https://demensdeum.com/software/mama-calendar/events

  • Donki Hills

    Donki Hills ist ein First-Person-Horror-Comedy-Abenteuer, das die Spieler durch eine mysteriöse Geschichte führt, die Spannung mit unerwartetem Humor verbindet.
    Die Hauptfigur James macht sich auf die Suche nach seiner Online-Freundin Maria, deren Verbindung plötzlich unterbrochen wurde. Der einzige Beweis ist ein zufälliges Foto, das auf das abgelegene Dorf Donki Hills in der Region Nowosibirsk zeigt. Angetrieben von dem Wunsch, der Wahrheit auf den Grund zu gehen, beginnt James seine eigenen Ermittlungen, um alle Umstände von Marias Verschwinden herauszufinden.

    Das Spiel ist auf Steam erhältlich:
    https://store.steampowered.com/app/3476390/Donki_Hills/

  • Mauerwerk AR

    Masonry AR ist ein ortsbasiertes Multiplayer-Augmented-Reality-Spiel (AR), das Sie in die Welt der Geheimgesellschaften eintauchen lässt. Erkunden Sie die Straßen Ihrer Stadt, sammeln Sie freimaurerische Wissensbücher, gründen Sie Ihre eigenen Logen und konkurrieren Sie um Einfluss auf der realen Weltkarte.

    Hauptfunktionen

    • Geolocation-basiertes Gameplay:Bewege dich mit dem GPS deines Geräts durch die reale Welt, um geheime Bücher und Ressourcen zu finden.
    • Autowalk-Modus:Wenn der GPS-Zugriff eingeschränkt ist, können Sie den Autowalk-Modus starten, indem Sie eine der Hauptstädte der Welt als Startpunkt auswählen.
    • Logenerstellung: Errichten Sie Freimaurerlogen auf einer echten Karte und erweitern Sie den Einfluss Ihres Ordens.
    • Wirtschaft im Spiel: Verdienen Sie Spielwährung (MOS), entwickeln Sie Ihre Gebiete und teilen Sie Empfehlungslinks mit Freunden.
    • Plattformübergreifend: Das Spiel läuft dank der Flame Steel Engine 2-Spiel-Engine mit Rendering auf Basis von Three.js direkt in Webbrowsern auf Mobilgeräten und PCs.

    Spielen:
    https://demensdeum.com/games/masonry-ar/client/

    GitHub:
    https://github.com/zefir1990/Masonry-AR

  • Teflecher


    Teflecher ist eine schnelle, interaktive, plattformübergreifende Quizanwendung, die auf Kotlin Multiplatform (KMP) und Compose Multiplatform basiert. Es ermöglicht Benutzern, Quizfragen intuitiv aus lokalen JSON-Dateien oder Remote-URLs zu laden, Multiple-Choice-Fragen zu beantworten, sofortiges Feedback zu richtigen Antworten zu erhalten und ihre Ergebnisse zu verfolgen.

    Web:
    https://demensdeum.com/software/teflecher/

    GitHub:
    https://github.com/zefir1990/teflecher

    Außerdem ein Quiz-Editor im Teflecher-Editor-Format, der auf Ionic + Capacitor-Technologien basiert

    Web:
    https://demensdeum.com/software/teflecher-editor/

    GitHub:
    https://github.com/zefir1990/teflecher-editor

  • Geisterkontakte


    Ghost Contacts ist eine einfache Webanwendung, mit der Sie Ihre Kontakte vor Standardsystem-APIs und Telefonbüchern verbergen können. Sämtliche Informationen werden ausschließlich lokal in Ihrem Browser gespeichert und nicht an externe Server übertragen.

    Hauptmerkmale

    • Ausblenden vor System-APIs:Ihre Kontakte werden nicht mit den Standard-Systemkontakt-APIs und dem Telefonbuch des Geräts synchronisiert.
    • Panik-Passwort: Ein spezielles Passwort, bei dessen Eingabe die gesamte Kontaktdatenbank sofort und unwiderruflich gelöscht wird.
    • Import und Export: Bequeme Übertragung der Kontaktdatenbank per CSV-Dateien zur Erstellung von Sicherungskopien.

    Online-Bewerbung:
    https://demensdeum.com/software/ghost-contacts/

    GitHub:
    https://github.com/demensdeum/GhostContacts

  • Würfelkunstprojekt 2

    Willkommen bei Cube Art Project 2 – einer meditativen 3D-Leinwand, auf der Sie Ihrer Fantasie freien Lauf lassen können. Erstellen Sie Voxelbilder, experimentieren Sie mit Farben und erwecken Sie einzigartige 3D-Modelle direkt in Ihrem Browser zum Leben.

    Was ist Cube Art Project 2?

    Dies ist ein kreatives Spiel, das Ihren Bildschirm in eine interaktive Leinwand für 3D-Malerei verwandelt. Vor Ihnen liegt ein sauberer dreidimensionaler Raum, der bereit ist, mit Ihren Ideen, Formen und leuchtenden Farben gefüllt zu werden.

    Hauptfunktionen

    • 3D-Zeichnung: Ein entspannender kreativer Prozess, der sich auf die Erstellung von Voxel-Kunst und 3D-Geometrie konzentriert.
    • Farbauswahl: Passen Sie die Farbtöne jedes Blocks mithilfe praktischer RGB-Schieberegler an.
    • Bewegungsfreiheit: Erkunden Sie Ihre Bilder aus jedem Blickwinkel mit der praktischen Kamerasteuerung.
    • Leinwandspeichern: Speichern Sie Ihre Arbeit in Dateien und kehren Sie jederzeit zum Zeichnen zurück oder teilen Sie Ihre Arbeit mit anderen.

    Management

    • WASD – Kamerabewegung
    • Maus – Kameradrehung und -inspektion
    • Schnittstelle (GUI) – Farbauswahl und -anpassung

    Spielen:
    https://demensdeum.com/software/cube-art-project-2/

    GitHub:
    https://github.com/zefir1990/cube-art-project-2

  • Raiden Video Ripper

    Raiden Video Ripper ist ein Open-Source-Projekt zur Videobearbeitung und Formatkonvertierung. Es wird mit Qt 6 (Qt Creator) erstellt und ermöglicht die Bearbeitung und Konvertierung von Videos in die Formate MP4, GIF und WebM. Sie können auch Audio aus Videos extrahieren und in das MP3-Format konvertieren.

    Microsoft Store:
    https://apps.microsoft.com/detail/9nvzjs98smgc

    GitHub:
    https://github.com/demensdeum/RaidenVideoRipper/releases

  • Mars-Miner

    Unter den rauen Bedingungen des Roten Planeten zählt jede Sekunde und jeder Sektor. Wir freuen uns, Ihnen Mars Miners vorzustellen, ein rundenbasiertes Strategiespiel, in dem Sie um das Überleben einer Kolonie und die Kontrolle über wertvolle Marsressourcen kämpfen.

    Was sind Mars-Miner?

    In Mars Miners steuern Sie ein Bergbauunternehmen auf dem Mars. Ihre Aufgabe besteht darin, Stützpunkte zu errichten, Ressourcensektoren zu erobern und die Aktionen autonomer Bergbaueinheiten angesichts der harten Konkurrenz mit künstlicher Intelligenz oder anderen Akteuren zu koordinieren.

    Hauptfunktionen

    • Taktische Strategie: Planen Sie die Entwicklung Ihrer Basis und die Eroberung von Territorien und berechnen Sie dabei die Bewegungen Ihrer Gegner im Voraus.
    • Autonome Einheiten: Koordinieren Sie die Aktionen von Bergbaurobotern und passen Sie ihre Logik für maximale Effizienz an.
    • Verschiedene Modi: Verbessern Sie Ihre Fähigkeiten auf Einzelspieler-Trainingsgeländen oder messen Sie sich im Mehrspielermodus mit anderen Kolonisten.
    • Fortgeschrittene KI: Kämpfe um Ressourcen gegen intelligente Automaten, die taktische Fehler nicht verzeihen.

    Mars Miners spielen

  • Flammenstahl: Todesmaske 2

    In den endlosen, von kaltem Licht durchfluteten Gängen der industriellen Megastruktur erwartet Sie eine neue Herausforderung. Wir freuen uns, Ihnen Flame Steel: Death Mask 2 vorzustellen, einen 3D-Dungeon-Crawler, der klassische Ästhetik mit modernem Echtzeit-Gameplay kombiniert.

    Was ist Flame Steel: Death Mask 2?

    Stellen Sie sich vor, Sie wachen in einem prozedural erzeugten Labyrinth auf, in dem auf Schritt und Tritt ein feindliches Wesen namens „Filter“ lauern könnte. In Flame Steel: Death Mask 2 übernehmen Sie die Rolle eines Suchers und erkunden eine Welt, die auf der Flame Steel Engine 2 (mit Three.js-Grafik-Rendering) basiert.

    Hauptfunktionen

    • Prozedurale Dungeons: Jeder Versuch ist einzigartig. Der Server erstellt neue Karten voller Geheimnisse und Gefahren.
    • Terminal: Für diejenigen, die die volle Kontrolle bevorzugen, ermöglicht die integrierte Befehlszeilenschnittstelle die direkte Interaktion mit dem System: Ausführen erweiterter Aktionen, Debuggen oder Senden von Befehlen.
    • Kampf und Überleben: Kämpfe gegen Filter, um Bits zu verdienen, und verwende sie dann, um Truhen zu öffnen und deine Statistiken zu verbessern. Achten Sie auf Ihre Gesundheit – das Überleben ist nicht garantiert.
    • Industrielle Ästhetik: kontrastreiche Visualisierung und sterile Atmosphäre einer riesigen Megastruktur.

    Technologie hinter der Maske

    Das Spiel ist für den Browser erstellt und verwendet:

    • Frontend: Reines JavaScript und Flame Steel Engine 2 (mit Three.js-Grafikrenderer) für reibungsloses 3D-Rendering.
    • Backend: Node.js zum Ausführen der Serverseite.
    • Infrastruktur: MongoDB für persistente Datenspeicherung und Redis für räumliche Echtzeitindizierung

    Spielen Sie Flame Steel: Death Mask 2

  • Uschki-Radio

    Ushki-Radio ist ein plattformübergreifender Radioplayer für Online-Radio, bei dessen Entwicklung Einfachheit und Hörvergnügen im Vordergrund stehen. Keine unnötigen Funktionen, keine überlasteten Schnittstellen – einfach einschalten und zuhören.


    https://demensdeum.com/software/ushki-radio

    Das Projekt nutzt den Open-Source-Radiobrowser, wodurch Tausende von Radiosendern aus aller Welt in der Anwendung verfügbar sind. Sie können sie nach Name, Genre oder Beliebtheit suchen, sie zu Ihren Favoriten hinzufügen und schnell zu Ihren Lieblingssendern zurückkehren.

    Ushki-Radio eignet sich perfekt für die Rolle eines Hintergrundradioplayers: Es merkt sich den letzten Sender, ermöglicht die Steuerung der Lautstärke und erfordert keine komplexen Einstellungen. Die Benutzeroberfläche ist prägnant und verständlich – alles ist so gestaltet, dass nichts von Musik, Gesprächen und Übertragungen ablenkt.

    Technisch basiert das Projekt auf React Native und Expo, funktioniert also sowohl im Browser als auch als native Anwendung. Unter der Haube wird expo-av zum Abspielen von Audio verwendet und Benutzereinstellungen werden lokal gespeichert. Es werden mehrere Sprachen unterstützt, darunter Russisch und Englisch.

    Ushki-Radio ist ein gutes Beispiel dafür, was ein moderner Internetradio-Player sein kann: offen, leichtgewichtig, erweiterbar und in erster Linie auf den Hörer ausgerichtet. Das Projekt wird unter der MIT-Lizenz vertrieben und eignet sich sowohl für den persönlichen Gebrauch als auch als Grundlage für eigene Experimente mit Audioanwendungen.

    GitHub:
    https://github.com/demensdeum/Ushki-Radio

    Google Play:
    https://play.google.com/store/apps/details?id=com.demensdeum.ushkiradio

  • Glazki TV: Moderner Player für Internetfernsehen

    Glazki TV ist ein moderner, leistungsstarker Player für Internetfernsehen (IPTV), der auf Basis von React Native und Expo entwickelt wurde. Das Projekt konzentriert sich auf Benutzerfreundlichkeit und Geschwindigkeit und bietet eine praktische Schnittstelle zum Anzeigen von IPTV-Kanälen sowohl auf Mobilgeräten als auch im Browser.

    Hauptmerkmale

    • Kanalsuche: Durchsuchen Sie Tausende von Kanälen, kategorisiert für eine einfache Navigation.
    • Suche: Finden Sie schnell die gewünschten Kanäle anhand des Namens.
    • Favoriten: Speichern Sie Ihre Lieblingskanäle für den schnellen Zugriff (Daten werden lokal gespeichert).
    • Deep Linking: Teilen Sie direkte Links zu Kanälen, die automatisch geöffnet werden.
    • Theme-Unterstützung: Die Benutzeroberfläche passt sich automatisch an das dunkle oder helle Theme des Systems an.
    • Web-Unterstützung: Der Player ist im Browser mit URL-Synchronisierung voll funktionsfähig.

    Technologie-Stack

    Das Projekt basiert auf modernen Entwicklungstools:

    • Framework: React Native + Expo
    • Video Player: expo-video (замена устаревшему expo-av)
    • UI-Toolkit: React-Native-Paper
    • Playlist-Parser: iptv-playlist-parser

    Webversion:
    https://demensdeum.com/software/glazki-tv/

    Google Play-Version:
    https://play.google.com/store/apps/details?id=com.demensdeum.glazkitv

  • Zefir1990


    Zefir1990 – Ilia Prokhorov, ich bin ein Entwickler mit mehr als 15 Jahren Erfahrung in der kommerziellen Entwicklung. Gründer des Demens Deum Studios, das Spiele und Anwendungen für Mobil-, Web- und Desktop-Systeme entwickelt. Das erste 3D-OpenGL-ES-2-Spiel „Mad Racer“ für Android 2 wurde 2010 veröffentlicht. Er war Programmierer und Spieledesigner an dem Projekt, er beteiligte auch den Komponisten Anton Dmitriev (coolspotdreamer) an der Entwicklung und war nach dem erfolgreichen Start des Spiels hauptberuflich mit der kundenspezifischen Entwicklung und der Projektentwicklung im Rahmen von Verträgen beschäftigt. Zu den Kunden zählen Decathlon, Playboy, Fitbit.

    Ich bin außerdem Autor von Artikeln über Softwareentwicklung, Spiele, Designmuster, Algorithmen und KI und habe vor, ein Buch über Software-Entropie zu schreiben.

    Bevorzugte Programmiersprachen: ASM, C, C++, ObjC, Python, Kotlin, Swift, Java, Rust, Go, TypeScript, JavaScript, C#, Dart, PHP.

    LinkedIn: linkedin.com/in/zefir1990
    GitHub: github.com/zefir1990
    Telegramm: t.me/zefir1990
    E-Mail: ceo@demensdeum.com
    Twitch: twitch.tv/zefir1990
    Youtube: youtube.com/zefir1990