Daily Snapshots (Buildbot)

i think the latest windows installers are broken, they are just 3 mb filesize…

but few days ago everything was fine ;D

edit: my fault, just hit the runtime by accident,
just ignore THIS post ^^ btw, great new feature the buildbot! Maybe it should be linked to the main download page?!

greetingz

Yeah, I’ll do that soon.

Have you already planned to release Linux-32bit builds too? :slight_smile:

Did you already made a change regarding this issue?

I am testing Panda3D-2010.01.08-11.dmg and behaviour is the same. I did not de-install the previous version though, but just installed the new one.

My environment.plist looks like this now:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>DYLD_LIBRARY_PATH</key>
	<string>/Developer/Panda3D/lib</string>
	<key>MAYA_PLUG_IN_PATH</key>
	<string>/Developer/Panda3D/plugins</string>
	<key>MAYA_SCRIPT_PATH</key>
	<string>/Developer/Panda3D/plugins</string>
	<key>PATH</key>
	<string>/Developer/Tools/Panda3D</string>
	<key>PYTHONPATH</key>
	<string>/Developer/Panda3D/lib</string>
</dict>
</plist>

I assume the change would be visible with the mentioned build, or am I missing something?

I still need to use this line in my .bash_profile to make the above installation work:

export DYLD_LIBRARY_PATH=/Developer/Panda3D/lib:$DYLD_LIBRARY_PATH

No problem with the PATH variable. pview is started. Though I need the above change to DYLD_LIBRARY_PATH to make pview also work correctly, otherwise pview can’t pickup the correct libraries.

Hm. Can you post the output of:

otool -L /Developer/Panda3D/lib/libpandaexpress.dylib

I’m having trouble importing the PhysX library, here’s the exception trace:

from panda3d.physx import *
  File "C:\Panda3D-1.7.0\panda3d.py", line 145, in __getattr__
    mod = self.__manager__.libimport(self.__library__)
  File "C:\Panda3D-1.7.0\panda3d.py", line 126, in libimport
    return cls.imp.load_dynamic(name, target)
ImportError: DLL load failed: The specified module could not be found.

Am I doing something stupid? Also, has anything else been changed from enn0x’s implementation? From what I can tell, Classes are now prefixed with Physx instead of just Phys, and PhysEngine is now called PhysxManager.

Update:
import panda3d.physx seems to work, but an idea of how I need to change my code to use it would be very much appreciated.

Hm, do you see a libpandaphysx.dll file in Panda’s bin dir? Can you temporarily rename it to libpandaphysx.pyd, open a terminal, cd to the “bin” directory, launch python and try “import libpandaphysx” ?

It imports correctly when I do that:

>>> from libpandaphysx import *
>>> PhysxManager
<type 'libpandaphysx.PhysxManager'>

It did throw up an error about missing NxCharacter.dll initially, but after copying that into the bin my code still gives the same error. I tried using just import panda3d.physx and then creating the manager with libpandaphysx.PhysxManager, but that didn’t work either.

Hm. In C:\Panda3D-1.7.0\panda3d.py, line 126, you should see this:

return cls.imp.load_dynamic(name, target)

Can you print “name” and “target” right before that line?

Execution never reached line 126, importing succeeded. I stuck a print statement in the first import try block and it succeeded. The cls and name values were panda3d.panda3d_import_manager and libpandaphysx respectively. The only thing that might be worth noting is that it imported it twice, and the exception only occured after the second import:

Before panda3d.panda3d_import_manager libpandaphysx
Imported panda3d.panda3d_import_manager libpandaphysx
Before panda3d.panda3d_import_manager libpandaphysx
Imported panda3d.panda3d_import_manager libpandaphysx
Traceback (most recent call last):
  File "C:\Game.py", line 17, in <module>
    from src import GameManager
  File "C:\src\GameManager.py", line 19, in <module>
    import CollisionManager, InterfaceManager, ParticleManager, PhysicsManager
  File "C:\src\CollisionManager.py", line 7, in <module>
    from panda3d.physx import *
  File "C:\Panda3D-1.7.0\panda3d.py", line 148, in __getattr__
    mod = self.__manager__.libimport(self.__library__)
  File "C:\Panda3D-1.7.0\panda3d.py", line 108, in libimport
    return __import__(name)
ImportError: DLL load failed: The specified procedure could not be found.

Hm, weird. What was the “target” variable?

Okay, I’ve managed to get it importing - I made a stupid mistake and left the old libpandaphysx.pyd in my program directory from 1.6.2. Thanks for all your help rdb, sorry it was something so silly. I can’t quite grasp the new API without a reference however, so I might have to wait a while before I make the switch to 1.7.0.

In case anyone else tries to make the switch, a couple of changes from enn0x’s implementation:

1). PhysEngine -> PhysxManager.getGlobalPtr()
2). All PhysX classes are prefixed with Physx now
3). Enums are now in PhysxEnums, not in individual classes
There’s a lot more than that, but those are what I’ve encountered. The change that made me decide to stick with enn0x’s for now is that the loading of convex meshes is completely different and I can’t figure it out without an API.

Quite a lot has changed, indeed. I have uploaded a few samples on how to use the new code in 1.7.0:

http://enn0x.p3dp.com/samples.zip

PhysX in Panda3D 1.7.0 will not have cloth and softbody (maybe 1.7.1), but the rest is there and has been extended.

