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.6.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.6-py3-none-any.whl (39.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lizi_engine-0.1.6.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.6.tar.gz
Algorithm Hash digest
SHA256 8fe26dc9e99c18876d08a5a971139c82d02981b40c03a7608586595855e61e09
MD5 553e2db83612fd8a70f5ddc180de5e7f
BLAKE2b-256 88889b3f3aea17060aedc80e8924009028a383ce9faed47fffbf9afc2e5646c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lizi_engine-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 39.0 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 962ab86eb9d8bfa7b7aab6fa39b70e4b0002f8d47baf33417a8ec1cab2f26181
MD5 01507ecae82b99a62edacec644539ed1
BLAKE2b-256 7c23058262d649f78b475b9e75089fdb4b4c76d89110539172c526ae2f54f2f8

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