An API for programming 3d graphics (and of course 2d graphics, there are some examples of using it as a rasterization only API). Based on a state machine paradigm, it is awfully easy to program, yer typical 3d example of a cube spinning round and round is about thirty lines of code (and the built-in world famous teapot is a plus!). OpenGL is multiplatform and open versions of it exist, like Mesa. It also has some helper libraries like Glu and Glut, who provides an abstraction for windowed interfaces and input devices, amongst other useful things.

It has been said to compete with Microsoft's Direct3D, part of its DirectX, but even though both are used to program games, it has to be said that OpenGL has a wider scope of applications than games, whereas Direct3D is commonly seen just as an easy way to get hardware-accelerated graphics on Windows platform, mainly on games. Perhaps Direct3D is somewhat more suited to games as it kind of integrates with all the other parts of DirectX, with support for media files, network play and some other stuff.

OpenGL is said to win on graphics quality (though I guess that depends on the driver, mostly), and above all, ease of use. The Simple DirectMedia Layer can be used to provide some of the functionality that DirectX has, in a portable way, just like the forthcoming OpenML.