Making a GUI for Panda3D

So, I had this idea for a while. Make a Graphical User Interface for Panda3D, this would make the engine much more user friendly, and it would allow the engine to compete with other commercial engines such as Unity3D. I don’t know if it is worth doing this, so anyone interested, please let me know. If this post gets enough interest, I may make a Git repo, where everyone can contribute.

Hi, I am currently working on a GUI system for panda, you can check it’s status at
https://github.com/tobspr/LUI

It’s still in a beta phase but already useable. The core is almost done, I just have to add more prefabs (like Layouts, Buttons, etc …) and I haven’t found a good way to make it fully customizeable yet.

If you’re interested, I’m mostly on #panda3d on freenode

Consider my interest registered. I was thinking I’d have to (at the very least) knock together a few bits building on Direct Tools for my own project, but I’m already neck deep in an IK implementation, plus looking into decent performing collision detection for deformable meshes. Bottom line is my plate is looking rather full for a while, so I’d be super happy to finish those off and find something like this waiting :smiley:.

A couple of things I’d love to see (may not be well thought out):

  • Something like Unity’s gizmos. E.g. for my IK stuff I’d have things like joint/bone visualizations, and joint constraint visualizations that you could tweak visually.
  • Something like Unity’s frame-by-frame step, so values could be examined as they change. Maybe some sort of debugger integration.

There’s old level editors around, plus Direct Tools, so maybe they’d provide some bits for you to reuse if you wished.

Well, I’m not sure if that’s the job of a gui system … for example Gizmos are more in 3D Space, while the GUI is usually in 2D space …

The frame-by-frame step would be more a task of writing a debugger, which then uses the GUI, in my opinion …

Reading the original post, I think that konlord is talking about graphical game/scene editing tools, like Unity’s tools, not a GUI system like DirectGUI.

Tools are, I think, one of the larger lacks that Panda3D suffers.

Someone was working on a scene editor (kurohyou’s editor perhaps?), but no news has come of it for some time, that I’m aware of.

Oh, well, then I misread the post, sorry! :slight_smile:

Well, some sort of toolkit would be nice … I’d be willing to contribute, too

Thaumaturge is right. I don’t want to build a GUI library (like DirectGUI), but rather an entire GUI to control the engine itself. Thanks for the replies though, your project seems very interesting.

There have been many attempts to create a general-purpose editor for Panda3D. The problem is that because Panda3D is a universal engine with so many possibilities, most editors end up being written to suit the needs of the particular purpose of the author, rather than being useful in general. It’s genuinely difficult to design something that’s useful for everyone.

That said, I welcome anything that makes it easier for artists to use Panda3D. :slight_smile:

Hi there :slight_smile: !

For my own purposes I’m working on a project that I call “Panda3D Studio”. As you might gather from the name, it is supposed to be(come) a basic modelling, texturing (and perhaps even animation) solution, right inside of Panda3D itself, eliminating the need for any of that export/import malarkey that can oftentimes be quite frustrating.
Currently, the program doesn’t quite live up to its name (or to the ridiculously high expectations that you might be having right now :wink: ) so “pview +” would probably be a more fitting name in its present state :smiley:, but yes, it is my hope that one day it will become a rather useful tool.

Although it’s not yet in a truly usable state (no model import/export yet), some things are already working fine, like creation of geometry primitives, gizmo’s, selections and transformations (see here for a basic version of those things), there’s a nice grid system, a fully editable, unlimited, branching undo/redo history and currently I’m working on an editable material system. There are also helper objects, including a texture projector which is quite fun to play with :slight_smile: .
So yeah, I’m having a bit of fun with all that and I’ll see how far I can get with it.

In the meantime, feel free to check out the following videos and tell me what you think:

Panda3D Studio - DeepShelf*
Panda3D Studio - Sphere creation
Panda3D Studio - Fun with transforms
Panda3D Studio - The grid
Panda3D Studio - Materials

or download them directly from here:

p3ds - 001. DeepShelf.mp4*
p3ds - 002. Creation.mp4
p3ds - 003. transforms.mp4
p3ds - 004. The grid.mp4
p3ds - 005. materials.mp4

Enjoy the show :slight_smile: !

*) The first video deals with a GUI component called DeepShelf, a special kind of toolbar; it basically combines the functionality of a regular toolbar with that of a recursive directory system (i.e. you can nest “shelves” as deeply as you wish). Navigation is quite easy and doesn’t require even a single mouseclick. In Panda3D Studio it replaces the menu bar and can accommodate any button that doesn’t fit in the main toolbar(s). Its contents is completely customizable by the user.

Well, I am interested in simple-but-flexible GUI. Maybe I cam help, but I am strong python programmer and not-so-strong C++ (quite above zero). Maybe we can discuss how we can collaborate :slight_smile:

I check this forum every day and prefer jabber for communication. Maybe I’ll create an IRC account for this case.

Hi, I am glad about any help, there is a lot of work to be done in python, too, only the core is in c++. I would prefer IRC, i’m at #panda3d (almost) daily, maybe we could discuss it in detail there :slight_smile:

It looks like “communication conflict” or something :smiley:
Today I’ll try to connect this node and it will be great if I succeed because I think communication via this forum is very slow even if we’ll check and write here five times a day.

But some important questions I’ll ask here because I can’t wait.

First of all, how to install your GUI and play around. I have no idea about current state of the project until I run the code on my machine.

Second of all, what are the key concepts of your project?

These are major questions. Others, I think, are for IRC chat.

For the installation you need the latest version from the panda3D cvs, then replace the makepanda.py by the version found here: github.com/tobspr/LUI

Also replace the panda/src/pandabase/pandabase.h by the one in the repo. Then copy the contents of the Source/ folder to panda/src/lui. Now you should be able to compile your panda build. After that’s done, you should be able to run lui, e.g. LUIBuiltin/LUIButton.py. It’s still in an early development stage, though.

Key concepts are: Simple to use, but flexible enough to use skins, Very fast (Heavy use of texture-atlases and core in c++), and also Pixel Perfect. When the project performs well, maybe a DirectGUI alternative.

For more detailed stuff (also class-structure), waiting to meet you at the IRC! :slight_smile:

Hi,

The file pandabase.h doesn’t appear to be on the aforementioned repo. It is missing or is not necessary anymore?

Thank you.

The latest version of LUI no longer requires replacing the pandasymbols.h header file, as per this PR.