About this project

Ursina is an open-source game engine and framework for Python aimed at making 3D and 2D game development approachable. It is built on top of Panda3D and exposes a concise, Pythonic API: a minimal program imports everything from ursina, creates an Ursina() app, adds Entity objects with models, colors, scales and colliders, and calls app.run() to open a window and start the game loop. Key capabilities evidenced in the README: - 3D and 2D game development in pure Python, with an update() function called automatically by the engine each frame. - Entity system for objects such as cubes and other primitives, with properties like model, color, position, origin, scale and collider. - Input handling through held_keys and related input utilities. - Built-in assets: audio clips, fonts, .blend source models, compressed .ursinamesh models, and procedural model generators such as Cylinder, Quad and Terrain. - Prefabs for higher-level UI/game objects like Draggable, Slider and Sprite. - A built-in 3D level editor under ursina/editor. - Texture manipulation via pillow, .psd conversion via psd-tools, .blend conversion via Blender, and clipboard support via pyperclip as optional dependencies. - Documentation, API reference, cheat sheet and a samples folder with small example games, including a Minecraft clone and a platformer tutorial. Installation is via pip (pip install ursina), with an extras option for optional dependencies, or from the GitHub repository for the development version. Python 3.10 or newer is required. The project structure separates docs, samples and the ursina module, and the README points to a website, Discord, Twitter, Patreon and GitHub Sponsors for community and support.