Skip to main content

Panda3D add-on for Kivy integration.

Project description


A Panda3D add-on for Kivy integration.

The aim is to make the integration of Kivy apps into a Panda3D application almost transparent. Potential uses include creating on-screen GUI, or even RTT 3D UI's.


First, import - make sure you do this before importing any Kivy-related stuff:

from import App

Then, as usual in Kivy, create a subclass of this App, and use build() or the KV autoloading system to populate your widget tree:

from kivy.uix.button import Button

class Example(App):
    def build(self):
        return Button(text='Hello, world!')

You can then instanciate and run this app inside the __init__ of your Panda ShowBase, after running ShowBase.__init__(self). You will need to create a display region for your kivy app, sized according to your needs. You must then pass it as well as your showbase as arguments to the kivy app instanciation, and finally call as you normally would:

from direct.showbase.ShowBase import ShowBase

class PandaApp(ShowBase):
    def __init__(self):

        # Full screen display region, adjust as needed
        display_region =, 1, 0, 1)

        self.kivy_app = kivy_app = Example(

        # The rest of your ShowBase code here

Voilà! You should have a working Kivy UI in your Panda application. Have fun!

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

panda3d-kivy-0.1.tar.gz (5.1 kB view hashes)

Uploaded source

Built Distribution

panda3d_kivy-0.1-py3-none-any.whl (6.9 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page