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
Recent successful builds for focal on branch master
86d0376054173b993a3d329a36fb7e994a12b880
- panda3d-1.11.0.dev3895-cp310-cp310-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3895-cp311-cp311-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3895-cp312-cp312-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3895-cp313-cp313-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3895-cp313-cp313t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3895-cp314-cp314-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3895-cp314-cp314t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3895-cp38-cp38-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3895-cp39-cp39-manylinux2014_x86_64.whl
View changes - 2025-12-22T21:20:57Z
- 86d0376 glgsg: Mark SSBO unbound from all binding points upon deletion
14b8cd74c25f08ec6b3614315d1c73a047d41347
- panda3d-1.11.0.dev3894-cp310-cp310-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3894-cp311-cp311-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3894-cp312-cp312-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3894-cp313-cp313-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3894-cp313-cp313t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3894-cp314-cp314-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3894-cp314-cp314t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3894-cp38-cp38-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3894-cp39-cp39-manylinux2014_x86_64.whl
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
- panda3d-1.11.0.dev3849-cp310-cp310-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3849-cp311-cp311-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3849-cp312-cp312-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3849-cp313-cp313-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3849-cp313-cp313t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3849-cp38-cp38-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3849-cp39-cp39-manylinux2014_x86_64.whl
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
32bdca90150bd0e223098f59a2a86b36b7f6575f
- panda3d-1.11.0.dev3833-cp310-cp310-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3833-cp311-cp311-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3833-cp312-cp312-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3833-cp313-cp313-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3833-cp313-cp313t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3833-cp38-cp38-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3833-cp39-cp39-manylinux2014_x86_64.whl
View changes - 2025-11-08T22:58:21Z
- 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
418d041252ab55850258012399bc63938552f65b
- panda3d-1.11.0.dev3823-cp310-cp310-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3823-cp311-cp311-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3823-cp312-cp312-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3823-cp313-cp313-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3823-cp313-cp313t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3823-cp38-cp38-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3823-cp39-cp39-manylinux2014_x86_64.whl
View changes - 2025-11-04T22:50:05Z
- 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
- e51c714 workflow: Update to MSVC 14.3 / 2022
- 7051aa0 workflow: Update test runners
- 47a823b workflow: Update Windows 2019 to 2022
- cbb313d Use Win32 native calls for atomic also with clang-cl (#1746)
- 98a50a7 x11: Add function for detecting auto repeat key events (#1735)
- 3191a45 workflow: Update Ubuntu runners to 22.04
- 33e6ed8 physics: Add support for distance-based falloff (#1731)
- eae39b3 collide: Fix CollisionNode owner crash (grab GIL when destructing)
- 5435579 showbase: Annotate basic `Messenger` methods (#1726)
- 4b4fa03 direct: Annotate functions called directly by top-level code (#1727)
- 6274b47 pstats: Better handle overlapping collectors in Timeline
- 5a97488 gtk-stats: Support trackpad zoom/pan gestures in Timeline view
- fcf619d Update version numbers to 1.10.16
- 9a2203b pstats: Backport fix for crash when receiving frames out of order
- 7c16720 webgl: Improve canvas resizing behavior
- 85541de grutil: Add support for playing video via HTML video+WebGL
- c960874 downloader: Add url property to VirtualFileHTTP
- ab57b3c downloader: Fix HTTP downloads on latest emscripten
- f4da124 pgraphnodes: Add setter for shadow buffer sort
- 8de9859 showbase: Annotate basic `Loader` methods (#1723)
- a7f8c57 display: Add per-shader PStats timer for compute dispatches
- c729c75 display: Add queries for max work group count/size/invocations
- fef27a7 Update emscripten to 4.0.2, Python to 3.12.8, enable bulk memory
- 6452907 Improvements for env handling with node.js and emscripten
- 8a1159f makepanda: Only build pnmimagetypes with exceptions if using OpenEXR
- 79d6727 Move MAIN_DIR initialization code from interrogate to panda3d
- ea1cbe4 dist: Add missing hidden import for panda3d.core on enum
- 3f0f90d makepanda: Don't try to call interrogate_module with -vv
- b0e1e0c showbase: Annotate callback methods
- 0404feb windisplay: Fix IME result not showing up without `ime-aware true`
- e681c17 glgsg: Use glClearTexImage even when tex has no storage
- f188c8a tests: Use approx comparison for test_depth_bias
- 99b3888 gobj: Fix Texture::clear_clear_color()
- f6f391b glgsg: Don't override texture clear color for FBO attachments
- 8114971 webgl: Improve handling of canvas focus
- 1281875 linmath: Fix degenerate case in decompose_matrix
- 1fa8e2b webgl: Don't use stringToUTF32 for keypress handling
- 287e456 glgsg: Fix BGR swap regression for sync uploads
- fa64a52 glgsg: Do not prefer depth-stencil ms renderbuffers on macOS
- 1234388 glgsg: Make multisample renderbuffer format match regular one
- 9c7e9e9 glgsg: Add more debug prints for renderbuffer creation
