Godot Comparison¶
SimVX’s API is modeled on Godot but uses Pythonic conventions. This table maps common Godot patterns to their SimVX equivalents.
API Mapping¶
Godot (GDScript) |
SimVX (Python) |
Notes |
|---|---|---|
|
|
|
|
|
Same observable pattern |
|
|
Returns |
|
|
Auto-disconnects after first emit |
|
|
No underscore prefix |
|
|
Same |
|
|
Same |
|
|
|
|
|
Also works |
|
|
Property; |
|
|
|
|
|
Relative paths supported |
|
|
Same |
|
|
Same |
Structural Differences¶
Language: Pure Python 3.13+ instead of GDScript/C#. Standard Python tooling (pytest, mypy, ruff) applies.
Rendering: Vulkan only. No OpenGL fallback. GPU-driven with multi-draw indirect – no per-object draw calls.
Math:
Vec2/Vec3arenumpy.ndarraysubclasses. All rotation APIs use degrees (not radians).Input: Typed enum keys only –
InputMap.add_action("jump", [Key.SPACE]). No string-based legacy API.Scenes: JSON serialization via
save_scene()/load_scene(). No.tscn/.tresformat.Coroutines: Generator-based (
yield from wait(0.5)) instead ofawait. No async/await runtime.
Import Pattern¶
from simvx.core import Node, Node3D, Camera3D, MeshInstance3D
from simvx.core import Property, Signal, Vec3, Mesh, Material
from simvx.core import InputMap, Key, Input
from simvx.graphics import App
The API is still evolving. When something feels awkward compared to Godot, the engine should be improved rather than worked around.