Metadata-Version: 2.5
Name: SimVX-Graphics
Version: 0.0.0.dev3104
Summary: SimVX's Vulkan renderer and window layer.
Project-URL: Homepage, https://simvx.com
Project-URL: Documentation, https://simvx.com/docs/graphics/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
Author-email: SimVX <contact@simvx.com>
License-Expression: AGPL-3.0-or-later
License-File: LICENSE
License-File: NOTICE
License-File: THIRD_PARTY_LICENSES.md
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: GPU
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: Multimedia :: Graphics :: 3D Rendering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.14
Requires-Dist: freetype-py>=2.5.0
Requires-Dist: glfw>=2.10.0
Requires-Dist: numpy>=2.0
Requires-Dist: pillow>=10.0
Requires-Dist: pygltflib>=1.16
Requires-Dist: simvx-core==0.0.0.dev3104
Requires-Dist: vulkan>=1.3
Provides-Extra: all
Requires-Dist: glfw>=2.7; extra == 'all'
Requires-Dist: pysdl3>=0.1; extra == 'all'
Requires-Dist: pyside6>=6.7; extra == 'all'
Requires-Dist: texture2ddecoder>=1.0; extra == 'all'
Requires-Dist: zstandard>=0.22; extra == 'all'
Provides-Extra: compressed
Requires-Dist: texture2ddecoder>=1.0; extra == 'compressed'
Requires-Dist: zstandard>=0.22; extra == 'compressed'
Provides-Extra: dev
Requires-Dist: pytest-forked>=1.6; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Provides-Extra: glfw
Requires-Dist: glfw>=2.7; extra == 'glfw'
Provides-Extra: qt
Requires-Dist: pyside6>=6.7; extra == 'qt'
Provides-Extra: sdl3
Requires-Dist: pysdl3>=0.1; extra == 'sdl3'
Provides-Extra: streaming
Requires-Dist: aiohttp>=3.9; extra == 'streaming'
Description-Content-Type: text/markdown

# SimVX Graphics

SimVX's Vulkan renderer and window layer: `App`, the GPU-driven 3D renderer, 2D drawing and the
windowing backends. Most users want `simvx`, which includes it.

> **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.

## Install

```bash
pip install --pre simvx            # the whole engine (recommended)
pip install --pre simvx-graphics   # core and the renderer, without the editor, IDE, web export or AI
```

Latest development build: add `--extra-index-url https://pypi.simvx.com/`.

Needs Python 3.14+ and a Vulkan 1.2+ driver; `glslc` only for your own GLSL. Other window layers:
`simvx-graphics[sdl3]` (touch, pens, app lifecycle) or `simvx-graphics[qt]` (inside a Qt app).

## Use

<!-- snippet: run -->
```python
from simvx.core import Node2D
from simvx.graphics import App


class Game(Node2D):
    dynamic = True  # on_draw reads the window size, so it redraws every frame

    def on_draw(self, renderer):
        renderer.circle(self.viewport_size / 2, 40, fill=(0.4, 0.8, 1.0, 1.0))


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

## What it renders

- **Lighting:** PBR materials, directional, point and spot lights with cascaded and point shadows,
  image-based lighting, reflection probes and baked probe volumes.
- **Post-processing** set on `WorldEnvironment`: bloom and tonemapping, SSAO, SSR, SSGI, TAA,
  motion blur, volumetric fog and render-scale upscaling.
- **GPU-driven drawing:** one multi-draw-indirect call submits every visible opaque instance, after
  frustum and Hi-Z occlusion culling.
- **2D:** immediate-mode shapes, text and images from `on_draw`.
- **Offscreen views:** `SubViewport` renders a subtree to a texture, for monitors and mirrors.

[Documentation](https://simvx.com/docs/graphics/index.html) ·
[Source](https://git.simvx.com/simvx/simvx/src/branch/main/packages/graphics) ·
Licence: AGPL-3.0-or-later with [Additional Terms](https://git.simvx.com/simvx/simvx/src/branch/main/LICENSE-ADDENDUM.md),
including the Game-Distribution Exception.
