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.5.tar.gz (31.2 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.5-py3-none-any.whl (38.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lizi_engine-0.1.5.tar.gz
  • Upload date:
  • Size: 31.2 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.5.tar.gz
Algorithm Hash digest
SHA256 0e778fbf47c6c288325cc641f0ec1a3144634d76a5d312a32774e8f22c4aeaae
MD5 eeff3f2d049723f6a465745c01e36040
BLAKE2b-256 b0f32ce9bcb6cfa008acc0c9c6c2339c6450d75aebd6ce8d9031ee95ddd52ac6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lizi_engine-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 38.9 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3e63d93a631e4966f2f40b011692865f5d0d5fb325baeebaafe437c81a5b7976
MD5 e447126d32a855ee7a8a63232b352f51
BLAKE2b-256 2fc88f74502c1189a9d781b8c4f5b449fd1108c8930c3984a37933bdcd2886fd

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