Welcome to the Panda3D documentation! Panda3D is an open-source, free-to-use 3D engine made for the development of realtime 3D games, visualizations, simulations, experiments — you name it! It consists of a library of subroutines that can be used with either the Python or C++ programming language, as well as a few tools to assist with development and debugging.
There are two versions of the manual: one for Python users and one for C++ users. Use the link in the sidebar to switch between the versions. You are currently viewing the manual for C++ users.
The manual is divided up into sections, which are listed below. You can at any time use the sidebar on the left side to navigate between the different sections and their contained pages.
We recommend that beginners start out by reading through the Introduction section, which walks through the process of installing Panda3D and ends with a “Hello World” tutorial explaining how to create a very small Panda3D program, to get a sense for what using the engine looks like.
Programming with Panda3D
This section of the manual explains the various features of Panda3D and the various concepts that underpin the library. It is littered with example code and links to the API reference, which should be studied side-by-side with the manual to get a full understanding of how to operate the various classes.
- Programming with Panda3D
- The Scene Graph
- Animated Models
- The Configuration File
- Render Attributes
- Camera Control
- Tasks and Event Handling
- Render Effects
- Finite State Machines
- Advanced operations with internal structures
- Render-to-Texture and Image Postprocessing
- Panda3D Rendering Process
- Particle Effects
- Collision Detection
- Object Management
- Hardware Support
- Advanced Loading Techniques
- Pathfinding using PandAI
This section documents the various methods that can be employed in order to find problems in a Panda3D program.
Performance optimization is often a necessary step in the production of a 3D game in order to make the game work on as broad a range of computer hardware as possible. This section explains how to find and fix performance issues using the powerful performance analysis tools that Panda3D offers.
This section explains how to compile a completed Panda3D application into an executable file and package it up for distribution.
This section lists a number of tools to support programming with Panda3D, including the various exporters for 3D modelling programs in order to get models imported into Panda3D.
This section contains a complete listing of all the classes and functions that are a part of the Panda3D API.
Aside from this manual, there are a number of other resources that may be useful when studying Panda3D, including books, sample programs, and user-contributed tutorials. This section contains links to those other resources.
If you are struggling with understanding or using Panda3D, feel free to ask the
community! There is a passionate community around Panda3D that is here to help.
You can post a question on the
discussion forum, visit our
Discord server or visit the
channel on the Libera.Chat IRC server.