this project is mostly tested on python 3.9
The Panda3D Editor is a scene editor designed to facilitate the creation, visualization, and management of 3D environments for Panda3D-based applications. It provides an intuitive interface for editing scene objects, adjusting properties, and managing assets. create_project
-
Scene Hierarchy Management: Organize objects within a tree view.
-
Transform Gizmos: Move, rotate, and scale objects interactively.
-
Property Inspector: Modify object attributes in real-time.
-
Undo/Redo System: Keep track of changes and revert if needed.
-
Integrated Python Console: Execute scripts within the editor.
-
Visual Debugging Tools: Display collision bounds, lights, and physics objects.
-
Networking Tools: For creating games that will be multiplayer.
-
Animation Tab: Create animations inside the editor(in future updates it will also load from 3rd party).
-
Terrain paintning/sclupting: Create/Paint/Sclupt a terrain mesh.
-
global registry & monobehavior system: just like unity we have a mono behavior system!
-
UI Editor: Create & Edit UI's for your game.
-
Save load system: of course save your project in .toml for each entity and then it zips all entity tomls to .map, that way you can either share the .map to others or individual entities!
-
Shader Editor: create shaders live inside the editor and save them to individual files(shader node editor comming soon).
-
Node Editor: If you are tired of typing you can use the node editor!
Ensure you have Panda3D installed. Then, clone the repository and install dependencies:
pip install -r requirements.txt
Run the editor using:
python main.py
Displays all objects in the scene. Right-click to add or remove objects.
A 3D view of the scene where users can interact with objects.
Modify selected object properties such as position, rotation, and material settings.
Provides quick access to commonly used tools like translation, rotation, scaling, and snapping.
Shortcut | Action |
---|---|
W | forward |
A | left |
S | backwards |
D | right |
e | up |
q | down |
Users can extend the editor by adding custom components. Example:
class CustomComponent:
def __init__(self, node):
self.node = node
print("Custom component added to", node)
- Implement a material editor
- Fix terrain editor responsiveness issues
- Improve UI responsiveness and usability
- Organizing the project
- Undo & Redo is comming soon
- Introducing physics and physics debugging
We welcome contributions! Submit issues and pull requests via GitHub.
MIT License. Free to use and modify.