Welcome to the Panda3D Engine Developer Manual (Unofficial)!
A developer-oriented manual for understanding and modifying the Panda3D engine internals. See the Preface for how it is organized.
Getting oriented
- Preface
- Source tree
- panda/src directories
- Scene graph & rendering core
- Graphics objects & rendering backends
- Geometry, models & images
- Characters & animation
- Collision & physics
- Core utilities, serialization & threading
- Data graph, input devices & networking
- Text, GUI & rendering utilities
- Media decoding
- Audio
- Frameworks & instrumentation
- Support, scaffolding & misc
- dtool/src directories
- direct/src directories
- pandatool/src directories
- Cross-cutting concepts
- 1. TypeHandle / RTTI — Panda’s hand-rolled type system
- 2. Reference counting & PointerTo
— intrusive memory management - 3. Datagram / BamReader / BamWriter —
.bamserialization & versioning - 4. PipelineCycler / Copy-on-Write — the threaded render pipeline
- 5. Interrogate — automatic Python binding generation
- Project health, ecosystem & deployment
- Bus factor: one part-time maintainer carries the project
- Institutional withdrawal (Disney → CMU → community)
- Recurring “Is Panda3D dead?” perception
- Misleading “Active developers: CMU and Disney” in the manual
- Small community vs. mainstream engines; users weigh switching to Godot
- Maintainers’ own tech-debt admissions: “old and crufty,” “needs a rewrite”
- No first-party visual / level / scene / shader editor
- PR-review bottleneck
- Documentation & learning curve
- Build & installation
- Deployment & packaging
- Severity & status summary
Engine subsystems
- Engine subsystems
- dtool / interrogate / config
- Scene graph (pgraph)
- Graphics objects (gobj)
- Display & GSG backends
- Characters & animation
- Egg library & loader
- Collision & physics
- Core utilities, events & pipeline
- Text, GUI, grutil & particles
- Devices, data graph & networking
- Audio
- direct (Python show framework)
- pandatool (asset pipeline tools)
Reference & FAQ
- File formats & reference
- The GraphicsEngine
- ppython
- Panda Audio Documentation
- Coding Style
- Collision Flags
- egg-palettize
- The Egg File Format
- How to Control Render Order
- How to Make a Multipart Actor
- MultiGen Model Flags
- Multi-Texturing in Maya
- The Config (PRC) System
- Miscellaneous & developer FAQ
- Appendix