Engine subsystems
Source-grounded deep-dives into the major Panda3D subsystems, written for
developers who want to read, debug, and modify the engine. Each page
documents one cluster of related panda/src (or dtool/direct/pandatool)
directories and, for every directory, covers:
what it is and the central abstraction,
the key classes, their roles, and the inheritance chain (with real file paths),
how it plugs into the rest of the engine,
where to start reading if you wanted to fix a bug or add a feature there,
design rationale and gotchas drawn from ~20 years of community discussion (forum, Discord, GitHub issues/PRs, and the maintainers’ own commits), cited.
Every class name, file path, and inheritance claim on these pages was checked
against the Panda3D master source tree by an adversarial verification pass.
Before diving into a specific subsystem, read the Cross-cutting concepts chapter — the type system, reference counting, BAM serialization, the threaded pipeline cycler, and interrogate bindings recur in every subsystem below.
The subsystems
Page |
Covers ( |
|---|---|
|
|
pgraph, pgraphnodes, cull |
|
gobj, gsgbase |
|
display, glstuff, glgsg, the platform display modules, tinydisplay |
|
char, chan, parametrics |
|
egg, egg2pg, pnmimage, pnmimagetypes |
|
collide, physics, bullet, ode |
|
putil, event, pipeline, express, linmath, mathutil |
|
text, pnmtext, pgui, grutil, particlesystem, distort |
|
device, dgraph, tform, net, nativenet, downloader, vrpn |
|
audio, audiotraits, movies (+ ffmpeg) |
|
|
|
|
For a one-line description of every directory (including the ones without a full deep-dive), see the Source tree chapter.
For the project-level, ecosystem, build, and deployment footguns that aren’t tied to a single subsystem, see Project health, ecosystem & deployment.