Development Builds

Warning: Here be dragons!

This page contains unstable and untested development builds of Panda3D. These builds may contain bugs and may crash unexpectedly. Click here to go back to the list of stable versions of Panda3D.

master branch

The easiest way to install the latest development build is with pip:

pip install -U --pre --extra-index-url https://archive.panda3d.org/ panda3d

See other platforms

Recent successful builds for oracular on branch master

71b83d8f4f3417eb5e199805f7e8ebdba07e3ee3

View changes - 2026-01-20T10:42:36Z

  • 71b83d8 makepanda: Add /usr/local/lib64 to searched library paths
  • 2587247 audio: Ability to read comments/metadata from sound files (#1656)
  • f025ba5 glgsg: Fix compilation error, remove redundant parameter
  • 576d124 glgsg: Support SSBO clear, assorted fixes
  • 5c1a957 gles2gsg: Add some missing OpenGL ES 3 constants
  • 0b3bdae glgsg: Expose native IDs for other kinds of resources than textures
  • d94b2dc glgsg: Fix INLINE keyword on GLSamplerContext constructor
  • 586b92a makepanda: fix for python >= 3.13 on android
  • 5a82ac3 Use PyObject_Vectorcall for calls to Python for better efficiency
  • 8fe8862 dtoolbase: The default pvector constructor shouldn't be explicit
  • 0753530 gobj: Fix some int signedness comparison warnings
  • b3ac6e7 gobj: Fix warnings due to GCC being terrible at static analysis
  • b630e14 py_compat: Add vectorcall functions
  • 8080651 express: Make PTA init from Python sequence faster by using vectorcall
  • 0bb8a45 Use PyObject_CallOneArg instead of PyObject_CallFunctionObjArgs for perf
  • f958fdc interval: fix Python callable inputs not called in ET_instant mode
  • 3c852c8 audio: Disable OpenAL hrtf by default, fixes macOS init crash


136e1279eaf13a2756648818e10f49b8b3621bdd

View changes - 2026-01-01T00:02:40Z

  • 136e127 Implement ShaderBuffer async extract_data method
  • cb03554 putil: Support vector_uchar to be passed to an event parameter
  • c688b67 putil: Add missing pointerTo.h include to callbackObject.h
  • a9aa255 glgsg: Support updating SSBO data from the CPU (only UH_dynamic)
  • af498ff gsg: Use DSA for extracting shader buffer data
  • 86b1304 display: Support extracting only subset of SSBO
  • b806035 putil: Switch to new Python 3.13+ public long APIs for BitArray
  • 02bd388 build: Update to interrogate 0.8.1
  • 3d3c2e7 text: Give default font a default name
  • b4b1872 dtoolutil: Improve error messages for iostream wrappers
  • 52829ed workflow: Disable OpenAL on macOS for now for test build
  • 97de786 direct: Fix DirectGrid alpha issue and getVertexColor error (#1793)
  • 585c581 movies: Update FLAC decoder
  • e918eff makepanda: Set default MSVC version to 14.3 (2022)
  • c54c908 Merge branch 'release/1.10.x'


e560eb8da370d86b096d6cb65eafd9ab40879b9a

View changes - 2025-12-25T15:40:30Z

  • e560eb8 Add Python 3.14 to setup.cfg
  • 4732c24 workflow: Add Python 3.14 to test matrix
  • 9f13db3 Update version numbers from 1.10.15 to 1.10.16
  • c6e72fb makepanda: Don't set HAVE_OPENAL_FRAMEWORK when building with thirdparty
  • 12b5faf tests: Fix future tests always failing on Python pre-3.5
  • 8177021 tests: Fix unit test suite on Python 2.7
  • 225eb9b glgsg: Mark SSBO unbound from all binding points upon deletion



14b8cd74c25f08ec6b3614315d1c73a047d41347

View changes - 2025-12-22T15:16:31Z

  • 14b8cd7 tests: Fix GLSL shadow matrix unit test values
  • 0e41b62 Merge branch 'release/1.10.x'
  • f123cb1 shader: Fix memory corruption with matrix array shader inputs
  • 64b98ea GLSL: Add p3d_MetallicRoughnessTexture input mapped to M_metallic_roughness
  • 975a9fb egg: Add limited forward compatibility for ORM textures
  • e319be1 doc: Add release notes for 1.10.16
  • 33888de glgsg: Do not prefer depth-stencil ms renderbuffers on macOS
  • b09ebf3 makewheel: Exclude some more system libs
  • 40ecb01 samples: Remove unused CardMaker import from procedural-cube sample
  • 6b3ed01 framework: Clean up task manager on close_framework()
  • cbd25a4 makepanda: Don't look for macOS framework when cross-compiling
  • d020b25 windisplay: Fix recursive loop in adjust_z_order
  • c8c5ae8 putil: Fix SparseArray get_lowest_on_bit and get_lowest_off_bit
  • df4ebca audiotraits: Add support for different coordinate systems for 3d audio
  • 04e5cbe Add support for (occlusion-)metallic-roughness textures
  • 5d8af37 makepanda: Only add -msse2 when building for x86 platforms
  • bd1105d directnotify: Add snake_case versions of methods
  • 2759fb9 build: Allow to build for riscv64
  • 5b2cb98 dist: Add hidden import for jnius
  • 6ada507 dist: Add linecache stubs for newer versions of Python
  • 784f32d showbase: add user_exit alias for userExit
  • f24bcf9 ode: Add set_first_contact and set_backface_cull to OdeRayGeom
  • 5f75553 makepanda: Remove reference to deprecated AGL framework on macOS
  • 6acdcc5 patomic: Fix support for macOS pre-10.12
  • 4705b32 audiotraits: Add support for different coordinate systems for 3d audio
  • 55e9d3d build(deps): bump actions/cache from 4 to 5
  • 12facf4 x11: Set x-detectable-auto-repeat to true by default
  • ea55924 android: Fix assorted compatibility issues with plyer/pyjnius
  • ba6b66f android: Fix crash when setting window title on wrong thread
  • 8fb23c5 dist: Fix inability to pick up nested hidden modules
  • d6da196 dist: Add linecache stubs for newer versions of Python
  • 8d25975 dist: Add hidden import for jnius
  • f4ee950 deploy-stub: Fix missing time.h include
  • 6a77fc6 dist: Update macOS target for Python 3.14 to 10.15
  • 03873c7 Update Windows thirdparty tools to 1.10.16
  • 8ece2c8 Update BACKERS.md from latest master
  • 2ecbd54 installer: Add Python 3.15


c32d5146b330c934d6c80024e91e0b8658e4fd72

View changes - 2025-11-26T12:36:10Z

  • c32d514 dist: Gracefully skip accidentally included Python .egg archives
  • 1cfa61b showbase: Temporarily add back throw_new_frame
  • a32d743 Changed unsigned int to signed int for resync in DistributedSmoothNode. (#1162)
  • 7ef2f06 Add a pandatool for converting various image formats to the TXO format. (#1740)
  • f91e5df build(deps): bump actions/checkout from 5 to 6
  • 227a9e3 workflow: Update from deprecated macOS 13 runner to macOS 14
  • 2c9997e x11: Remove methods added erroneously during bad merge
  • a01e039 x11: Add function for detecting auto repeat key events (#1735)
  • 23782ec task: Also check for subclasses of coroutine
  • fd5258f makepanda: Skip building TinyOsxGraphicsWindow when building 64-bit
  • 56cdea1 pgui: Fix bugs with pgSliderBar dragging
  • 062e336 directgui: Add default release sounds for buttons
  • 429af9a putil: Add method to clear BamCache on disk (#1774)
  • 7c7f092 android: Robustify blob mapping
  • 72fc5e1 android: Remove unused include
  • 382078c android: Fix strange compilation error on 32-bit Android
  • 325727e deploy-stub: Add flag for enabling verbose mode in Python
  • e809c9e android: Complete support for android:extractNativeLibs=false
  • 598106c dist: Show error for mismatching build_apps/wheel
  • 3d1b897 android: Work on supporting extractNativeLibs:false, separate blob
  • 4763ddb dist: Neatly indent AndroidManifest.xml
  • 8a23014 android: Set Activity title to window title
  • 32bdca9 android: Work on API level 36 support (though target 35 for now)
  • 27d905f workflow: Add Android build to CI matrix
  • d1aeef5 makepanda: Remove -m32 and -m64 flags for Android
  • bba3928 workflow: Set XCode version to 16
  • 1047728 tests: Support running test suite from adb shell
  • 90ca53a android: Fixes to allow Panda to run from the adb shell
  • e9fddf6 makepanda: Use correct .so suffix on Android
  • e524dc9 dtoolbase: Apply pvector libc++ workaround across the board
  • db27278 distributed: Fix for importing CR without OpenSSL compiled-in
  • 5c70817 workflow: Update to macOS 15
  • 418d041 pipeline: Fixes for fragile TLS implementation on Android
  • 1ea0ea6 dist: Fix for gui_apps with spaces in name on Android
  • ec9a7d1 dist: Check provided AndroidManifest.xml file for basic sanity
  • 4a7e528 express: Fix compiler warning on Android
  • cbbd3ed pandatool: Make WindowsGuid class trivially copyable
  • a40e8f9 android: Fix incorrect usage of ALooper_pollOnce
  • 42ae007 dist: Target latest Android API level
  • f848776 dist: Update Android protobuf files
  • 53a6d5d readme: Add sponsor logos
  • cc5eaa8 Add LambdaTest to BACKERS.md
  • fdf67ad dist: Allow passing in custom AndroidManifest.xml
  • ce31e41 dtoolbase: Work around macOS compiler bug with empty vector
  • 9df9409 cocoadisplay: Fix some DPI handling issues on resize
  • ba717b0 display: Fix compile warning
  • bd76aba audiotraits: fix compile warning on macOS
  • e83150f makepanda: Add more supported macOS SDKs, print used version
  • c2ab647 mac-stats: Widen strip chart sidebar to make smooth button fit on Tahoe
  • c352e92 dtoolbase: Fix out-of-bounds access in pdtoa.cxx
  • 867f174 dtoolbase: Fix out-of-bounds access in pdtoa.cxx
  • 5006f92 build: Update to interrogate v0.7.1
  • 983c88e tests: Make threading tests conditional upon thread support
  • 5779382 glgsg: Fix crash if task chain was destroyed before GSG
  • 93a1da8 direct: Remove throw_new_frame from libp3showbase (see #1014)
  • 14c4a9a direct: Move particlePath definition to Python (see #1014)
  • e415457 glstuff: Fix a wrong docstring
  • 97b3c18 express: Fix build with older OpenSSL versions
  • b7fb4af tests: Fix test run with OpenSSL disabled
  • 25ef611 express: Update SHA256 code in ZipArchive for OpenSSL v3
  • 5f9bb65 make-prc-key: Update deprecated API use for OpenSSL v3
  • f40e611 parser-inc: Add some missing headers
  • 6ac2164 notify: Print out C++ backtrace on assert-abort
  • 2540648 nativenet: Change deprecated sprintf to snprintf
  • 77fa04a glgsg: Fix typo causing SSBO support not always detected
  • e68a3db glgsg: Fix typo causing SSBO support not always detected
  • e661d02 glgsg: Fix sharing shaders between GSGs
  • b275a72 pstats: Fix version check for ref tracing feature
  • 70c6251 build(deps): bump actions/setup-python from 5 to 6
  • b32d5c6 pstats: Enable ref tracing feature in Python 3.13.3+ as well
  • cd791ca pstats: Add new feature to count Python objects by type
  • 3f45a8e dtool: Improve memory usage tracking without USE_DELETED_CHAIN
  • d65e46e pgraph: Track CullableObject memory usage
  • 9427f2b dtool: Track DeletedChain memory use even without USE_DELETED_CHAIN
  • b6dc37c pgraph: Fix CullableObject incorrect use of memory usage tracking
  • 557ce7a express: Fix track-memory-usage with DeletedBufferChain off
  • 212ad74 prc: Fix recursion reading notify-timestamp config.prc variable
  • 32d2a13 dtoolutil: Fix missing std:: prefix
  • 05a610f build: Update to interrogate 0.7.0
  • 0c0eca6 express: Error check in set_encryption_password, don't use Dtool_Return_None
  • 2ab3ea3 interrogatedb: Name interrogate_request structs
  • f5713d1 cleanup: Fix missing `std::` prefixes
  • 469df73 tests: Add unit tests for send() and throw() on generator wrapper
  • 2625c19 build: Update to interrogate 0.6.1
  • d8e9afb Merge branch 'release/1.10.x'
  • b417d6a backport: A few thread safety things for free-threaded builds
  • 86ba156 py_compat: Update for Python 3.13 and 3.14
  • aa554a2 task: Backport fix for generators without send()
  • cc66746 tests: Fix test_typed_writable_subclass for Python 3.14
  • d1f4be7 py_compat: Add PyUnstable_Object_IsUniquelyReferenced
  • d63f708 pstats: Actually support large frames (remove check)
  • 00b5357 task: More robust handling of iterators without send()/throw()
  • 67e3cca showbase: Annotate some debug functions (#1767)
  • be2ff15 build(deps): bump actions/checkout from 4 to 5
  • 66c9264 bam: Add forward compatibility for bam 6.46
  • 052bd77 loader: Remember type of loader object used to load models
  • 3564f2d readme: Improve bug reporting section with links (#1761)
  • 0e1a3f2 stdpy: Annotate threading functions (#1765)
  • f00cec7 showbase: Annotate `VFSImporter` functions (#1764)
  • fe65114 VFSImporter: Add ignore directive for mypy
  • e4e5d75 tests: Fix mypy, Windows test failures
  • bd4b3dd showbase: Rewrite VFSImporter for newer Python import system
  • e57c71d event: Change result of AsyncFuture gather() to return list
  • 9a2da04 Merge branch 'release/1.10.x'
  • ab357ea tinydisplay: Try to fix SDL compile errors
  • 0a94971 event: Fix memory leak I just introduced in 41e4cf5
  • 85e4d07 bam2egg: Fix support for more than two tags
  • a70d7c8 collide: get_wrt_mat() et al should return a copy
  • 535105c build: Update to interrogate 0.6.0
  • 5bc9b70 event: Make cancel() for regular tasks work like remove()
  • 6ef4699 collide: Fix potential use-after-free with transform cache disabled
  • 41e4cf5 event: Fix `await gather()` returning first item instead of tuple
  • ddcfee1 showbase: Annotate methods of Event, Interval, and Job Managers (#1762)
  • 7d7a08e cppparser: Consider reference types destructible
  • 6a9dde4 workflow: Fix Windows build
  • 2767bdd x11: Add config vars to disable usage of X11 extensions
  • 1f85588 workflow: Update to Windows 2022
  • 39c620d makepackage: don't use deprecated dpkg-shlibdeps option
  • de4865b putil: grab GIL while decreffing function
  • 20c9b0d workflow: Hack workaround for Ubuntu CI error
  • 95f16ea workflow: Update to MSVC 14.3 / 2022