Awesome! Thanks a lot!

$ otool -L /Developer/Panda3D/lib/libpandaexpress.dylib
/Developer/Panda3D/lib/libpandaexpress.dylib:
	/Developer/Panda3D/lib/libpandaexpress.1.7.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Developer/Panda3D/lib/libp3dtool.1.7.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Developer/Panda3D/lib/libp3dtoolconfig.1.7.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libssl.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
	/usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.46.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

Still using the Panda3D-2010.01.08-11.dmg build (with the DYLD_LIBRARY_PATH hack).

BTW: just curious: is there a way to get the version of an installed build, so we can determine which build we have installed on a machine?

Wow, that’s weird. libpandaexpress references absolute paths to its dependent libraries, and still it gives errors? Can you post the exact error again when trying to “from panda3d.core import Filename” ?

I’m afraid there’s no way to get the build number from the resulting build. Getting the version number from PandaSystem will result in 1.7.0.

Hm. That import works fine. But the problem is with libpanda.dylib (now?), I believe. Without the hack, I get this:

$ ppython
Python 2.5.4 (r254:67916, Jul  7 2009, 23:51:24) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import direct.directbase.DirectStart
DirectStart: Starting the game.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "dstroot/pythoncode/Developer/Panda3D/lib/direct/directbase/DirectStart.py", line 3, in <module>
  File "dstroot/pythoncode/Developer/Panda3D/lib/direct/showbase/ShowBase.py", line 10, in <module>
  File "/Developer/Panda3D/lib/pandac/PandaModules.py", line 8, in <module>
    from libpandaModules import *
  File "/Developer/Panda3D/lib/pandac/libpandaModules.py", line 2, in <module>
    Dtool_PreloadDLL("libpanda")
  File "/Developer/Panda3D/lib/pandac/extension_native_helpers.py", line 79, in Dtool_PreloadDLL
    imp.load_dynamic(module, pathname)
ImportError: dlopen(/Developer/Panda3D/lib/libpanda.dylib, 2): Library not loaded: /usr/local/lib/libavformat.dylib
  Referenced from: /Developer/Panda3D/lib/libpanda.dylib
  Reason: image not found
>>> from panda3d.core import Filename
>>> 
$ otool -L /Developer/Panda3D/lib/libpanda.dylib
/Developer/Panda3D/lib/libpanda.dylib:
	/Developer/Panda3D/lib/libpanda.1.7.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Developer/Panda3D/lib/libpandaexpress.1.7.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Developer/Panda3D/lib/libp3dtoolconfig.1.7.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Developer/Panda3D/lib/libp3dtool.1.7.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/local/lib/libavformat.dylib (compatibility version 52.0.0, current version 52.44.0)
	/usr/local/lib/libavcodec.dylib (compatibility version 52.0.0, current version 52.43.0)
	/usr/local/lib/libavutil.dylib (compatibility version 50.0.0, current version 50.7.0)
	/usr/local/lib/libswscale.dylib (compatibility version 0.0.0, current version 0.7.2)
	/usr/local/lib/libfftw.2.dylib (compatibility version 3.0.0, current version 3.7.0)
	/usr/local/lib/librfftw.2.dylib (compatibility version 3.0.0, current version 3.7.0)
	/usr/X11/lib/libfreetype.6.dylib (compatibility version 10.0.0, current version 10.20.0)
	@executable_path/../Library/Frameworks/Cg.framework/Cg (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libssl.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
	/usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
	/usr/X11/lib/libpng.3.dylib (compatibility version 39.0.0, current version 39.0.0)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.46.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

Ah, great. Can you try today’s build, I think that should fix these issues.

Well I just used the
Panda3D-2010.01.11-16.dmg
SDK install.

I chose the 1.6 de-install option. Shouldn’t have done that. It did not just delete Applications/Panda3D/1.6.2 (that’s what I thought) but the entire Panda3D folder. Didn’t just move it to the trash. Deleted it. Dude … either this stuff it still hidden somewhere on the hard disc or you just deleted bunch of stuff I was holding there. Not funny. Not cool. iTunes doesn’t delete songs, it moves it to the trash. Office searches for an old version first. And there’s nothing you can do. Delete. Trash. Logout. Good bye. What about some warning here? Like a blinking red button - WARNING: make sure you backup all custom stuff. WARNING: will delete that awesome game you worked on in the last 2 years.

You know at some earlier stage of my project I had the project files in there too. Those are still there - thank god - because I moved it outside along with my “RPG scene” demo, but other stuff is gone, for example the samples folder that I used to hold all code snippets I downloaded from the forum. Also gone are code snippets from the forum that I held in a collection outside the samples folder. Maybe more importantly I just don’t know what else got deleted because I didn’t do anything Panda for the last 4 months.

Btw .bash_profile is just empty. environment.plist seems filled.

I can’t use the samples, looks like the same error as above on X.6, except that I am on X.5.
When I do
from panda3d.core import Filename
nothing happens, just a new line in Python.

Error for the ball in maze sample:

My sincere apologies. I had no idea that some people would store their stuff in the Panda3D directory (something you should not do anyways, you should never rely on program directories to persist).
But you are right - I’ll put a huge warning there.

Anyways, thanks for testing. Looks like we got one step further.
If you replace “pandac.PandaModules” with “panda3d.core” in that sample program, does it then work?