iPhone support?

p3dpython communicates with the browser via anonymous pipes, as created via the standard Posix pipe() call. This, of course, requires p3dpython to be launched as a subordinate process to the browser itself; it can’t be run from the command line. The XML data is streamed in both directions along these anonymous pipes; it’s just a quick-and-easy way to stream arbitrary data between separate processes.

Having Panda run in a separate process is quite a pain, but it really is necessary in order to support more than one instance of a Panda window running in the browser at once, especially unrelated instances. It’s also necessary to support different versions of Panda in different instances; and it has other nice advantages like keeping Panda’s frame rate independent of the browser, and helping to keep the browser from crashing in case the Panda app crashes.

I’m surprised it took hacking to get packp3d and runp3d running. Those should have worked out the box. pfreeze was a mess, though, and will definitely require some cleanup to make it more world-friendly. Are your changes safe enough to commit back in, to save me the work of re-doing your efforts when I visit Linux? :slight_smile:

David