A python, pure software design pattern based package that feaures plain and simple Entities, Components and Systems in a Scenegraph architecture.
- Documentation: https://pyecss.readthedocs.io
- Source code: https://github.com/papagiannakis/pyecss
- Bug Reports: https://github.com/papagiannakis/pyecss/issues
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
-
For
standalone
use, viapip
pip install pyECSS
-
For
developing
, fork this repository and runpip 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.
- Prof. George Papagiannakis
- Dr. Kamarianakis Manos
pyECSS is licensed under the Apache License, Version 2.0. See LICENSE.txt for the full license text.