ursina
An easy to use game engine/framework for python.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.12 or newer.
- Panda3D may require a C++ compiler and system graphics libraries on some platforms.
- Low install friction; distributed as a pure Python wheel.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute ursina-based projects with minimal legal restriction, including in commercial applications.
last release 2025-12-06 (251 days) · last repo commit 2026-07-31 · 2,579 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 131,349 downloads/mo, #11,595 on PyPI
Alternatives
Verify before relying
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()- 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)
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 on it.
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
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.
Requires Python 3.12 or newer. Panda3D may require a C++ compiler and system graphics libraries on some platforms.
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()
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 packagespanda3dpanda3d-gltfpillowpyperclipscreeninfosswg |
| 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
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “python game engine”
- ursinaUrsina is a Python game engine built on Panda3D that lets you create…
- Panda3DPanda3D is a 3D game engine with Python bindings that lets you build…
- stockfishWraps the Stockfish chess engine to let Python code query best moves,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Application Frameworks packages
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Textual is a Python framework for building cross-platform user interfaces that run in the terminal or web browser using a modern, component-based API.
Install it if you're developing CLI tools, dashboards, or interactive terminal applications.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Build and connect to Model Context Protocol servers that expose tools, resources, and prompts to LLM applications over stdio, HTTP, or SSE transports.
Install it if you need to build or connect to servers.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
See also Panda3D · ale-py · panda3d-simplepbr · Box2D · TextArena · pycollada · open-spiel · dolphin-memory-engine