We present the Elements project, a lightweight, open-source, computational science and computer graphics (CG) framework, tailored for educational needs, that offers, for the first time, the advantages of an Entity-Component-System (ECS) along with the rapid prototyping convenience of a Scenegraph-based pythonic framework. This novelty allows advances in the teaching of CG: from heterogeneous directed acyclic graphs and depth-first traversals, to animation, skinning, geometric algebra and shader-based components rendered via unique systems all the way to their representation as graph neural networks for 3D scientific visualization. Taking advantage of the unique ECS in a a Scenegraph underlying system, this project aims to bridge CG curricula and modern game engines (MGEs), that are based on the same approach but often present these notions in a black-box approach. It is designed to actively utilize software design patterns, under an extensible open-source approach. Although Elements provides a modern (i.e., shader-based as opposed to fixed-function OpenGL), simple to program approach with Jupyter notebooks and unit-tests, its CG pipeline is not black-box, exposing for teaching for the first time unique challenging scientific, visual and neural computing concepts.
翻译:我们提出了“Elements”项目,一个轻量级、开源的面向计算科学与计算机图形学(CG)的教育框架,该框架首次将实体-组件-系统(ECS)的优势与基于场景图的Python化框架的快速原型开发便利性相结合。这一创新推动了CG教学的进步:从异构有向无环图与深度优先遍历,到动画、蒙皮、几何代数及基于着色器的组件(通过独特系统渲染),直至将其表示为用于3D科学可视化的图神经网络。凭借场景图底层系统中独特的ECS架构,本项目旨在弥合CG课程与现代游戏引擎(MGEs)之间的鸿沟,后者虽基于相同方法,但常以黑盒方式呈现这些概念。该框架被设计为在可扩展的开源方法下积极利用软件设计模式。尽管Elements提供了现代(即基于着色器的,而非固定函数OpenGL)、易于编程的方法(支持Jupyter notebook与单元测试),其CG管线并非黑盒,而是首次在教学过程中揭示了独特且具有挑战性的科学、视觉与神经计算概念。