TITLE OF PAPER: Panda3D URL OF PRESENTATION: _URL_of_powerpoint_presentation_ PRESENTED BY: Jason Pratt/Disney REPRESENTING: ETC@CMU/Disney CONFERENCE: PyCON 2004 DATE: 20040324 LOCATION: _venue_and_room_in_venue_ -------------------------------------------------------------------------- REAL-TIME NOTES / ANNOTATIONS OF THE PAPER: {If you've contributed, add your name, e-mail & URL at the bottom} The Walt Disney VR Studio Established in 1992 to explore the potential of VR technology for theme park attractions Over 10 years of experience with real-time 3-D graphics We have always preferred late binding languages working with python ~3.5 yrs, 3d for decade or so. use c++ for shoving verts, high level for rest Whizzy pictures of aladdin's magic carpet ride, pirates of the caribbean (no j.depp) @ disneyquest The room for the pirates of caribbean is a cave type environment where you man the cannons and one person controls the ship's wheel. Avast! shiver me timbers! Q: is that a variation of an older game A: inspired by theme park ride. ouch, pokes at sgi that hurt me. ow. boo! at one point used scheme to drive this. another sgi dig! pc's became king (sigh) and so they needed something else. Panda 3D real-time 3-d graphics library implemented in c++ Key design goal is platform independence Released as open source by the disney vr studio The live source repository is cvs on sourceforge ETC now provides additional support platform independence key goal, currently runs on sgi,linux,win, and moving to osx soon. also open-source! Disney's toon Town Online demo movie. MMORPG. written fully in python and downloadable [link below] downloads app, py3d, and python. Squeak (Smalltalk) vs. Python Emphasis on academic research Emphasis on real-world solutions pricipled philosphy pragmatic philosophy Relativley small community Relatively large community Little docs Lots docs unique syntax and concepts ample documentation core dev team next door Live code updates are great From the early days of the VR Studio, we've always been able to make live updates to a running game and see the results immediately ChezScheme on the SGI supported this. Squeak supported this. Python doesn't do this!? Implemented own utility to make this work bound to emacs key. Good man! interrogate Nearly complete c++ parser generates C code to wrap each mehtod with a Python-callable wrapper Outputs a table of class and method relationships No interface files are necessary; it reads the original source directly. FFI A Python program to generate Python shadow classes from interrogate data The net result is that published c++ classes now appear to be true Python classes We can even subclass, in Python, our exported C++ classes. when we began using python, swig support for c++ was limited nowadays swig supports c++ well pro/con interrogate/swig supports for multiple target languages in addition to python er. more pros than cons. too fast. Jason will talk about how CMU uses p3d CMU's Goals Make Panda accessible to a wide variety of people Make Panda useful for: Video game classes VR researchers Game companies/ individuals for rapid prototyping ease of learning python, teaching students. good for vr because p3d designed for it in games, and classes. also used with mocap in several research projs at cmu. hardest at beginning to get proto fleshed out. easy to use p3d to test game 'space' and proto variants. big picture is that there is a need for a nimble tool that is easy to get going Website: www.etc.cmu.edu/panda3d documentation windows installer sample code Additions to the code base Free Sound system network server Streaming video Generic level editor Customer IDE home for all p3d community. c++/py code docs (via epidoc/doxygen). human written manual coming later. included in the distribution they created are a number of example and sample code cmu is working on creating their own server that will be open source - the example client in the distro will only work with the disney server - kinda useless - cmu is working on that Airblade Complete game demo Created by three students (programmer, 3d modler, texture artist) in two months Simple, thoroughly commented code kick.ass. a demo! on windows. :( loads kinda slowly. ah. better. (wow, impressed - 2 months!) indeed! let's port this beast to osx immediately. Agreed. very impressive - a flying sled (the blade) multiple targets - targeting cursor - many projectiles & lots of nice carnage. Building virtual worlds ETC mastgers students and undergraduates Interdisciplinary teams Five projects, two to three weeks each Transitioned from Alice to Panda last semester ( aha! that's where alice went... ) cool, more demo! oh, video. 3wks, by 5 students. prepare to be overwhelmed with lots of stuff done in no time. lower left corner is an inset of the student performing the demo ack! media player! demo named hello.world. hoho. wire frame world with a sickening rabbit thing in the middle - player is moving hands and items are being created in the world. looks like player input just introduces random obj due to mode in game. VR interaction impressive but simplistic. someone shoot me! someone shoot those bunnies! and there was light! thank god, the end, no more giggling bunnies... Why does this remind me of a crazy horror movie? Alice does Wonderland! hello.world end task dialog popped up all the animals are being sucked into a vortex - the planet is breaking apart rabbit is hugging it's knees - and matrix-ifying. losing vsync! train spins into matrix-text-vortex. rabbit clinging to sign in hurricaine force breeze. spins off to side, fade to black. happy thing pulled out a gun and shot itself the ending was the crowd pleaser control-alt-delete Q: what language was interrogate written in? A: c++ Q: is the panda 3d engine multi-threaded? A: it's not in the present form - it's on the list to be done Q: multi-head support not a big deal (aka big sgi iron)? A: no. pcs mostly don't care. on todo list. Q: is it compiled python? A: no - it's interpreted Q: video available online? A: not yet, go to website, projects uploaded Q: terrain modelling - can you load geo model or other model loading A: there isn't terrain modelling - it's all data generated elsewhere, translators from pop. model packages Q: mike, type your question here. you're asking about hacking? yes :) A: Q: is emacsy thing in distro? A: yep. cvs for sure, likely in windows inst, etc. -------------------------------------------------------------------------- REFERENCES: {as documents / sites are referenced add them below} toontown: http://toontown.com cmu p3d: http://www.etc.cmu.edu/panda3d -------------------------------------------------------------------------- QUOTES: "is there a gun?" - quote by audience member about some esp smarmy demo cutesy giggling -------------------------------------------------------------------------- CONTRIBUTORS: {add your name, e-mail address and URL below} Bob Kuehne, rpk@blue-newt.com, http://www.blue-newt.com Mike Taylor, bear@code-bear.com Linden Wright, lwright@mac.com -------------------------------------------------------------------------- E-MAIL BOUNCEBACK: {add your e-mail address separated by commas } -------------------------------------------------------------------------- NOTES ON / KEY TO THIS TEMPLATE: A headline (like a field in a database) will be CAPITALISED This differentiates from the text that follows A variable that you can change will be surrounded by _underscores_ Spaces in variables are also replaced with under_scores This allows people to select the whole variable with a simple double-click A tool-tip is lower case and surrounded by {curly brackets / parentheses} These supply helpful contextual information. -------------------------------------------------------------------------- Copyright shared between all the participants unless otherwise stated...