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) 的优点与场景图为基础的pythonic框架的快速原型开发相结合。此种崭新方法可以推进 CG 教育的发展:从异构有向无环图和深度优先遍历,到动画、蒙皮、几何代数和基于着色器的组件以及通过独特系统渲染的组件,一路上到它们作为图神经网络的表示的 3D 科学可视化。利用在场景图下面的 ECS,本项目旨在弥合 CG 课程和现代游戏引擎 (MGEs) 之间的差距,后者基于同样的思路,但通常以黑匣子方式呈现这些概念。它的设计旨在使用可扩展的开源方法积极地利用软件设计模式。虽然 Elements 提供了现代(即基于着色器,而不是固定的 OpenGL)的简单编程方法,以Jupyter笔记本和单元测试为基础,但是其 CG 流水线并不是一种黑匣子,首次公开困难的科学、视觉和神经计算概念,以便于教学。