grafix
Grafix - библиотека для управления визуальными образами.
Основная идея состоит в том, что графические интерфейсы, 3d-графику и т. п. целесообразно представлять через сетевые протоколы. Управление графикой реализуется на удобном языке (например Python) в ясной модели взаимодействия процессов, а представление - в подходящей технологии (веб,Qt, Raylib или любой другой).
Это позволяет:
- менять реализации интерфейсов, например переключать их между веб и десктоп;
- удобным образом запускать основную программу (управляющую составом и логикой интерфейса) на одной машине, а процесс рисующий интерфейс - на другой;
- обновлять, заменять реализации графических интерфейсов независимо от основной программы.
На текущий момент реализовано:
- веб 2d графический интерфейс (кнопки, колонки и т.п., на базе DOM);
- веб 2d графика (рисование графиков функций, на базе Apache Echarts)
- веб 3d графика (точки, отрезки, на базе ThreeJs);
- python-библиотека для основной программы.
Сейчас реализация Grafix предоставляет возможность писать программную логику на Python, а интерфейс для неё будет выполняться в веб-браузере.
Ресурсы
- Примеры простых программ.
- Пример: научная визуализация.
- Документация: как добавлять свои типы графических объектов.
- Презентация Grafix.
Запуск примеров
- Установите питон-пакет grafix (см. установка).
- Скачайте репозиторий.
- Зайдите в папку examples, запускайте примеры.
Установка
Если Вы хотите использовать библиотеку, выполните команду:
pip install -e git+https://hub.mos.ru/pavel.vasev/grafix.git#egg=grafix
Установка для разработки
Если Вы хотите развивать библиотеку, то:
- Скачайте репозиторий https://hub.mos.ru/pavel.vasev/grafix.git, например командой:
git clone git@hub.mos.ru:pavel.vasev/grafix.git
- Выполните команду для установки пакета grafix из папки проекта:
pip install -e . --no-deps
Ограничения
Веб-интерфейс не подходит для интерфейсов с частым взаимодействием с серверной частью. Частота обновлений интерфейса не сможет превышать 20-40 раз в секунду, суммарно по всем объектам интерфейса. Вы можете реализовать свои типы графических объектов, которые выполняют локальную логику внутри веб-интерфейса.
Похожие проекты
Другие интересные проекты
-
https://www.gradio.app/ !!!! удаленный гуи
Публикация
- П. А. Васёв, Сетевая технология программирования визуальных интерфейсов // GraphiCon 2024 : Материалы 34-й Международной конференции по компьютерной графике и машинному зрению, Омск, 17–19 сентября 2024 года. – Омск: Омский государственный технический университет, 2024. – С. 354-360. – DOI 10.25206/978-5-8149-3873-2-2024-354-360.
Copyright
2025 Павел Васёв Лицензия MIT