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 jammy on branch master
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
- 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
6ac2164c2575e9e6badea3f3747a91fea67d4940
- panda3d-1.11.0.dev3794-cp310-cp310-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3794-cp311-cp311-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3794-cp312-cp312-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3794-cp313-cp313-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3794-cp313-cp313t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3794-cp38-cp38-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3794-cp39-cp39-manylinux2014_x86_64.whl
View changes - 2025-10-10T15:51:30Z
- 6ac2164 notify: Print out C++ backtrace on assert-abort
- 2540648 nativenet: Change deprecated sprintf to snprintf
- 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
b32d5c672441c280f7e799483d223e252cf9f797
- panda3d-1.11.0.dev3788-cp310-cp310-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3788-cp311-cp311-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3788-cp312-cp312-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3788-cp313-cp313-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3788-cp313-cp313t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3788-cp38-cp38-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3788-cp39-cp39-manylinux2014_x86_64.whl
View changes - 2025-09-05T07:59:44Z
- 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
d63f708e2c2340d7c551f2ed2697b8b7fe0cabe8
- panda3d-1.11.0.dev3766-cp310-cp310-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3766-cp311-cp311-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3766-cp312-cp312-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3766-cp313-cp313-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3766-cp313-cp313t-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3766-cp38-cp38-manylinux2014_x86_64.whl
- panda3d-1.11.0.dev3766-cp39-cp39-manylinux2014_x86_64.whl
View changes - 2025-08-26T10:59:18Z
- 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
- 97fcbc2 glgsg: Fix error message for unhandled external formats
- 3725a00 glgsg: Fix typo
- 1a431b3 glgsg: make async texture transfer threads configurable
- 55a3a0d glgsg: async screenshot refactor, general mechanism for fences
- 2a47826 glgsg: Big refactoring of texture uploading, add async upload support
- 2ea02ef putil: Add new primitives for async callbacks/futures
- 67723ca display: Generalized method for running things on draw thread
- 5b0cf9e glgsg: More efficient handling of texture memory barriers
- a55860b glgsg: Fix memory barrier for extract_shader_buffer_data
- 3833866 display: Add method to synchronously download SSBO contents
- 7ba4fe3 display: Add gsg.engine property
- 3082d28 pstatclient: Fix out-of-order events with thread profiling
- da4e2ca express: Use monotonic clock on POSIX (has nanosecond precision)
- 674fa44 task: Fix first frame on task chain missed by PStats
- 91f124e display: Allow setting a custom clock for a GraphicsEngine
- 8c9ba6d cocoa: Fix compilation error
- f872a82 display: Support sharing graphics context between GraphicsEngines
- 8f4d0c8 gobj: Make BufferContextChain thread-safe
- db692ed glgsg: Issue memory barriers for SSBOs
- 271fa9d glgsg: Fix issues with render-to-texture and cube map arrays
- eb5366b tests: Update mypy to version 1.14.1 (#1715)
- cc6646a cull: Fix crash caused by freeing a cull object with empty volume
- be382a8 makewheel: Exclude some more system libs
- 770e2ff windisplay: Remove unused config.prc variable definitions:
- f433733 readme: Update Android build instructions
- 598a94a android: Set minimum to API level 21
- 5965d5b windisplay: Prevent window resize to zero (#1705)
- 899af61 pgraph: Fix ModelPool return value reference count
- e43dc87 Fix unit test failures on Python 3.13
- 46cf9c0 showbase: Fix Loader when destroying and recreating ShowBase
- 3f2b9cd pgraph: Make ModelPool.load_model() work same as Loader.load_sync()
- 343ec6b showbase: Create Loader before ShowBase, importable from ShowBaseGlobal
- 5d465be samples: Remove unused CardMaker import from procedural-cube sample
- 5e05049 collide: Add custom owner field to CollisionNode
- 6f33bbe glgsg: Fix use after free with gl-force-fbo-color and layered FBO
- 26dd784 gobj: Make BufferResidencyTracker::_residency a const field
- ff11113 android: Draw to whole window, ignoring contentRect
- d87cbbc dist: Validate application_id when building for Android
- 7d753d4 dist: Set various AndroidManifest.xml attribs, support appCategory
- 6f0fa2b dist: Fix for Android configuration changes restarting app
- 73c6759 android: Exit process after activity shutdown
- 8a1d0f7 makepanda: use javac from JAVA_HOME, check for deprecations
- a855071 showbase: Fix regressions on Android due to not running on main thread
- d6acaaf dist: Android fixes, esp. for Python 3.13
- 46e9005 android: Fix crash on shutdown if stdout/err is not redirected
- d1707c4 makewheel: Correct path to libpython on Android
- a32030d framework: Clean up task manager on close_framework()
- ff3e7da pipeline: Never try to detach external pthread (fixes Android crash)
- ac68b85 shader: Fix compilation warning
- 3471641 text: Don't try to use harfbuzz if freetype is not enabled either
- c31041c android: Fix assorted errors and deprecations
- 44a4116 makepanda: Fix assorted Android compile / package issues
- 7191fb1 makepanda: Don't look for macOS framework when cross-compiling
- fa25c51 notify: Fix compile error on Android
- 6394973 windisplay: Fix recursive loop in adjust_z_order
- 22381c9 pgraphnodes: Disable lighting when rendering shadow cam
- d173086 putil: Fix SparseArray get_lowest_on_bit and get_lowest_off_bit
- 804d49f tinydisplay: Fix extracted texture not having sRGB format
- 2b88594 tinydisplay: Fix vertex color being multiplied in even with material present
- 134f0bb tinydisplay: Fix material diffuse being ignored with only ambient light
