SimVX Core
The SimVX engine with no renderer attached: nodes, signals, properties, input, UI, audio, animation
and physics, plus the simvx command. 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
pip install --pre simvx # the whole engine (recommended)
pip install --pre simvx-core # core alone: headless simulation, servers and tests
Latest development build: add --extra-index-url https://pypi.simvx.com/.
Use
A scene runs headless with no window and no GPU:
from simvx.core import Node, Timer
from simvx.core.testing import SceneRunner
class Countdown(Node):
def on_ready(self):
self.ticks = 0
timer = self.add_child(Timer(duration=0.5, one_shot=False, autostart=True))
timer.timeout.connect(self.on_tick)
def on_tick(self):
self.ticks += 1
runner = SceneRunner().load(Countdown())
runner.advance_time(2.2)
print(runner.root.ticks) # 4
What's in it
- Nodes, signals and
Property: the scene tree and its lifecycle, groups, coroutines, and validated, serialisable properties; scenes are Python files. - Input: typed actions over keyboard, mouse, controllers, pens and touch, with contexts, rebinding and local multiplayer.
- Physics: 2D and 3D rigid bodies, character controllers, areas, joints and spatial queries.
- Audio and animation: 2D and 3D spatial audio with buses; tweens, sprite sheets, keyframe clips and state machines.
- UI: controls, containers, theming and focus, the same widgets the editor is built on.
- Tilemaps and navigation: auto-tiled grid levels, A* pathfinding in 2D and 3D, and steering agents.
- Testing: a headless scene runner, input simulation and a UI test harness.
Documentation · Source · Licence: AGPL-3.0-or-later with Additional Terms, including the Game-Distribution Exception.