SimVX: a Python game engine

Licence AGPL-3.0-or-later, Python 3.14+, latest development build

SimVX

A Python game engine for 2D and 3D: scenes are plain Python, rendering is Vulkan, games export to the browser.

Pre-alpha. SimVX publishes development releases only (0.0.0.devN) and is under active development; the API changes between builds. Once stable versions ship to PyPI, development builds continue on pypi.simvx.com.

SimVX development roadmap, marking the stage the project has reached

Clips of games and the editor, each recorded live in SimVX

Install

You need Python 3.14+ and a GPU driver with Vulkan 1.2+.

pip install --pre simvx
pip install --pre simvx --extra-index-url https://pypi.simvx.com/   # or the latest development build

From source: git clone https://git.simvx.com/simvx/simvx.git && cd simvx && uv sync, then run commands through uv run (building from source).

Linux x86_64 is tested; Linux aarch64, Windows and macOS builds are untested. The install guide covers GPU drivers, platforms and glslc for your own shaders.

A first program

import math

from simvx.core import Camera3D, Material, Mesh, MeshInstance3D, Node
from simvx.graphics import App


class MyGame(Node):
    def on_ready(self):
        self.add_child(Camera3D(position=(0, 5, 10), look_at=(0, 0, 0)))
        self.cube = self.add_child(
            MeshInstance3D(mesh=Mesh.box(), material=Material(colour=(1.0, 0.2, 0.2, 1.0)))
        )

    def on_update(self, dt):
        self.cube.rotate((0, 1, 0), math.radians(90) * dt)


if __name__ == "__main__":
    App(title="My Game").run(MyGame())

Save it as my_game.py and run python my_game.py: a window opens with a red cube spinning. For the example library, pip install --pre "simvx[examples]", then simvx examples run demos_asteroids2d; simvx examples copy <id> --to <dir> copies one into a directory you own to start from. simvx editor opens the visual editor.

Features

  • Scenes are Python files. Diff, review and test them like any other code; the editor reads and writes them as Python.

  • One language, one toolchain. No scripting bridge: pdb, pytest and mypy work on your game.

  • One API for 2D, 3D and UI. The visual editor and IDE are built on the same widgets you use.

  • Browser export. simvx export web my_game.py writes a static WebGPU page.

  • GPU-driven Vulkan renderer with PBR, shadows, SSAO, bloom and post-processing.

  • Batteries included: physics, audio, animation, tilemaps, navigation and a headless test harness.

Start here

Install

pip install --pre simvx, the GPU driver and supported platforms.

Installation
Quickstart

A first 2D and 3D program.

Quickstart
Examples gallery

Browse the examples; most run in your browser.

Examples Gallery
First 2D game

Build Pong.

Your first 2D game
First 3D game

Build a 3D gem collector.

Your first 3D game
Editor in the browser

The visual editor, live in your browser.

https://simvx.com/docs/editor.html

Going deeper

Licence

You want to

Licence

Cost

Your obligation

Open-source your game

AGPL-3.0-or-later

Free

License your game under the AGPL; keep the NOTICE

Ship a game under any licence, closed-source included

Game-Distribution Exception

Free

Show the “Made with SimVX” splash or watermark

Use the engine outside those terms

Commercial licence

Separate terms

Write to licensing@simvx.com

The features, tutorials and demos examples are MIT; each port under examples/ports/ carries its own licence, the editor sample projects follow the engine’s, and bundled third-party assets keep theirs. Documentation prose is CC-BY-4.0 and its code snippets MIT (details).