Skip to main content

LiziEngine

Project description

LiziEngine

项目概述

向量场可视化引擎,采用现代化的架构设计,提供高性能的向量场计算和渲染功能。

项目特点

  • 模块化设计: 将代码按功能划分为多个模块,每个模块职责单一
  • 依赖注入: 避免单例模式,降低模块间耦合
  • 事件驱动: 采用事件系统进行模块间通信,降低耦合度,支持异步处理
  • 状态集中管理: 统一的状态管理,避免全局变量滥用
  • 配置统一管理: 集中的配置管理,支持从文件加载配置和热更新
  • 资源管理: 更好的资源生命周期管理,防止内存泄漏
  • 高性能计算: 支持CPU和GPU加速计算

架构设计

核心模块 (core/)

  • container.py: 依赖注入容器,提供依赖注入功能,避免单例模式,降低模块间耦合
  • events.py: 事件系统,提供发布-订阅模式的事件通信机制,支持异步处理
  • state.py: 状态管理,提供统一的状态管理功能,支持状态变更通知和状态快照
  • config.py: 配置管理,提供统一的配置管理功能,支持从文件加载配置和热更新
  • app.py: 应用核心,整合各个管理器,提供统一的应用程序接口

计算模块 (compute/)

  • vector_field.py: 向量场计算,提供向量场计算的核心功能,支持CPU和GPU计算
  • cpu_vector_field.py: CPU向量场计算,提供基于CPU的向量场计算功能
  • gpu_vector_field.py: GPU向量场计算,提供基于OpenCL的GPU向量场计算实现

图形模块 (graphics/)

  • renderer.py: 渲染器,提供向量场的渲染功能,支持OpenGL渲染和着色器程序

窗口管理模块 (window/)

  • window.py: 窗口管理,提供窗口管理功能,支持OpenGL窗口创建和事件处理

项目结构

LiziEngine-Reborn/
├── docs/              # 文档目录
├── lizi_engine/       # 主代码目录
│   ├── core/          # 核心模块
│   ├── compute/       # 计算模块
│   ├── graphics/      # 图形渲染模块
│   ├── window/        # 窗口管理模块
├── examples/         # 示例代码
├── plugin/           # 插件模块
├── requirements.txt  # 项目依赖

快速开始

安装依赖

pip install -r requirements.txt

运行示例

# 基本使用示例
python examples/basic_usage.py

# 向量场模式示例
python examples/patterns.py

架构设计

LiziEngine采用现代化的架构设计,主要包括以下模块:

核心模块 (core)

  • 容器 (container.py): 提供依赖注入功能,避免单例模式,降低模块间耦合
  • 事件系统 (events.py): 提供发布-订阅模式的事件通信机制,支持异步处理
  • 状态管理 (state.py): 提供统一的状态管理功能,支持状态变更通知和状态快照
  • 配置管理 (config.py): 提供统一的配置管理功能,支持从文件加载配置和热更新
  • 应用核心 (app.py): 整合各个管理器,提供统一的应用程序接口

计算模块 (compute)

  • 向量场计算 (vector_field.py): 提供向量场计算的核心功能,支持CPU和GPU计算
  • CPU计算 (cpu_vector_field.py): 基于CPU的向量场计算实现
  • GPU计算 (gpu_vector_field.py): 基于OpenCL的GPU向量场计算实现

图形渲染模块 (graphics)

  • 渲染器 (renderer.py): 提供向量场的渲染功能,支持OpenGL渲染和着色器程序

窗口管理模块 (window)

  • 窗口管理 (window.py): 提供窗口管理功能,支持OpenGL窗口创建和事件处理

开发指南

添加新功能

  1. 在相应的模块中添加新功能
  2. 通过事件系统与其他模块通信
  3. 更新配置文件(如需要)
  4. 更新状态(如需要)

自定义渲染器

  1. 继承 VectorFieldRenderer
  2. 重写相应的渲染方法
  3. 在应用核心中注册新的渲染器

自定义计算器

  1. 继承 VectorFieldCalculator
  2. 实现自定义的计算方法
  3. 在应用核心中注册新的计算器

注意事项

  1. 避免直接修改其他模块的内部状态
  2. 使用事件系统进行模块间通信
  3. 遵循单一职责原则
  4. 保持配置和状态的一致性
  5. 依赖注入容器负责管理组件的生命周期
  6. 使用GPU计算时需要确保OpenCL环境已正确配置

许可证

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lizi_engine-0.1.3.tar.gz (31.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lizi_engine-0.1.3-py3-none-any.whl (39.1 kB view details)

Uploaded Python 3

File details

Details for the file lizi_engine-0.1.3.tar.gz.

File metadata

  • Download URL: lizi_engine-0.1.3.tar.gz
  • Upload date:
  • Size: 31.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for lizi_engine-0.1.3.tar.gz
Algorithm Hash digest
SHA256 78753f326552d70db67fac3a26b62f2bafbddb22843daa8182943ce1e3f3dab7
MD5 6eb7690d6d3fd609905058f3ee89b2d3
BLAKE2b-256 21da8a979e0f044fd74cc8f82669e2bc2fdead5b52e4f8b800ee8a4d516e1221

See more details on using hashes here.

File details

Details for the file lizi_engine-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: lizi_engine-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 39.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for lizi_engine-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 51caffd0e488cea2114f890be5276cba7ddf20d885bf03e1043409ff57c841e3
MD5 3177b619c85e92d4492390fba128b2e2
BLAKE2b-256 1b2ef3f788a157daa9c5b2241789a3abd85079e69ac19bbe345c78bd271fd38f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page