Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

SimVX

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

Scenes are Python code

from simvx.core import Node2D, Sprite2D


class Coin(Node2D):
    def on_ready(self):
        self.add_child(Sprite2D(texture="coin.png"))


class Level(Node2D):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        for i in range(5):
            self.add_child(Coin(position=(64 * i, 0)))

Both classes are nodes, and nodes are scenes. The editor rewrites this same file and leaves the methods you wrote untouched.

SimVX demos

This release is infrastructure, not the engine. It reserves the name and puts the documentation and the release pipeline in place. What it installs today is a preflight check; the engine itself comes from the project's own index. See Installing below.

Release progress

Core architecture

Rendering. Vulkan on the desktop and WebGPU in the browser, from the same scene. Draws are batched and per-object data lives in GPU buffers, so frame cost tracks the GPU work rather than the Python that built the scene. PBR materials, shadows, ambient occlusion, image-based lighting and post-processing are all opt-in. The 2D side is its own pipeline: sprites, tilemaps, particles and 2D lights.

Editor. A scene tree, an inspector, gizmos and a play mode that runs the game in place, all built from the engine's own widgets. Every panel is a Python class you can modify.

Physics. Bodies, joints, areas and queries, in 2D and in 3D, behind one API whichever backend is in use. The default is pure Python and always present. For speed there are native backends: Chipmunk2D through pymunk, used automatically once installed, and Jolt for 3D, which you opt into per project.

Audio, animation, navigation, tilemaps, UI and save/load are part of the same library. Over 100 worked examples come with it: single-feature references, narrated tutorials, re-implementations of well-known games and tutorial projects, and larger demos. Most run in the browser from the docs.

Design decisions

  • Scenes are reviewable. A scene change shows up in git diff as source, and a conflict in one is resolved like any other merge conflict.
  • No scripting bridge. Engine, editor and game run in one runtime. There is no binding layer between a fast core and a slow script language, and an editor plugin uses the same API as the game.
  • Standard tooling. Game code is an ordinary Python package, so you can use pdb, pytest, mypy and anything else on PyPI.
  • Export to HTML. simvx export web game.py writes a WebGPU page you can serve from any static host, with no backend and nothing for a player to install.
  • Headless is first class. CI can render a frame and assert on the pixels with no display attached, and programmatic input drives a scene the way a player would.

Installing

Requires Python 3.14+ and a Vulkan 1.2+ driver for the desktop renderer. Windowing runs on GLFW, SDL3 or Qt. A Vulkan driver comes from your GPU vendor, not from pip, so this package ships a check for one:

pip install simvx && simvx-preflight

The engine itself is published continuously to the project's own index:

pip install --pre simvx --extra-index-url https://pypi.simvx.com/

Or from source:

git clone https://git.simvx.com/simvx.git && cd simvx && uv sync

Licence

AGPL-3.0-or-later covers the engine. A game-distribution exception then lets you ship your own game under any licence you like, closed source included, at no cost. It has three conditions: that the game display the "Made with SimVX" splash, that it use the engine through its public interfaces, and that changes to the engine itself stay AGPL. A commercial licence covers what that exception does not, such as shipping without the splash. See https://simvx.com.

Download files

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

Source Distribution

simvx-0.0.0.dev0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simvx-0.0.0.dev0-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file simvx-0.0.0.dev0.tar.gz.

File metadata

  • Download URL: simvx-0.0.0.dev0.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for simvx-0.0.0.dev0.tar.gz
Algorithm Hash digest
SHA256 1e3817204e0847e718fd2fef7425516d02bee0ca1a0488ee49028a092f098e13
MD5 141655ed96028eb6aaea7adb08ee5c36
BLAKE2b-256 efb681a903d0c8994326630eb1cff7349949d0624e0cacd972a0940a2880b872

See more details on using hashes here.

File details

Details for the file simvx-0.0.0.dev0-py3-none-any.whl.

File metadata

  • Download URL: simvx-0.0.0.dev0-py3-none-any.whl
  • Upload date:
  • Size: 27.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for simvx-0.0.0.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 210c04fdee9f4cac1ec55ca32996da2865261e8373476e50b823db4300dcde1b
MD5 2d133bfb254b8567e65b22f25671209b
BLAKE2b-256 f14de1880acafe7b18a211f46854db7a20b1731359abdf627a24ae50c21c93f5

See more details on using hashes here.

Supported by

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