PixelLight

Free open-source 3D application framework



Introduction

PixelLight is a 3D visualization framework and game engine that has been developed since 2002. The design focuses on high modularity and flexibility for application developers and content designers. It consists of a large set of libraries and tools that provide a wide variety of components to produce state of the art realtime applications and multimedia products.

With it's powerful scene system, PixelLight provides an easy and consistent way to design interactive realtime applications. By allowing the users to create most of the content and application logic entirely in the scene, PixelLight is best suited for rapid development and prototyping. For this, all parts of the framework can be used in a consistent way throughout the whole development process, and the integration of modern scripting languages allows to easily access every part of the system.

Cross-platform

PixelLight is a cross-platform framework currently running on Windows, Linux and Android operating systems. It was designed from the ground up to be platform independent by abstracting all system-dependent functionalities and providing backends for concrete systems. This way it is possible to support other platforms easily by implementing new backends, without the need to rewrite or change anything else.

Flexibility of use

PixelLight is designed to be very flexible, so it can be used for many different use cases. Depending on the specific kind of project it can be configured very differently, e.g. allowing you to use completely different kind of renderers for e.g. product presentations or high-end games. Therefore PixelLight can be used for very different kinds of software, e.g. games, product presentations or even data visualisation applications and is not limited or especially suited for any specific purpose.

C++ API

The main part of the PixelLight engine is a huge set of libraries written in C++ using modern C++11 language features like the null pointer literal nullptr or override enabling the compiler to detect and blame errors related to overwriting methods. The topics of these libraries range from system abstraction libraries, over the main scene and component system to many loose backends for specific tasks. This allows a programmer to control every part of the engine through the application and to gain a maximum of flexibility and performance by directly using the C++ API. However, it also provides levels or abstractions to simplify the use of the framework, so you only need to access things you want to change while making it possible to "just use" the framework in it's standard behaviour.

Integration of third-party middleware

PixelLight is not only a 3D rendering engine, but a complete framework that tries to combine as much as possible of what is needed to develop an application in a consistent way. This minimizes the cost of integrating several libraries into a software, which is often difficult because of distinct software architectures and design principles. To achieve this goal, PixelLight provides interfaces for many types of middleware, such as rendering, scripting, sound or physics engines, and implements them in the form of plugins for the specific software backend. PixelLight already supports several well-known software libraries this way (e.g. Lua for scripting, Newton for physics, OpenAL and FMOD for sound, SPARK as alternative particle engine, libRocket for HTML/CSS game interfaces... just to mention a few of them...) and can be easily extended by creating new backends for other software packages. So the choice of backend libraries is yours and not predetermined by the framework.

Read more...