First Post: Are there built-in primative classes?

Are there any built-in primatives in Panda3D?

By primatives I mean like the ones in most 3D programs or in Second Life.

where you could code “self.createSphere(x,y,z,r)”?

I have seen the few references to fractalspline in the posts, but I believe that project never went anywhere with Panda.

Thanks in advance.

You can hand-assemble primitives from vertices and faces using the geometry manufacturing features in Panda, but in general they aren’t embedded directly in the engine. Panda3d is designed to render models that have already been created by a modeler using a full-featured modeling package.

However, if you’re familiar with Second Life’s modeling system, you’re already part-way towards understanding modeling. Panda understands a custom modeling language (‘egg’), but translators have been built between egg and several common modeling systems. You may want to look into finding a modeling package; the documentation on the conversion mechanisms starts here ([url=]). I’m afraid I’m not a modeler myself; hopefully, others can suggest good modeling packages to get started.

If you want to get started playing with the engine, you can download some free-use models here ( These can get you started on working with the engine and its functionality.

Welcome to the group!

Take care,

@Fixer - Thanks for the quick reply.

Im already fair at modelling. I have used blender, 3dStudio, and lightwave… I also model in Second Life.

However, I have wanted to build in a manner similar to Second Life, with a built-in pop-up modeller. The problem is that many of those primatives are actually polynomial math formulas and I am not equipped to handle the math.

I have heard that the modelling system in SL is open source and could be integerated into another program, but I havent seen any recent info.

For a subset of what you may want to do, the Scene Editor might be of use to you (although it is currently broken as of Panda 1.2.3; earlier versions of Panda, however, have a working version). What you could do is construct several primitive objects in your favorite modeling package, import them to .egg format, and put them in a models directory. Then you could use the scene editor to pull copies of them in and move them around, much like Second Life’s system. The video documentation for the Scene Editor is here:

Alternatively, you could write a simple primitive-instantiator yourself. That would be a relatively simple (and cool!) project, and would allow you to learn the ropes of Panda3D.

For the more complicated effects offered by Second Life’s system (shearing and twisting of primitives), I’m not really certain there’s an easy way to do those. Perhaps one could multiply a node’s transform matrix by a shearing matrix; that’s a little outside of the mathematics that I can rattle off the top of my head in 5 minutes, but it feels possible.

So I would start by downloading an older version of Panda and looking into the scene graph editor. That may be about 80% of what you’re looking for.

Best of luck,

@Fixer - thanks for the reply.

It sounds like the scene editor is back on the road to recovery. There is a posting today that it might be fixed. I downloaded the new version but have to wait until I get home tonight to try it out.

As far as the models are concerned, I have thought about it and for the simpler shapes, that would work fine. However, complicated shapes are generally created by higher order polynomial functions that are beyond me. Cones and torii have properties that could not be duplicated with just transforming a model and even spheres are usually defined by the number of polygons around its circumference. Thats oenthing I would not know how to program in any language without some kind of reference material around.