SimVX¶
A Godot-inspired game engine written entirely in Python, featuring a scene-tree node system, Vulkan rendering, and a rich set of built-in systems for building games and simulations.
Features¶
Node system with scene tree hierarchy, signals, groups, and coroutines
3D rendering via Vulkan (GPU-driven, multi-draw indirect batching)
Animation with tweens, sprite sheets, keyframe clips, and state machines
Audio with 2D/3D spatial playback, distance attenuation, and bus routing
UI widgets including buttons, sliders, text edits, and layout containers
Collision detection with GJK narrowphase, AABB broadphase, and raycasting
Scene serialization to JSON with PackedScene prefab support
Math library with Vec2, Vec3, Quat, and matrix utilities (pure NumPy)
Installation¶
# Install core engine + Vulkan backend (editable/dev mode)
uv pip install -e packages/core -e packages/graphics
Requirements: Python 3.13+, NumPy, Vulkan 1.2+ GPU, GLFW3, glslc shader compiler.
Quick Start¶
from simvx.core import Node, Camera3D, MeshInstance3D, Mesh, Material
from simvx.graphics import App
class MyGame(Node):
def ready(self):
cam = Camera3D(position=(0, 5, 10))
cam.look_at((0, 0, 0))
self.add_child(cam)
cube = MeshInstance3D(
mesh=Mesh.cube(),
material=Material(color=(1, 0, 0)),
)
self.add_child(cube)
def process(self, dt):
cube = self.children["MeshInstance3D"]
cube.rotate((0, 1, 0), 90 * dt)
app = App(width=1280, height=720, title="My Game")
app.run(MyGame())
Core Engine
Graphics Backend
API Reference