About a month ago,
I announced here the availability
new experimental high performance visualization package in Python
that I'm developing as part of my current research project.
It has significantly evolved since then, but it is still experimental.
Moreover, the interface is still not ready for a 0.1 release. I also need to do
much more tests on various systems and graphics cards. In this post I'll
talk about how the idea of writing a new visualization package came up in the
first place. I'll also describe the new features that are coming to the
I've been programming in
for a few months. Like a lot of programmers,
I learnt the language by myself, thanks to various tutorials, books or e-books
on the subject. One couldn't say there's a lack of resources on this
20-years old language since it's so widely used throughout the world. Yet,
I was surprised to discover a few weeks ago that the vast majority of what
I learnt has been obsolete for almost a decade. The reason is that too many
textbooks and tutorials on the Internet about OpenGL refer to a deprecated
way of programming and which relates to the fixed-function pipeline.
The modern way of programming in OpenGL is to use the programmable pipeline
through shaders. The
free e-book by
Jason McKesson is a very good
resource for learning modern OpenGL programming using the programmable
UPDATE: you may be interested in the Vispy library, which provides easier and more Pythonic access to OpenGL.
OpenGL is a widely used open and cross-platform library for real-time 3D graphics, developed more than twenty years ago. It provides a low-level API that allows the developer to access the graphics hardware in an uniform way. It is the platform of choice when developing complex 2D or 3D applications that require hardware acceleration and that need to work on different platforms. It can be used in a number of languages including C/C++, C#, Java, Objective-C (used in iPhone and iPad games), Python, etc. In this article, I'll show how OpenGL can be used with Python (thanks to the PyOpenGL library) to efficiently render 2D graphics.