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

Uploaded Python 3

File details

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

File metadata

  • Download URL: lizi_engine-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 696dfda4a399cd8aa1e49c4e86bcda19710a8b56860914c9d886b00522cdbaf2
MD5 999276e84b6cf41ea2bd48e1853dc00b
BLAKE2b-256 8858d69249047ce52576fc0cc36c84287db8ef194252345bfccf0e5a8dfcd97b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lizi_engine-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e30a3848e5f6661d73812ad0b6d3f1570342641e3d64aa7d000b9be6f8bc9205
MD5 147330e3c4378020661612132f271dd7
BLAKE2b-256 d329788967d00ace3bc9e3e96018d9871b7e208dc75b8a3cc8d46ac7718e7fe8

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