ChibiNemesis / pyECSS

Entity Components Systems in a Scenegraph

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The pyECSS package

PyPI Documentation

pyECSS (Entity Component Systems in a Scenegraph)

A python, pure software design pattern based package that feaures plain and simple Entities, Components and Systems in a Scenegraph architecture.


Why ECS in a Scenegraph?:

This package is aimed as a basic behind-the-black-box implementation of the two popular notions of Scenegraphs and ECS using pure 'software design patterns'. Most modern game engines are based in either scenegraphs or some version of ECS but not in their purest form. pyECSS is an attempt to show to the interested learner a clean and simple implementation of each of them, that can be used seaprately or combined for any types of applications build on top of them: from deep learning for CG till VR systems and scientific visualization.

This is part of a complete re-write in python of the glGA framework using a modern Entity - Components - Systems in a Scenegraph approach which resulted in pyECSS.

The following software design patterns are employed:

  • Composite, Iterator Patterns: Entity, Component, ComponentIterator
  • Visitor Pattern: System
  • Facade Pattern, Factory Method: ECSSManager
  • Singleton Pattern: ECSSManager
  • Observer, Mediator: EventManager

Installation

  • For standalone use, via pip

    pip install pyECSS
    
  • For developing, fork this repository and run

    pip install -e . --config-settings editable_mode=strict
    

    in the same directory with setup.py.

More information can be found in Documentation and specifically at Installation.

Contributors

  • Prof. George Papagiannakis
  • Dr. Kamarianakis Manos

Licensing

pyECSS is licensed under the Apache License, Version 2.0. See LICENSE.txt for the full license text.


Copyright 2021-2023 Dr. George Papagiannakis, papagian@csd.uoc.gr

All Rights Reserved

University of Crete & Foundation for Research & Technology - Hellas (FORTH)

About

Entity Components Systems in a Scenegraph

License:Apache License 2.0


Languages

Language:Python 100.0%