General Preparation

You can use multiple programming languages with Panda3D. The most commonly used language is Python, followed by C++. Some manual pages offer both C++ and Python information - use the toggle button at the top of the manual page to toggle between C++ information and Python information.

You are currently viewing the C++ version of the manual. We recommend using Python when first starting out with Panda3D. If you wish to view the Python version instead, click the “Python” link at the top-left corner of this page.

Learning C++

It is possible to write Panda3D programs using C++. However, since most of the documentation uses Python, it may be better to learn Panda3D using Python first, and then switch to C++ later. If you do switch, the function calls are very similar.

C++ is an object-oriented high-level multi-purpose language. It is actually a copy of the C programming language, but object-oriented, with more functions. Here are a few links to C++ tutorials that might be useful for you:

The binaries of the last Windows release are built with Microsoft Visual C++ 2015. If you want to use the provided binaries you can use this version, but 2017, 2019 or 2022 will work as well.

If you wish to use another version you will have to build Panda from source. Note that if you do that you will need all the dependencies (such us libjpeg, libpng, etc) built by the same compiler than you are using. You can do this yourself or look around for third-party binaries.

On UNIX-like operating systems, such as Linux and macOS, you can use the LLVM Clang or GNU G++ compiler.

Note

While many resources for Panda3D are written with Python users in mind, in many cases the code can be fairly easily translated to C++. Of particular note is the fact that sample code in Python may use the camelCase() naming convention for methods, which is not available in the C++ API. You will need to translate these to the equivalent snake_case() names.

Any Python classes in the panda3d package are also available in the C++ API, whereas Python classes in the direct package are not.