home.social

#egui — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #egui, aggregated by home.social.

  1. Ani-Gui

    codingotaku.com/projects/ani-g

    A modern, accessible GUI anime streaming client for Linux built with Rust and egui. Based on the popular ani-cli but with a native desktop interface.

    #Anime #Rust #Egui #Downloader

  2. Приложение real-time face swap на чистом Rust: ONNX Runtime, lock-free потоки и 60 кадров в секунду

    Большинство инструментов для замены лиц это Python-скрипты, склеенные из PyTorch, OpenCV и надежды. Они работают, но тащат за собой гигабайты зависимостей, требуют правильно настроенного CUDA и разваливаются в тот момент, когда ты пытаешься запустить их в реальном времени. Мне стало интересно: можно ли собрать весь пайплайн на чистом Rust? Без Python. Без PyTorch. Без обёрток. Один бинарник, который скачал, распаковал и запустил. Оказалось, можно. 60 fps на веб-камере. Пайплайн На каждом кадре последовательно отрабатывают четыре нейросети. RetinaFace находит лица и извлекает пять ключевых точек. ArcFace вычисляет 512-мерный эмбеддинг исходного лица. InSwapper принимает регион целевого лица и эмбеддинг источника, на выходе отдаёт заменённое лицо. GFPGAN опционально улучшает результат для более высокого качества. Все четыре модели работают через ONNX Runtime. Никаких кастомных CUDA-ядер, никакого оверхеда фреймворков. Тензор на вход, тензор на выход. Архитектура потоков Три потока, ноль блокировок на горячем пути. Поток захвата получает кадры с веб-камеры через nokhwa и публикует их через ArcSwap. Поток пайплайна подхватывает новые кадры, прогоняет инференс и публикует обработанные кадры через второй ArcSwap. Поток UI читает актуальный буфер и рендерит через egui. Никаких мьютексов на данных кадра. Никаких каналов. Никакого async. Только атомарные счётчики поколений и lock-free замена указателей. Структуры разделяемого состояния занимают ровно по 64 байта каждая и выровнены по кэш-линиям, чтобы исключить false sharing между ядрами. Это проверяется compile-time ассертами.

    habr.com/ru/articles/1024700/

    #Rust #ONNX #Machine_Learning #Computer_Vision #Face_Detection #egui #Open_Source #lockfree #multithreading #realtime

  3. EGUI's rendering has very nifty trick with the scheduled frames. Your widget can request render for example 500ms from now. Like the text cursor in a text field.

    It doesn't make a queue of requests, but keep only the next time it needs to render in memory. Suppose I render something 2ms from now, then the text widget will request render in 498ms from now. On every tick each widget schedules the next one, but latest only counts.

    #ImGui doesn't have this, and I wish it did!

    #Rust #Egui #GUI

  4. I am still developing my “grab a repo to build and run it” skills with #rust.
    On my (mostly up to date) MacOS boxes this is fairly straightforward, but trying to coax code into building and running successfully on older hardware (eg ten year old raspberry pi) is harder and I’m still working out which things to fiddle on Cargo.toml to adjust how things are built. #GLEW #egui #wgpu

  5. I am still developing my “grab a repo to build and run it” skills with #rust.
    On my (mostly up to date) MacOS boxes this is fairly straightforward, but trying to coax code into building and running successfully on older hardware (eg ten year old raspberry pi) is harder and I’m still working out which things to fiddle on Cargo.toml to adjust how things are built. #GLEW #egui #wgpu

  6. I am still developing my “grab a repo to build and run it” skills with #rust.
    On my (mostly up to date) MacOS boxes this is fairly straightforward, but trying to coax code into building and running successfully on older hardware (eg ten year old raspberry pi) is harder and I’m still working out which things to fiddle on Cargo.toml to adjust how things are built. #GLEW #egui #wgpu

  7. I am still developing my “grab a repo to build and run it” skills with #rust.
    On my (mostly up to date) MacOS boxes this is fairly straightforward, but trying to coax code into building and running successfully on older hardware (eg ten year old raspberry pi) is harder and I’m still working out which things to fiddle on Cargo.toml to adjust how things are built. #GLEW #egui #wgpu

  8. I am still developing my “grab a repo to build and run it” skills with #rust.
    On my (mostly up to date) MacOS boxes this is fairly straightforward, but trying to coax code into building and running successfully on older hardware (eg ten year old raspberry pi) is harder and I’m still working out which things to fiddle on Cargo.toml to adjust how things are built. #GLEW #egui #wgpu

  9. I got kind of annoyed by Joplin since its app is Electron-based on desktop (meaning 500+ MB of RAM use and a ~15 second startup time), so I made my own notes library called vhm [vulpine headmate] :blobfoxmlem:.

    I'm almost done with the first client for it, which is egui-based! As soon as it's finished I'm going to jump right into making an Android client so it's cross platform :D

    #rust #egui

  10. @notgull egui has a library that hooks into the accessibility tools to interact with the UI programmatically, and renders screenshots that you can commit to the repo to do regression tests in CI.

    github.com/emilk/egui/tree/mai

    #egui #rustlang #accessibility

  11. Finally got around to publishing DimAndDimmer.

    Linux (x11) brightness controls in the UI.

    Should anyone with my exact and specific use case need it!

    I'm no Linux, Rust for DDC/CI expert but it does what I need it to!

    #linux #rust #egui

  12. Finished up my monitor control UI for managing screen brigtness on Linux!

    It controls hardware brightness/contrast through DDC/CI (via ddcutil) and additional dimming on X11 (via xrandr) with a future plan for supporting Wayland.

    I could probably just put lamps in my office instead, but this was a fun way to explore!

    DimAndDimmer, coming to you soon.

    #rust #egui

  13. @pyro I'm going to paraphrase your post. Please correct me if I'm wrong.
    You've created a command-line tool (CLI) in #rust which takes JSON-file as input and creates a file which contains doom-palette. Now you want create a similar tool but with a graphical interface (GUI). Is that right?
    I've created a rust-GUI-application #egui in the past. And it works on Linux and Windows. Can you provide some kind of simple drawing how the GUI should look like?
    My project "Menu_PDF": chaos.social/@MadMike77/115656

  14. I needed something simple for controlling a #Kodi instance. The keyboard shortcuts that you think work, work. #egui #rust
  15. This my first Rust Egui desktop application. It allows to enter menu data and generates PDF output with typst-to-lib.

    The program ships as a single executable file. It saves the data as a plain-text INI-file. The PDF shows the same data with different layouts over several pages.

    Its build to spec for my wife and will be used at her workplace.

    #rustlang #egui #typst
    github.com/PJaros/menu_pdf

  16. GUI with 2 textboxes, 5 labels. Leaderboard is now, least memory usage first:

    - 47 MB Slint with software-renderer-systemfonts
    - 50 MB QT
    - 100 MB GPUI
    - 105 MB EGUI
    - 135 MB Slint with defaults

    #Rust #Slint #Qt #EGUI #GPUI

  17. Really painful, I want #Rust GUI toolkit for Wayland that minimizes memory usage. My UI is two textboxes and five labels, I don't want to use browsers.

    #EGUI = 105MB of memory
    #GPUI with GPUI-components = 100MB of memory

    However running Smithay example Wayland window takes only 2MB of memory! But it is not toolkit, it doesn't have textboxes etc.

    If toolkit uses already over 100MB of memory, it feels like I could just use webview, sigh.

  18. pw-videomix v0.5.0 - a video synthesizer / mixer

    "Transform Filter"

    - Added transform nodes to change aspect ratio, size, background color, position, rotation (centered & off-centered) and reflections.

    - Enhanced the kaleidoscope filter with many more variables as well as p2, p4 and pm symmetry.

    ... more in the changelog

    Try it out here:
    gitlab.freedesktop.org/AdeptVe

    (There is no binary available anymore.)

    #rust #rustlang #vulkan #egui #winit #opensource #freesoftware #creativecoding #art

  19. Now you can create your own game UI or world textures with Ratatui! 🐀

    🧊 **soft_ratatui** — Pure software renderer.

    🚀 Perfect for embedding TUI widgets anywhere.

    🦀 No terminal or GPU needed, just Rust!

    ⭐ GitHub: github.com/gold-silver-copper/

  20. new blog post: debugging #egui on #Wayland:

    github.com/GoldsteinE/gh-blog/

    includes chasing a source of bad data through Rust’s windowing stack and possibly unnecessary gdb sway

  21. Damn... this is so fun to play with 🔥

    🎛️ **s-rack** — A modular synthesizer written in Rust 🦀

    🌐 Supports desktop & runs on the browser via WASM

    ➡️ Try it out: latest.s-rack.app/

    ⭐ GitHub: github.com/sharph/s-rack

  22. What attracted you, when seeing the above post?

    I want to know, if I have to take care about the impact of fundamental changes or can still let me drift wherever it takes me.

    #rust #rustlang #vulkan #egui #winit #opensource #freesoftware #creativecoding #art

  23. pw-videomix v0.4.0 - a video synthesizer / mixer

    "Gamepads!"

    - Added gamepad support to manipulate filter.
    For interactive art installations or for visual jam sessions on the couch.

    - Saving your project includes sink nodes now.

    ... more in the changelog

    Try it out here:

    gitlab.freedesktop.org/AdeptVe

    (There is no binary available anymore. Upload to the package registry is now restricted to 10mb.)

    #rust #rustlang #vulkan #egui #winit #opensource #freesoftware #creativecoding #art

    1/2

  24. @smranaldi Update after 50 days:

    I did my first big project with scientific computations in . I did use which fits perfectly for simulations with live plots.

    is a must for load balanced multithreading. Multithreading in general is fearless with the type system with Arc, Mutex, atomics, channels etc. (unless you produce a deadlock).

    I loved for threadsafe progressbars for my long simulations. 100% CPU usage with fancy progressbars, I love it!

    1/4