The Extendable Graphics System: An Introduction to EGS
Daniel Kaiser, Florian Rhiem
- Audience level:
- Novice
- Category:
- Python Libraries
Description
In this poster session we introduce EGS, the extendable graphics system. EGS is a library for the unified creation of two- and three-dimensional graphics. We will present how you can visualize your data using egs.py, the high-level Python API, and how to create your own domain-specific extensions to EGS in C, C++ and Python, using the example of a molecule renderer.
Abstract
There is a wide range of libraries, frameworks and toolkits that can be used for data visualization in Python. However, the combination of two- and three-dimensional graphics is still a weak spot in current software, often because only one of the two types of graphics are supported, but also because of complicated ‘hacks’ being required to combine the two, poor performance for big datasets or because of an API that is just too complex and low-level for everyday tasks.
In this poster session, we will present our attempt on improving this situation, the extendable graphics system. EGS is a library for the unified creation of two- and three-dimensional graphics. Our goal is to show people how they might apply this library to their use cases and, as EGS is still in early development, to gather feedback and learn about how we can improve and extend its features and usability.
We will use the poster to present the architecture, usage and extendability of the library. EGS consists of a core and a number of plugins. While the core provides the basics, like window handling and user interaction, the plugins implement the actual rendering of objects, from simple points to complex molecules.
The poster will focus on three ways you can use EGS in Python: Even though the library is written in C/C++, Python can be used both to interact with the wrapped high-level API in egs.py or to implement your own extensions. In addition, the library can also be used as a GKS driver built on top of it. This lets EGS serve as rendering library for the [GR framework](http://gr-framework.org) - in particular as backend to [Matplotlib](http://matplotlib.org), without changing your existing Python code.