ursina
An easy to use game engine/framework for python.
What it is and what it does
Ursina is a high-level Python game engine that wraps Panda3D to make 3D game development more accessible. It provides an entity-component-like system where you define game objects as Entities with properties like model, color, position, and collision, then update them in a standard game loop. The engine handles rendering, input (keyboard/mouse), physics collision, and window management automatically.
You write games entirely in Python without needing to learn a separate engine editor or scripting language. Ursina includes built-in 3D models, fonts, and audio clips, and supports loading external assets (textures, models from Blender). It's designed for rapid prototyping and learning, with examples ranging from simple cubes to platformers and Minecraft-like voxel games. The active community and documentation make it suitable for hobbyists, students, and developers exploring game development in Python.
Use it for:
- Build a simple 3D platformer or puzzle game without learning a complex engine
- Create educational visualizations or interactive 3D simulations in Python
- Prototype game mechanics quickly before committing to a larger engine
- Develop a voxel-based or grid-based game (e.g., Minecraft-style clone)
- Make a 2D or 3D game jam entry using pure Python code
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Ursina is a Python game engine built on Panda3D that lets you create 3D games and interactive applications by writing Python code, with built-in support for entities, collision, input handling, and rendering.
Yes, if you want to make 3D games in Python with minimal setup friction. Ursina is actively maintained, permissively licensed, has no known vulnerabilities, and low install friction. It's well-suited for learning, prototyping, and small-to-medium indie projects. Not recommended if you need AAA-grade performance, advanced physics, or a mature ecosystem of third-party plugins—consider Godot or Unreal for those.
Install
ursina on PyPI
pip
pip install ursinauv
uv add ursinapoetry
poetry add ursinaInstalling ursina
Before you install
Low install friction; distributed as a pure Python wheel. Requires Panda3D and five other runtime dependencies (pillow, pyperclip, screeninfo, panda3d-gltf, sswg), all available on PyPI. Actively maintained with recent commits and no known vulnerabilities.
License in practice
MIT license is permissive; you can use, modify, and distribute ursina-based projects with minimal legal restriction, including in commercial applications.
Quickstart
pip install ursina
from ursina import *
app = Ursina()
player = Entity(model='cube', color=color.orange, scale_y=2)
def update():
player.x += held_keys['d'] * .1
player.x -= held_keys['a'] * .1
app.run()
Requires Python 3.12 or newer. Panda3D may require a C++ compiler and system graphics libraries on some platforms.
Verify before relying
- Whether psd-tools and blender are optional or required for .psd and .blend file support
- Performance characteristics and scalability limits for complex 3D scenes
- Cross-platform support details (Windows, macOS, Linux compatibility)
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — panda3d, panda3d-gltf, pillow, pyperclip, screeninfo, sswg |
| Maintenance | actively maintained — 251 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 131,349/month — #11,595 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ursina-8.3.0-py3-none-any.whl
Keywords: game, development
Tags
More Application Frameworks packages
FastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
Panda3DPanda3D is a 3D game engine with Python…
permissive · top 15,000 on PyPI
ale-pyale-py provides a Python interface to the Atari…
copyleft · top 15,000 on PyPI
panda3d-simplepbrProvides a physically-based rendering (PBR)…
permissive · top 15,000 on PyPI
Box2DBox2D is a Python binding to the Box2D C++…
permissive · top 15,000 on PyPI
TextArenaTextArena provides a framework of 100+…
permissive · top 15,000 on PyPI
pycolladapycollada reads, writes, and edits COLLADA 3D…
permissive · top 5,000 on PyPI
open-spielOpenSpiel provides game environments and…
permissive · top 15,000 on PyPI
dolphin-memory-engineReads and writes the memory of a running…
permissive · top 15,000 on PyPI