Graphics Backend

The simvx.graphics package provides GPU-accelerated Vulkan rendering for SimVX.

Architecture

SimVX uses a GPU-driven forward renderer — all draw calls use vkCmdDrawIndexedIndirect with no Python loops during rendering. Object transforms, materials, and draw commands are packed into flat NumPy arrays and uploaded to SSBOs once per frame.

Key Features

  • Multi-draw indirect — thousands of objects in a single Vulkan draw call

  • SSBO-driven data — transforms, materials, and lights in Shader Storage Buffer Objects

  • Bindless textures — up to 4096 textures in a single descriptor array

  • Multi-viewport — split-screen, picture-in-picture, offscreen render targets

  • Frustum culling — CPU-side per-viewport bounding-sphere culling

Guides

  • App Class — App class, game loop, and backend swap

  • Visual Testing — Headless rendering, pixel assertions, and visual regression tests

API Reference

See simvx.graphics for the complete API.