G

grafix

grafix

Grafix - библиотека для управления визуальными образами.

1

Основная идея состоит в том, что графические интерфейсы, 3d-графику и т. п. целесообразно представлять через сетевые протоколы. Управление графикой реализуется на удобном языке (например Python) в ясной модели взаимодействия процессов, а представление - в подходящей технологии (веб,Qt, Raylib или любой другой).

Это позволяет:

  • менять реализации интерфейсов, например переключать их между веб и десктоп;
  • удобным образом запускать основную программу (управляющую составом и логикой интерфейса) на одной машине, а процесс рисующий интерфейс - на другой;
  • обновлять, заменять реализации графических интерфейсов независимо от основной программы.

На текущий момент реализовано:

  • веб 2d графический интерфейс (кнопки, колонки и т.п., на базе DOM);
  • веб 2d графика (рисование графиков функций, на базе Apache Echarts)
  • веб 3d графика (точки, отрезки, на базе ThreeJs);
  • python-библиотека для основной программы.

Сейчас реализация Grafix предоставляет возможность писать программную логику на Python, а интерфейс для неё будет выполняться в веб-браузере.

Ресурсы

Запуск примеров

  1. Установите питон-пакет grafix (см. установка).
  2. Скачайте репозиторий.
  3. Зайдите в папку examples, запускайте примеры.

Установка

Если Вы хотите использовать библиотеку, выполните команду:

pip install -e git+https://hub.mos.ru/pavel.vasev/grafix.git#egg=grafix

Установка для разработки

Если Вы хотите развивать библиотеку, то:

  1. Скачайте репозиторий https://hub.mos.ru/pavel.vasev/grafix.git, например командой:
git clone git@hub.mos.ru:pavel.vasev/grafix.git
  1. Выполните команду для установки пакета grafix из папки проекта:
pip install -e . --no-deps

Ограничения

Веб-интерфейс не подходит для интерфейсов с частым взаимодействием с серверной частью. Частота обновлений интерфейса не сможет превышать 20-40 раз в секунду, суммарно по всем объектам интерфейса. Вы можете реализовать свои типы графических объектов, которые выполняют локальную логику внутри веб-интерфейса.

Похожие проекты

Другие интересные проекты

Публикация

Copyright

2025 Павел Васёв Лицензия MIT