• maimat:批量图像压缩和调整大小

    maimat(海量图像处理工具)是一款开源工具,专为批量图像处理而设计:调整大小和压缩。该应用程序是用 Python 3.10+ 编写的,并使用 ImageMagick 作为处理引擎。

    链接

    https://github.com/zefir1990/maimat

  • Aleka 是一款基于 Flutter 构建的跨平台绘图应用

    Aleka 是一款用 Flutter 编写的轻量级、快速绘图应用程序。它适用于任何地方:浏览器、桌面(Windows、macOS、Linux)和移动设备(iOS、Android)。

    引擎盖下是纯粹的 Dart、Material 3 和对细节的关注。

    机会

    • 手绘图:通过二次贝塞尔插值实现平滑笔画。
    • 15 种颜色的调色板:通过视觉指示快速选择。
    • 画笔大小:可使用滑块在 1 到 30 像素之间进行调整。
    • 撤消:后退一步。
    • 清除画布:只需单击一下即可。
    • 洪水填充:具有平滑边缘容差的 BFS。
    • 保存:格式.aleka (JSON)。
    • 加载:打开之前保存的绘图并继续。
    • PNG 导出: 以 3 倍分辨率捕获画布。
    • 🎬 动画模式: 带时间轴的逐帧动画:
      • 添加和删除框架,每个框架都有自己的设计。
      • 帧持续时间从 50 毫秒到 5 秒。
      • 更改 FPS:6、8、12、15、24、30 或 60。
      • 导出为 MP4(通过桌面上的 ffmpeg、浏览器中的 ffmpeg.wasm)。
    • 深色和浅色主题:材质3,遵循系统。

    为什么要颤动?

    Flutter 允许您为六个平台编写一个应用程序,而无需重复代码。 Aleka 仅使用 Dart 和 Flutter SDK 的本机功能以及最少的第三方依赖项:file_pickerimage 用于在填充时处理像素、ffmpeg_wasm 用于在浏览器中导出视频。

    架构

    该项目遵循简洁架构和 SOLID 的原则:

    • PaintCanvasController – 通过侦听器/观察者模式控制笔划和填充的状态。
    • PaintToolbar – 调色板、滑块和按钮的 UI 组件。
    • AlekaFile – JSON、PNG 捕获中的序列化/反序列化。
    • MovieController – 帧和动画状态的模型。
    • VideoExport – 封装 MP4 编码逻辑(桌面/网络)。

    I/O 函数(saveStrokesloadStrokescapturePng 等)可注入 – 它们可以在测试期间用模拟替换。该项目有79个测试:检查序列化、取消、加载/保存、PNG和视频导出、帧模型和时间轴。

    文件格式.aleka

    .aleka 文件是可读的 JSON,可以在任何文本编辑器中打开:

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

    每个笔划存储一种颜色 (ARGB32)、粗细和点数组。该格式由 aleka 字段进行版本控制。

    动画模式

    主要功能之一是内置的逐帧动画编辑器。您绘制一个框架,添加一个新框架,绘制下一个框架,依此类推。时间线显示缩略图并允许您更改帧的顺序和持续时间。完成的动画可以导出为 MP4。

    导出算法迭代所有帧,通过 RepaintBoundary 捕获它们,收集 PNG 字节并将它们传输到编码器。在桌面上,调用系统 ffmpeg,在浏览器中,使用 ffmpeg.wasm – ffmpeg 到 WebAssembly 的成熟端口,直接在浏览器沙箱中工作。

    洪水填充

    填充实现使用宽度优先搜索 (BFS) 和颜色容差 (_kFillTolerance = 1000)。这使您可以正确处理笔画的平滑边缘 – 填充不会超出轮廓,但会捕获边框上的半透明像素。对于空画布,将创建实心填充,无需进行不必要的计算。

    尝试

    Aleka 可在网络上使用并作为本机应用程序使用:

    demensdeum.com/software/aleka/

    源代码在 MIT 许可证下开放:

    github.com/demensdeum/Aleka

  • 妈妈日历 – 跨平台提醒应用程序

    Mama Calendar 是一个用 React Native (Expo) 编写的跨平台事件和提醒应用程序,具有两个后端实现:Node.js + MongoDB 和 PHP + MariaDB。

    该应用程序允许您创建带有表情符号分类的事件,选择重复类型(一次、每年、每月、每周、每天),并在单独的“重要事件”选项卡中查看接下来 3 天的重要事件。

    技术栈

    前端是通过带有 TypeScript 的 Expo SDK 57 用 React Native 0.86 编写的,用于导航的 Expo Router 和用于动画的 react-native-reanimated 。 Expo-symbols 用于图标(iOS 上的 SF 符号,Android/Web 上的 Material 图标)。

    后端有两个版本实现:

    • Node.js: Express 4、通过本机驱动程序的 MongoDB 8、使用 scrypt + salt 的自定义身份验证、手动令牌管理。 Docker Compose 会启动客户端 (nginx)、服务器和 MongoDB。
    • PHP: 无框架的 PHP 8.2、PDO + MariaDB 11、用于密码散列的 bcrypt、您自己的路由器以及通过 Composer 自动加载的 PSR-4。

    应用功能

    • 注册和授权:带有用户名/密码和不记名令牌的简单系统
    • CRUD 事件:创建、查看、编辑和删除包含日期、表情符号和重复类型的事件
    • 智能过滤:“重要事件”选项卡显示未来 3 天的事件,并考虑重复规则。例如,年度事件显示最近的年度事件、每月 – 按月中的日期、每周 – 按星期的日期
    • 表情符号选择器: 20 个预设表情符号,用于对事件进行快速分类
    • 突出显示今天的活动:今天的活动以红色背景突出显示 (#B71C1C)
    • 深色主题:自动检测系统配色方案,并使用单独的浅色和深色主题调色板
    • 国际化:通过 React Context 实现俄语和英语
    • Анимации: анимированный сплэш-скрин с Keyframe API и упругой интерполяцией, анимированная иконка приложения с вращающимся свечением
    • 管理端点:管理用户、令牌并通过主令牌清除数据库

    为什么有两个后端实现?

    Node.js 版本是主要版本,但 PHP 版本作为更经典托管的替代方案存在。 API 完全相同,允许您在不更改客户端代码的情况下在它们之间进行切换。

    基础设施

    整个堆栈是通过 Docker Compose 构建的:客户端通过多阶段构建(Expo export → nginx alpine)进行组装,服务器位于 Node.js、MongoDB 8 上。对于 PHP 版本,有一个单独的包含 MariaDB 11 和 phpunit 的 compose 文件用于测试。

    Web 版本的组装由 PowerShell 脚本自动完成,该脚本会在 expo 导出 之前修补 API_URL,并在之后恢复原始版本。

    输出

    Mama Calendar 是一款功能齐全的跨平台应用程序,涵盖整个周期:从 React Native 上的移动和 Web 前端到两个服务器端选项。该项目因其架构、现代 Expo SDK 功能的使用和双后端实现而有趣。

    链接

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

  • 唐基山

    《Donki Hills》是一款第一人称恐怖喜剧冒险游戏,带领玩家经历一个结合了悬念和意想不到的幽默的神秘故事。
    主角詹姆斯去寻找他的网友玛​​丽亚,但她的联系突然被切断。唯一的证据是一张随机照片,指向新西伯利亚地区偏远的顿基山村庄。为了查清真相,詹姆斯开始自己的调查,以查明玛丽亚失踪的所有情况。

    该游戏已在 Steam 上发售:
    https://store.steampowered.com/app/3476390/Donki_Hills/

  • 砖石增强现实

    Masonry AR 是一款基于位置的多人增强现实 (AR) 游戏,让您沉浸在秘密社团的世界中。探索你所在城市的街道,收集共济会知识书籍,建立你自己的小屋,并争夺对现实世界地图的影响力。

    主要功能

    • 基于地理位置的游戏:使用设备的 GPS 在现实世界中移动,寻找秘密书籍和资源。
    • 自动行走模式:如果 GPS 访问受到限制,您可以通过选择世界上的首都之一作为起点来启动自动行走模式。
    • 创建小屋:在真实地图上建立共济会小屋并扩大您的组织的影响力。
    • 游戏内经济:赚取游戏内货币 (MOS)、开拓领地并与朋友分享推荐链接。
    • 跨平台:由于采用了基于 Three.js 渲染的 Flame Steel Engine 2 游戏引擎,该游戏可以直接在移动设备和 PC 上的网络浏览器中运行。

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

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

  • 特弗莱彻


    Teflecher 是一款快速、交互式、跨平台的测验应用程序,构建于 Kotlin Multiplatform (KMP)Compose Multiplatform 之上。它允许用户直观地从本地 JSON 文件或远程 URL 加载测验、回答多项选择题、查看正确答案的即时反馈并跟踪结果。

    网址:
    https://demensdeum.com/software/teflecher/

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

    也是基于 Ionic + Capacitor 技术的 Teflecher Editor 格式的测验编辑器

    网址:
    https://demensdeum.com/software/teflecher-editor/

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

  • 幽灵联系人


    Ghost Contacts 是一个简单的 Web 应用程序,旨在隐藏标准系统 API 和电话簿中的联系人。所有信息仅存储在您的浏览器本地,不会传输到外部服务器。

    主要功能

    • 从系统 API 中隐藏:您的联系人不会与标准系统联系人 API 和设备电话簿同步。
    • 紧急密码:特殊密码,输入后,整个联系人数据库将立即且不可撤销地删除。
    • 导入和导出:通过 CSV 文件方便地传输联系人数据库以创建备份副本。

    网上申请:
    https://demensdeum.com/software/ghost-contacts/

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

  • 立方体艺术项目2

    欢迎来到Cube Art Project 2 – 一个冥想的 3D 画布,您可以在其中尽情发挥您的想象力。创建体素绘画、尝试颜色并在浏览器中将独特的 3D 模型变为现实。

    什么是魔方艺术项目 2?

    这是一款创意游戏,可将您的屏幕变成用于 3D 绘画的交互式画布。在你面前的是一个干净的三维空间,准备好充满你的想法、形状和明亮的色彩。

    主要功能

    • 3D 绘图:一种轻松的创作过程,专注于创建体素艺术和 3D 几何。
    • 颜色选择器:使用方便的 RGB 滑块微调每个块的色调。
    • 移动自由:通过便捷的相机控制从任何角度探索您的画作。
    • 画布保存:将您的作品保存到文件中并随时返回绘图,或与他人分享您的作品。

    管理

    • WASD – 相机移动
    • 鼠标 – 相机旋转和检查
    • 界面 (GUI) – 颜色选择和调整

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

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

  • Raiden Video Ripper

    Raiden Video Ripper 是一个专为视频编辑和格式转换而设计的开源项目。它是使用 Qt 6 (Qt Creator) 创建的,允许您编辑视频并将其转换为 MP4、GIF 和 WebM 格式。您还可以从视频中提取音频并将其转换为 MP3 格式。

    微软商店:
    https://apps.microsoft.com/detail/9nvzjs98smgc

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

  • 火星矿工

    在这颗红色星球的恶劣条件下,每一秒、每一个区域都至关重要。我们很高兴推出火星矿工,这是一款回合制策略游戏,您可以在其中为殖民地的生存和宝贵的火星资源的控制权而战。

    什么是火星矿工?

    火星矿工中,您控制着火星上的一家采矿公司。你的任务是建立基地,占领资源区,并在面对人工智能或其他玩家的激烈竞争时协调自主采矿单位的行动。

    主要功能

    • 战术策略:规划你的基地的发展和占领领土,提前计算对手的行动。
    • 自主单元:协调采矿机器人的行动并自定义其逻辑,以实现最高效率。
    • 多种模式:在单人训练场磨练你的技能,或在多人模式中与其他殖民者竞争。
    • 高级人工智能:与不会原谅战术错误的智能自动机争夺资源。

    玩火星矿工

  • 火焰钢:死亡面具2

    在充满冷光的工业巨型建筑的无尽走廊中,新的挑战正在等待着您。我们很高兴推出Flame Steel: Death Mask 2,这是一款结合了经典美学与现代实时游戏玩法的 3D 地下城探索游戏。

    什么是《火焰钢:死亡面具 2》?

    想象一下在一个程序生成的迷宫中醒来,其中每个回合都可能潜伏着一个名为“过滤器”的敌对实体。在Flame Steel: Death Mask 2中,您将扮演探索者的角色,探索基于 Flame Steel 引擎 2(使用 Three.js 图形渲染)构建的世界。

    主要功能

    • 程序地下城:每次尝试都是独一无二的。服务器创建充满秘密和危险的新地图。
    • 终端:对于那些喜欢完全控制的用户,内置命令行界面允许您直接与系统交互:执行高级操作、调试或发送命令。
    • 战斗和生存:与过滤器战斗以赚取比特,然后使用它们打开宝箱并提高您的统计数据。注意您的健康 – 生存并不能得到保证。
    • 工业美学:巨型巨型结构的高对比度可视化和无菌氛围。

    面具背后的技术

    该游戏是为浏览器创建的并使用:

    • 前端:纯 JavaScript 和 Flame Steel Engine 2(带有 Three.js 图形渲染器),可实现流畅的 3D 渲染。
    • 后端:用于运行服务器端的 Node.js。
    • 基础设施:用于持久数据存储的 MongoDB 和用于实时空间索引的 Redis

    玩《火焰钢:死亡面具 2》

  • 乌什基广播电台

    Ushki-Radio 是一款用于在线广播的跨平台广播播放器,专注于简单性和聆听乐趣。没有不必要的功能,没有超载的接口 – 只需打开它并聆听即可。


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

    该项目使用开源广播浏览器,使来自世界各地的数千个广播电台可以在应用程序中使用。您可以按名称、流派或受欢迎程度搜索它们,将它们添加到您的收藏夹并快速返回您最喜欢的电台。

    Ushki-Radio 非常适合背景广播播放器的角色:它会记住最后一个电台,允许您控制音量并且不需要复杂的设置。界面简洁易懂 – 一切都经过精心设计,不会分散音乐、对话和广播的注意力。

    从技术上讲,该项目是基于 React Native 和 Expo 构建的,因此它既可以在浏览器中运行,也可以作为本机应用程序运行。在底层,expo-av 用于播放音频,用户设置存储在本地。支持多种语言,包括俄语和英语。

    Ushki-Radio 是现代互联网广播播放器的一个很好的例子:开放、轻量级、可扩展并且主要以听众为中心。该项目根据 MIT 许可证分发,非常适合个人使用,也可以作为您自己的音频应用实验的基础。

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

    谷歌播放:
    https://play.google.com/store/apps/details?id=com.demensdeum.ushkiradio

  • Glazki TV:互联网电视的现代播放器

    Glazki TV 是一款现代、高性能的互联网电视 (IPTV) 播放器,建立在 React Native 和 Expo 的基础上。该项目注重易用性和速度,为在移动设备和浏览器中观看 IPTV 频道提供便捷的界面。

    主要功能

    • 频道浏览:浏览数千个频道,并进行分类以便于导航。
    • 搜索:按名称快速查找您需要的频道。
    • 收藏夹:保存您喜爱的频道以便快速访问(数据保存在本地)。
    • 深层链接:共享自动打开频道的直接链接。
    • 主题支持:界面自动适应系统深色或浅色主题。
    • 网络支持:播放器在浏览器中具有 URL 同步功能。

    技术栈

    该项目基于现代开发工具:

    • 框架: React Native + Expo
    • Video Player: expo-video (замена устаревшему expo-av)
    • UI 工具包:react-native-paper
    • 播放列表解析器: iptv-playlist-parser

    网页版:
    https://demensdeum.com/software/glazki-tv/

    谷歌播放版本:
    https://play.google.com/store/apps/details?id=com.demensdeum.glazkitv

  • 泽菲尔1990


    Zefir1990 – Ilia Prokhorov,我是一名拥有超过 15 年商业开发经验的开发人员。 Demens Deum 工作室的创始人,该工作室为移动、网络和桌面系统开发游戏和应用程序。 Android 2上的第一款3D OpenGL ES 2游戏Mad Racer于2010年发布,他是该项目的程序员和游戏设计师,他还参与了作曲家Anton Dmitriev(coolspotdreamer)的开发,在游戏成功推出后他从事全职定制开发和合同项目开发。客户包括迪卡侬、花花公子、Fitbit。

    我也是软件开发、游戏、设计模式、算法、人工智能方面文章的作者,我计划写一本关于软件熵的书。

    首选编程语言:ASM、C、C++、ObjC、Python、Kotlin、Swift、Java、Rust、Go、TypeScript、JavaScript、C#、Dart、PHP。

    LinkedIn:linkedin.com/in/zefir1990
    GitHub:github.com/zefir1990
    电报:t.me/zefir1990
    电子邮件:ceo@demensdeum.com
    抽搐:twitch.tv/zefir1990
    YouTube:youtube.com/zefir1990