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.
.. only:: python 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 **Python** users.
.. only:: cpp 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 :ref:`Introduction <intro>` 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.
.. toctree:: :titlesonly: :maxdepth: 2 introduction/index
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 :ref:`API reference <reference>`, which should be studied side-by-side with the manual to get a full understanding of how to operate the various classes.
.. toctree:: :titlesonly: :maxdepth: 2 programming/index
This section explains how to get artistic content (such as models and textures) produced in other programs imported into Panda3D.
.. toctree:: :titlesonly: :maxdepth: 2 pipeline/index
This section documents the various methods that can be employed in order to find problems in a Panda3D program.
.. toctree:: :titlesonly: :maxdepth: 2 debugging/index
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.
.. toctree:: :titlesonly: :maxdepth: 2 optimization/index
This section explains how to compile a completed Panda3D application into an executable file and package it up for distribution.
.. toctree:: :titlesonly: :maxdepth: 2 distribution/index
This section contains a complete listing of all the classes and functions that are a part of the Panda3D API.
.. toctree:: :titlesonly: :maxdepth: 2 reference/index
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.
.. toctree:: :titlesonly: :maxdepth: 2 more-resources/index
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 #panda3d
channel on the Libera.Chat IRC server.
.. toctree:: :hidden: glossary