Metadata-Version: 2.5
Name: SimVX
Version: 0.0.0.dev3104
Summary: A Python game engine for 2D and 3D: scenes are plain Python, rendering is Vulkan, games export to the browser.
Project-URL: Homepage, https://simvx.com
Project-URL: Documentation, https://simvx.com/docs/index.html
Project-URL: Source, https://git.simvx.com/simvx/simvx
Project-URL: Issues, https://git.simvx.com/simvx/simvx/issues
Project-URL: Changelog, https://git.simvx.com/simvx/simvx/commits/branch/main
Project-URL: Examples, https://simvx.com/docs/examples/index.html
Author-email: SimVX <contact@simvx.com>
License-Expression: AGPL-3.0-or-later
License-File: LICENSE
License-File: LICENSE-ADDENDUM.md
License-File: NOTICE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.14
Requires-Dist: simvx-ai==0.0.0.dev3104
Requires-Dist: simvx-audio-miniaudio==0.0.0.dev3104; (sys_platform == 'linux' and (platform_machine == 'x86_64' or platform_machine == 'aarch64')) or (sys_platform == 'win32' and platform_machine == 'AMD64')
Requires-Dist: simvx-core==0.0.0.dev3104
Requires-Dist: simvx-editor==0.0.0.dev3104
Requires-Dist: simvx-graphics==0.0.0.dev3104
Requires-Dist: simvx-ide==0.0.0.dev3104
Requires-Dist: simvx-physics-jolt==0.0.0.dev3104; (sys_platform == 'linux' and (platform_machine == 'x86_64' or platform_machine == 'aarch64')) or (sys_platform == 'win32' and platform_machine == 'AMD64') or (sys_platform == 'darwin' and (platform_machine == 'x86_64' or platform_machine == 'arm64'))
Requires-Dist: simvx-textures-basis==0.0.0.dev3104; (sys_platform == 'linux' and (platform_machine == 'x86_64' or platform_machine == 'aarch64')) or (sys_platform == 'win32' and platform_machine == 'AMD64') or (sys_platform == 'darwin' and (platform_machine == 'x86_64' or platform_machine == 'arm64'))
Requires-Dist: simvx-web==0.0.0.dev3104
Provides-Extra: examples
Requires-Dist: simvx-examples==0.0.0.dev3104; extra == 'examples'
Description-Content-Type: text/markdown

<!-- docs-include-start -->

![SimVX: a Python game engine](https://static.simvx.com/pypi/banner.webp)

[![Licence AGPL-3.0-or-later, Python 3.14+, latest development build](https://static.simvx.com/pypi/badges.svg)](https://simvx.com/docs/install.html)

# 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](https://static.simvx.com/pypi/progress.svg)

![Clips of games and the editor, each recorded live in SimVX](https://static.simvx.com/pypi/features.webp)

## Install

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

```bash
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](https://simvx.com/docs/building.html)).

Linux x86_64 is tested; Linux aarch64, Windows and macOS builds are untested. The
[install guide](https://simvx.com/docs/install.html) covers GPU drivers, platforms and `glslc` for your own shaders.

## A first program

<!-- snippet: run -->
```python
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.

<!-- docs-include-end -->

## Links

[Documentation](https://simvx.com/docs/index.html) ·
[Examples gallery](https://simvx.com/docs/examples/index.html) ·
[Issues](https://git.simvx.com/simvx/simvx/issues) ·
[Contributing](https://git.simvx.com/simvx/simvx/src/branch/main/CONTRIBUTING.md) ·
[Changelog](https://git.simvx.com/simvx/simvx/commits/branch/main)

## Licence

| You want to | Licence | Cost | Your obligation |
| --- | --- | --- | --- |
| Open-source your game | [AGPL-3.0-or-later](https://git.simvx.com/simvx/simvx/src/branch/main/LICENSE) | Free | License your game under the AGPL; keep the [NOTICE](https://git.simvx.com/simvx/simvx/src/branch/main/NOTICE) |
| Ship a game under any licence, closed-source included | [Game-Distribution Exception](https://git.simvx.com/simvx/simvx/src/branch/main/LICENSE-ADDENDUM.md) | Free | Show the "Made with SimVX" splash or watermark |
| Use the engine outside those terms | [Commercial licence](https://git.simvx.com/simvx/simvx/src/branch/main/LICENSE-ADDENDUM.md) | 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
([examples licence](https://git.simvx.com/simvx/simvx/src/branch/main/examples/LICENSE)). Documentation
prose is CC-BY-4.0 and its code snippets MIT ([details](https://git.simvx.com/simvx/simvx/src/branch/main/docs/LICENSE.md)).
"SimVX" is a trademark. Contributions are accepted under the [CLA](https://git.simvx.com/simvx/simvx/src/branch/main/CLA.md). © 2026 Gabriel Bouffard.
