So I think the first thing will be to write a new subclass of writer, as I've already done for VRML, VRML2, EIG, POV-Ray, and Live3D.[1] There's already an Egg API that will allow me to avoid low-level bricking in with strings (no direct eggfile.write('stuff')). Here's what it looks like (from the documentation [2]): def makeWedge(angleDegrees = 360, numSteps = 16): data = EggData() vp = EggVertexPool('fan') data.addChild(vp) poly = EggPolygon() data.addChild(poly) v = EggVertex() v.setPos(Point3D(0, 0, 0)) poly.addVertex(vp.addVertex(v)) angleRadians = deg2Rad(angleDegrees) for i in range(numSteps + 1): a = angleRadians * i / numSteps y = math.sin(a) x = math.cos(a) v = EggVertex() v.setPos(Point3D(x, 0, y)) poly.addVertex(vp.addVertex(v)) # To write the egg file to disk, use this: data.writeEgg(Filename("wedge.egg")) # To load the egg file and render it immediately, use this: node = loadEggData(data) return NodePath(node) So I'll just suck up a Polyhedron from my rbf.py, spoon feed the vertices and polygons via the Egg API, then load the egg in a Panda scenegraph for display. I should be getting my initial results shortly. I'll publish some source code. Query: could we reimplement the whole Elastic Interval Geometry thing inside of Panda3D. At this point, I see no reason why not. If we treated the intervals as changing-size Bones at runtime, I bet we could get some interesting Creatures. I recently sent a heads-up to Gerald (originator of EIG, inspired by Kenneth Snelson [3]), regarding my appreciative mention of his work a few times in my LKL talk.[4] Kirby [1] http://www.4dsolutions.net/ocn/python/povray.html (example POV writer) [2] http://panda3d.etc.cmu.edu/wiki/index.php/Writing_3D_Models_out_to_Disk [3] Kenneth Snelson: http://www.kennethsnelson.net/ http://www.grunch.net/snelson/ http://worldgame.blogspot.com/2006/05/barrel-tower.html [4] http://bfi.org/pythonicmathematics
Hi Kirby, Have you also looked at Soya? I don't think it has come up in this conversation. http://home.gna.org/oomadness/en/soya/index.html Soya 3D is a very high level 3D engine for Python. Soya aims at being to 3D what Python is to programming : fast to learn, easy to use, while keeping good performances ! Our goal is to propose a complete architecture to realise Free (GPL) games with professional quality entierely in Python. It seems to cover similar territory to Panda3D, but it is more of a grassroots community creation. I haven't gotten into either far enough to really say which one is better, although Soya's definitely the tougher install. --Tom On 5/8/06, kirby urner <kirby.urner@gmail.com> wrote:
So I think the first thing will be to write a new subclass of writer, as I've already done for VRML, VRML2, EIG, POV-Ray, and Live3D.[1]
There's already an Egg API that will allow me to avoid low-level bricking in with strings (no direct eggfile.write('stuff')). Here's what it looks like (from the documentation [2]):
def makeWedge(angleDegrees = 360, numSteps = 16): data = EggData()
vp = EggVertexPool('fan') data.addChild(vp)
poly = EggPolygon() data.addChild(poly)
v = EggVertex() v.setPos(Point3D(0, 0, 0)) poly.addVertex(vp.addVertex(v))
angleRadians = deg2Rad(angleDegrees)
for i in range(numSteps + 1): a = angleRadians * i / numSteps y = math.sin(a) x = math.cos(a)
v = EggVertex() v.setPos(Point3D(x, 0, y)) poly.addVertex(vp.addVertex(v))
# To write the egg file to disk, use this: data.writeEgg(Filename("wedge.egg"))
# To load the egg file and render it immediately, use this: node = loadEggData(data) return NodePath(node)
So I'll just suck up a Polyhedron from my rbf.py, spoon feed the vertices and polygons via the Egg API, then load the egg in a Panda scenegraph for display.
I should be getting my initial results shortly. I'll publish some source code.
Query: could we reimplement the whole Elastic Interval Geometry thing inside of Panda3D. At this point, I see no reason why not. If we treated the intervals as changing-size Bones at runtime, I bet we could get some interesting Creatures.
I recently sent a heads-up to Gerald (originator of EIG, inspired by Kenneth Snelson [3]), regarding my appreciative mention of his work a few times in my LKL talk.[4]
Kirby
[1] http://www.4dsolutions.net/ocn/python/povray.html (example POV writer)
[2] http://panda3d.etc.cmu.edu/wiki/index.php/Writing_3D_Models_out_to_Disk
[3] Kenneth Snelson: http://www.kennethsnelson.net/ http://www.grunch.net/snelson/ http://worldgame.blogspot.com/2006/05/barrel-tower.html
[4] http://bfi.org/pythonicmathematics _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
On 5/8/06, Tom Hoffman <tom.hoffman@gmail.com> wrote:
Hi Kirby,
Have you also looked at Soya? I don't think it has come up in this conversation.
I believe this came up on the LKL tape (Quicktime streaming) but not here, you're right. I'll bone up on Soya too.
It seems to cover similar territory to Panda3D, but it is more of a grassroots community creation. I haven't gotten into either far enough to really say which one is better, although Soya's definitely the tougher install.
--Tom
I'm not biased against company or university branding on open source products per se i.e. the Ximian, Disney and/or Carnegie Mellon logos aren't troublesome in and of themselves. But like any investor, I like to get a sense of the health of the developer community, whatever the superficials. It being open source is a positive sign but is not in and of itself enough to reassure. Frequent improvements happening is more what we look for. So far, nothing bothers me about Panda. But now I've got high hopes for Soya too, so thanks for the pointer. Kirby
On 5/8/06, Tom Hoffman <tom.hoffman@gmail.com> wrote:
Hi Kirby,
Have you also looked at Soya? I don't think it has come up in this conversation.
Soya is one of those projects that looks intriguing, but I get put off by the large numbers of dependencies involved. It is often hard enough to figure out where to begin with a big library, just from a coding perspective, without having to find the right versions of the right libraries, and resolve all the issues getting them compiled and working together. If there were binary downloads (or easy_install eggs) for the common platforms, I'm sure it would get more traction.
From reading the project pages, I'm not even sure if Soya runs on OS X, which makes me even more reluctant to spend my time trying to put all the pieces together.
Soya 3D is a very high level 3D engine for Python. Soya aims at being to 3D what Python is to programming : fast to learn, easy to use, while keeping good performances ! Our goal is to propose a complete architecture to realise Free (GPL) games with professional quality entierely in Python.
This all sounds great. Unfortunately the documentation link is broken, which makes it hard to evaluate the completeness/complexity tradeoffs of Soya. If there were an easy way to get started (download and docs) I would happily explore, and possibly contribute.
It seems to cover similar territory to Panda3D, but it is more of a grassroots community creation. I haven't gotten into either far enough to really say which one is better, although Soya's definitely the tougher install.
Well, if Soya is known to work with OS X, that would make it the easier install for me, since Panda3D does not yet run on OS X (it's being worked on, but slowly).
--Tom
--Dethe
On 5/8/06, kirby urner <kirby.urner@gmail.com> wrote:
So I think the first thing will be to write a new subclass of writer, as I've already done for VRML, VRML2, EIG, POV-Ray, and Live3D.[1]
Making progress on this, but of more generic interest to new users on WinXP would be getting something like this to work: IDLE 1.1.2
import direct.directbase.DirectStart DirectStart: Starting the game. Warning: DirectNotify: category 'Interval' already exists run()
Disregarding the Warning, this is a positive state of affairs. Here we are in old familiar IDLE, yet able to import and dynamically interact with the Panda3D classes. Of course the exact same setup is what's implemented in Linux (indeed, Tk-based PMW = Python Megawidgets are integral to the end user interface itself), but in Windows you might run into some weird path issues, owing to the fact that you already have Python installed, yet Panda3D brings along its own (the "right version"). Like this: D:\Panda3D-1.2.2\bin\lib>cd.. D:\Panda3D-1.2.2\bin>ppython .\lib\idlelib\idle.py Traceback (most recent call last): File ".\lib\idlelib\idle.py", line 21, in ? idlelib.PyShell.main() File "D:\Panda3D-1.2.2\bin\lib\idlelib\PyShell.py", line 1350, in main root = Tk(className="Idle") File "D:\Panda3D-1.2.2\bin\lib\lib-tk\Tkinter.py", line 1569, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: Can't find a usable init.tcl in the following directories: D:/Panda3D-1.2.2/bin/lib/tcl8.4 D:/Panda3D-1.2.2/lib/tcl8.4 D:/lib/tcl8.4 D:/Panda3D-1.2.2/library D:/library D:/tcl8.4.7/library This probably means that Tcl wasn't installed properly. Here's my suggestion: copy your tk8.4 and tcl8.4 folders/contents from under a normal python2.4 install from python.org, and put them in /Panda3D-1.2.2/bin/lib/ Works for me, algthough I still get cmd window screen garbage -- which is fine, I'm used to that on Linux as well (I run GNOME and KDE systems in partitions of two other computers, plus am shopping for a couple dedicated laptops for U- and Edu- buntu work). Kirby
So as not to clutter up the lists with too much Panda3D stuff, I'll just share a pointer to my blog. Anyone interested in where I'm going with this thread can read up on that here: http://worldgame.blogspot.com/2006/05/panda3d.html Thanks to edu-sig posters especially for giving me lots to think about. Kirby
participants (3)
-
Dethe Elza -
kirby urner -
Tom Hoffman