[Alpha] TreeGUI

home page:


Always get the latest reversion:


home page:


Always get the latest reversion:


Interesting! To what extent will it be stylistically customizeable?

well you can change quite a lot: Image and uv layout on the image. But still there is some limits. But the code is there any kind system can be hacked up if need be.

Wow, this is really kewl, Treeform! This would be a great higher-level alternative for the DirectGUI system.

Great work thanks for the efforts

Looks interesting, thanks for taking this on. A more usable GUI system would be very useful for games heavier in gui.

Thanks for the work, any update on progress, or have you moved on to something else?

I was trying to code a gui layout and theme design program for panda3d. But there is just so many features the program must have in order to be used comfortably. I looked into all ready made gui tools - most of them are for existing gui’s and cant help me much. Then i though about inkscape, what i use a bitmap and then over lay it with rectangles? Ink scape has a full featured 2d gui adding abilities as well as naming the rectangles. I don’t know what do you guys think?

Use inkscape to draw out gui themes?

it’s free, crossplatform, there is aleightweight version for old pc’s , it’s quite easy to use.
no objections from my end :slight_smile: (if you include a how-to that is)

i hope this works out well, would be awsome.

Sounds great, I’m all for inkscape.

If i understand the idea behind your proposal :
a) you layout a GUI in Inkscape
b) you define zone in the GUI by naming them in Inkscape
c) you use this names to bind from Inkscape images to ingame gui controls
(like buttons, etc…)

If this is the idea /workflow, that’s pretty nice.

Do you plan to add a dedicated python plugin to inkscape?

If Manakel is right, that does seem like quite a nice workflow.


No pugin, i started to write a tool then go oh, its just like inkscape. So maybe use inkscape instead.
basically i foresee 3 uses

theme (in the works):
take an image and layout it with named boxes so that the my gui engine (which is pretty good imo) can cut the texture up into proper components

use the inkscape boxes to positions control on different gui elements.

direct drawing (not high on the list):
I already have limited .svg to .egg (just rectangles + their quite complex matrix transforms.) Maybe drawing the gui directly in inkscape and having a svg (2d vector graphic renderer in panda3d) would be cool.

Would it be possible to include mouseover, mouseclick, button disabled images to the buttons in your gui system?

ok i’ll put that on the list.

I am still trying to nail down theme creation. Because each game should have different theme creating new themas easily with treegui should be top priority (even more sow then the layout of controls because game normally dont have that many buttons.)

There is what i cam up with. Draw the gui texture in photoshop gimp what ever then use your favorite 3d program (no matter what but i used blender)
To lay out the boxes around the texture controls:

start blender pick your image texture as background:
use blenders project from view to map right on to the texture

uv map squares over every control you want …

this is blender so the thing is in 3d even though we will not use the 3d view but compute from the 2d texture layout view.

the final this is that every thing should be named according to function consult the documintation on what that will and might be.

texture used:

Then just export as egg and use that as theme! That is much better idea then going through inscape or my own custom tool because
#1 you dont have to learn some thing new!
#2 any 3d tool that can export egg (or format that panda3d can load .x,3ds…) can now be used as a theme designer by sticking to naming conventions!
#3 the 3d editor was not exaclty build for this function but i am sure it has way more sort cuts and tools for this then any thing i could build!

I think using theme designer in this way is the best idea? What do you think?

well … i think blender is much more complicated than inkscape (and takes longer to learn) and creating 2d theme in 3d editor is … crazy. why you dont simply use inkscape ?

no you see you dont have to use blender just the egg pipeline.

In order to use panda3d you have to have some one who knows how to use a 3d modeling app to produce eggs. In my case its blender, in your case it might be Maya, Max, C3d, Bruse … you name it. If you can export egg from it then you can make a theming system in it. Thats my idea behind this not create a new pipe line (tied to inkscape) but use the exiting egg pipeline.

Hi, i think what the method exposed by treeform its perfect and clever. Dude, could you tell me wich funtion should i seek in the reference of Panda3D to know abour naming?.


This stuff is not in the reference. Its not in panda3d. It just my own subsystem.

I’d like to check in and see what the status is on treegui. I’ve recently reached a point with my game where I need a GUI system and treegui looks functional and simple. I’ve downloaded the alpha1 release from launchpad and started implementing it. It’s working great but there’s a lack of some more advanced widgets. I’ve started writing my own, for example I made a drop-down selection. However, I thought I’d check to see if there’s any newer versions available before I do too much coding.

Also what’s the status on the theme editing process? A simple way to modify the theme would save me a lot of time.

Thanks, treegui is awesome!


Edit: I’ll post any modifications/additions I make as soon as they’re finished for others to use if they want.