Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
SimVX documentation
SimVX documentation

Getting Started

  • Installation
  • Quickstart
  • Your First 2D Game
  • Your First 3D Game
  • Examples Gallery
    • Triangle
    • Bouncing Balls
    • Rotating Cube
    • Pong
    • Platformer
    • Asteroids 2D
    • Space Invaders 2D
    • Tic Tac Toe
    • Dungeon Explorer
    • Asteroids 3D
    • Space Invaders 3D
    • Physics Sandbox
    • Planet Explorer
  • Cheatsheet
  • Architecture
  • Building a Simple Game with the SimVX Editor

Core Engine

  • Core Engine
  • Node System
  • Input System
  • Animation
  • SimVX Audio System
  • UI System
  • Math Types
  • Collision & Physics
  • Scenes & Serialization
  • Particles
  • TileMap
  • 2D Lighting
  • Constructive Solid Geometry
  • Navigation
  • 3D Navigation
  • Skeleton
  • Physics Engine
  • Testing

Graphics Backend

  • Graphics Backend
  • App Class
  • Web Export
  • Custom Shaders
  • Visual Testing

API Reference

  • API Reference
    • simvx.core
      • simvx.core.physics
        • simvx.core.physics.engine
      • simvx.core.debug
        • simvx.core.debug.overlay
        • simvx.core.debug.ui_inspector
        • simvx.core.debug.profiler
      • simvx.core.nodes_3d
        • simvx.core.nodes_3d.path
        • simvx.core.nodes_3d.text
        • simvx.core.nodes_3d.multimesh
        • simvx.core.nodes_3d.remote_transform
        • simvx.core.nodes_3d.node3d
        • simvx.core.nodes_3d.sprite
        • simvx.core.nodes_3d.marker
        • simvx.core.nodes_3d.lights
        • simvx.core.nodes_3d.camera
        • simvx.core.nodes_3d.mesh
        • simvx.core.nodes_3d.spring_arm
      • simvx.core.input
        • simvx.core.input.events
        • simvx.core.input.map
        • simvx.core.input.state
        • simvx.core.input.enums
      • simvx.core.ui
        • simvx.core.ui.core
        • simvx.core.ui.virtual_scroll
        • simvx.core.ui.autocomplete
        • simvx.core.ui.terminal
        • simvx.core.ui.code_edit
        • simvx.core.ui.file_browser
        • simvx.core.ui.syntax_highlighter
        • simvx.core.ui.tabs
        • simvx.core.ui.colour_picker
        • simvx.core.ui.toolbar
        • simvx.core.ui.types
        • simvx.core.ui.clipboard
        • simvx.core.ui.markers
        • simvx.core.ui.split
        • simvx.core.ui.graph_edit
        • simvx.core.ui.virtual_controls
        • simvx.core.ui.testing
        • simvx.core.ui.menu
        • simvx.core.ui.containers
        • simvx.core.ui.tree
        • simvx.core.ui.code_editor_panel
        • simvx.core.ui.folding
        • simvx.core.ui.theme
        • simvx.core.ui.find_replace
        • simvx.core.ui.dock
        • simvx.core.ui.rich_text
        • simvx.core.ui.popup_manager
        • simvx.core.ui.scroll
        • simvx.core.ui.file_dialog
        • simvx.core.ui.ansi_parser
        • simvx.core.ui.widgets
        • simvx.core.ui.completion_types
        • simvx.core.ui.multiline
        • simvx.core.ui.tooltip
        • simvx.core.ui.enums
        • simvx.core.ui.advanced
      • simvx.core.text
        • simvx.core.text.msdf
        • simvx.core.text.font
      • simvx.core.math
        • simvx.core.math.matrices
        • simvx.core.math.types
      • simvx.core.animation
        • simvx.core.animation.blend_space
        • simvx.core.animation.state_machine
        • simvx.core.animation.tween
        • simvx.core.animation.player
        • simvx.core.animation.sprite
        • simvx.core.animation.skeletal
        • simvx.core.animation.track
      • simvx.core.graphics
        • simvx.core.graphics.material
        • simvx.core.graphics.shader
        • simvx.core.graphics.mesh
      • simvx.core.nodes_2d
        • simvx.core.nodes_2d.path
        • simvx.core.nodes_2d.text
        • simvx.core.nodes_2d.remote_transform
        • simvx.core.nodes_2d.ninepatch
        • simvx.core.nodes_2d.node2d
        • simvx.core.nodes_2d.shapes
        • simvx.core.nodes_2d.ysort
        • simvx.core.nodes_2d.canvas
        • simvx.core.nodes_2d.marker
        • simvx.core.nodes_2d.camera
        • simvx.core.nodes_2d.trail
      • simvx.core.testing
        • simvx.core.testing.scene_runner
        • simvx.core.testing.input_sim
        • simvx.core.testing.recorder
        • simvx.core.testing.diagnostics
      • simvx.core.helpers
      • simvx.core.audio_bus
      • simvx.core.decal
      • simvx.core.selection
      • simvx.core.ui_input
      • simvx.core.engine
      • simvx.core.file_state
      • simvx.core.scene_tree
      • simvx.core.csg
      • simvx.core.scene_codegen
      • simvx.core.audio_backend
      • simvx.core.particles
      • simvx.core.skeleton
      • simvx.core.scene
      • simvx.core.surface_tool
      • simvx.core.export
      • simvx.core.gizmo
      • simvx.core.navigation3d
      • simvx.core.noise
      • simvx.core.gpu_particles
      • simvx.core.reflection_probe
      • simvx.core.collision
      • simvx.core.tilemap
      • simvx.core.physics_nodes
      • simvx.core.clipboard
      • simvx.core.resource
      • simvx.core.atlas
      • simvx.core.particle_trail
      • simvx.core.gesture
      • simvx.core.document
      • simvx.core.hot_reload
      • simvx.core.script_embed
      • simvx.core.scripted_demo
      • simvx.core.descriptors
      • simvx.core.script
      • simvx.core.light2d
      • simvx.core.project
      • simvx.core.events
      • simvx.core.shapecast
      • simvx.core.process_node
      • simvx.core.math_types
      • simvx.core.audio
      • simvx.core.easing
      • simvx.core.world_environment
      • simvx.core.fog_volume
      • simvx.core.undo
      • simvx.core.clustered_lighting
      • simvx.core.navigation
      • simvx.core.render_queue
      • simvx.core.shortcuts
      • simvx.core.mesh_lod
      • simvx.core.config
      • simvx.core.node
      • simvx.core.skeleton2d
      • simvx.core.resource_loader
      • simvx.core.i18n
      • simvx.core.mesh_instance_2d
      • simvx.core.viewport
    • simvx.graphics
      • simvx.graphics.streaming
        • simvx.graphics.streaming.server
        • simvx.graphics.streaming.draw_serializer
        • simvx.graphics.streaming.scene3d_serializer
      • simvx.graphics.assets
        • simvx.graphics.assets.scene_import
        • simvx.graphics.assets.cubemap_loader
        • simvx.graphics.assets.mesh_loader
        • simvx.graphics.assets.image_loader
      • simvx.graphics.platform
      • simvx.graphics.picking
        • simvx.graphics.picking.pick_pass
        • simvx.graphics.picking.raycast_utils
        • simvx.graphics.picking.raycast
      • simvx.graphics.renderer
        • simvx.graphics.renderer.render_graph
        • simvx.graphics.renderer.render_pass
        • simvx.graphics.renderer.tilemap_pass
        • simvx.graphics.renderer.shadow_renderer
        • simvx.graphics.renderer.overlay_renderer
        • simvx.graphics.renderer.custom_post_process
        • simvx.graphics.renderer.outline_pass
        • simvx.graphics.renderer.gpu_batch
        • simvx.graphics.renderer.gizmo_pass
        • simvx.graphics.renderer.particle_compute
        • simvx.graphics.renderer.scene_renderer
        • simvx.graphics.renderer.grid_pass
        • simvx.graphics.renderer.draw2d_pass
        • simvx.graphics.renderer.colour_grading
        • simvx.graphics.renderer.light2d_pass
        • simvx.graphics.renderer.passes
        • simvx.graphics.renderer.viewport_manager
        • simvx.graphics.renderer.particle_pass
        • simvx.graphics.renderer.mesh_registry
        • simvx.graphics.renderer.environment_sync
        • simvx.graphics.renderer.shadow_pass
        • simvx.graphics.renderer.light_cull_pass
        • simvx.graphics.renderer.text_pass
        • simvx.graphics.renderer.skybox_pass
        • simvx.graphics.renderer.point_shadow_pass
        • simvx.graphics.renderer.forward
        • simvx.graphics.renderer.bloom_pass
        • simvx.graphics.renderer.render_target
        • simvx.graphics.renderer.render_context
        • simvx.graphics.renderer.ibl_pass
        • simvx.graphics.renderer.transparency
        • simvx.graphics.renderer.post_process
        • simvx.graphics.renderer.ssao_pass
        • simvx.graphics.renderer.resource_registry
        • simvx.graphics.renderer.web3d
        • simvx.graphics.renderer.fog_pass
        • simvx.graphics.renderer.pass_helpers
      • simvx.graphics.gpu
        • simvx.graphics.gpu.swapchain
        • simvx.graphics.gpu.sync
        • simvx.graphics.gpu.descriptors
        • simvx.graphics.gpu.commands
        • simvx.graphics.gpu.pipeline
        • simvx.graphics.gpu.context
        • simvx.graphics.gpu.memory
        • simvx.graphics.gpu.device
        • simvx.graphics.gpu.instance
      • simvx.graphics.ui
        • simvx.graphics.ui.ui_pass
      • simvx.graphics.materials
        • simvx.graphics.materials.custom_shader
        • simvx.graphics.materials.texture
        • simvx.graphics.materials.material
        • simvx.graphics.materials.shader_compiler
      • simvx.graphics.web_export
        • simvx.graphics.web_export.__main__
      • simvx.graphics.scene
        • simvx.graphics.scene.frustum
        • simvx.graphics.scene.transforms
        • simvx.graphics.scene.camera
        • simvx.graphics.scene.draw_batch
      • simvx.graphics.draw2d_vertex
      • simvx.graphics.engine
      • simvx.graphics.input_adapter
      • simvx.graphics.draw2d_texture
      • simvx.graphics.web_app3d
      • simvx.graphics.app
      • simvx.graphics.debug_draw
      • simvx.graphics.testing
      • simvx.graphics.draw2d_text
      • simvx.graphics.draw2d
      • simvx.graphics.text_utils
      • simvx.graphics.text_renderer
      • simvx.graphics.web_app
      • simvx.graphics.draw2d_transform
      • simvx.graphics.draw2d_batch
      • simvx.graphics.scene_adapter
      • simvx.graphics.playtest_patterns
      • simvx.graphics.playtest
    • simvx.editor
      • simvx.editor.panels
        • simvx.editor.panels.inspector_script
        • simvx.editor.panels.viewport3d
        • simvx.editor.panels.status_bar
        • simvx.editor.panels.scene_tree
        • simvx.editor.panels.animation
        • simvx.editor.panels.filesystem
        • simvx.editor.panels.file_browser
        • simvx.editor.panels.inspector
        • simvx.editor.panels.export_panel
        • simvx.editor.panels.animation_editor
        • simvx.editor.panels.inspector_sections
        • simvx.editor.panels.shader_editor
        • simvx.editor.panels.console
        • simvx.editor.panels.signal_editor
        • simvx.editor.panels.material_editor
        • simvx.editor.panels.property_widgets
        • simvx.editor.panels.project_settings
        • simvx.editor.panels.curve_editor
        • simvx.editor.panels.viewport_math
        • simvx.editor.panels.viewport2d
        • simvx.editor.panels.input_map_editor
        • simvx.editor.panels.tilemap_editor
        • simvx.editor.panels.audio_bus_editor
        • simvx.editor.panels.section_widgets
      • simvx.editor.play_mode
      • simvx.editor.default_scenes
      • simvx.editor.workspace_tabs
      • simvx.editor.templates
      • simvx.editor.node_ops
      • simvx.editor.plugin
      • simvx.editor.welcome
      • simvx.editor.preferences
      • simvx.editor.app
      • simvx.editor.menus
      • simvx.editor.project_registry
      • simvx.editor.demo_steps
      • simvx.editor.scene_file_ops
      • simvx.editor.preferences_dialog
      • simvx.editor.project
      • simvx.editor.web_export
      • simvx.editor.script_ops
      • simvx.editor.theme
      • simvx.editor.command_palette
      • simvx.editor.state
      • simvx.editor.ide_bridge
      • simvx.editor.main
      • simvx.editor.gizmo_controller
    • simvx.ide
      • simvx.ide.widgets
        • simvx.ide.widgets.status_bar
        • simvx.ide.widgets.autocomplete
        • simvx.ide.widgets.goto_line
        • simvx.ide.widgets.minimap
        • simvx.ide.widgets.confirm_dialog
        • simvx.ide.widgets.command_palette
      • simvx.ide.panels
        • simvx.ide.panels.terminal_panel
        • simvx.ide.panels.symbol_outline
        • simvx.ide.panels.settings_panel
        • simvx.ide.panels.output_panel
        • simvx.ide.panels.file_browser
        • simvx.ide.panels.debug_panel
        • simvx.ide.panels.problems_panel
        • simvx.ide.panels.search_panel
        • simvx.ide.panels.scroll_mixin
      • simvx.ide.dap
        • simvx.ide.dap.manager
        • simvx.ide.dap.client
      • simvx.ide.lint
        • simvx.ide.lint.runner
      • simvx.ide.lsp
        • simvx.ide.lsp.protocol
        • simvx.ide.lsp.client
      • simvx.ide.debug_controller
      • simvx.ide.app
      • simvx.ide.lsp_controller
      • simvx.ide.state
      • simvx.ide.embedded
      • simvx.ide.keybindings
      • simvx.ide.config
      • simvx.ide.edit_controller
      • simvx.ide.playtest
      • simvx.ide.file_controller
Back to top
View this page

Examples Gallery¶

All examples live in packages/graphics/examples/. Run any example with:

uv run python packages/graphics/examples/<filename>.py

Getting Started¶

Example

Description

Demo

Platforms

start_triangle.py

Minimal 2D triangle via draw() override.

Play

Web, Vulkan

start_bouncing_ball.py

Colourful balls bouncing off screen edges.

Play

Web, Vulkan

start_rotating_cube.py

Simple 3D rotating cube using the node system.

Play

Web, Vulkan

2D Games¶

Example

Description

Demo

Platforms

game_pong.py

Two-player Pong with paddles, ball, and score.

Play

Web (No audio), Vulkan

game_platformer.py

CharacterBody2D with gravity, jump, and platforms.

Play

Web, Vulkan

game_asteroids2d.py

Classic arcade game with wrap-around physics.

Play

Web, Vulkan

game_spaceinvaders2d.py

Rows of enemies, bullets, and wave progression.

Play

Web, Vulkan

game_tictactoe/game.py

Classic two-player game built with UI widgets.

Play

Web, Vulkan

games/dungeon_explorer/main.py

Top-down dungeon crawler with procedural generation, loot, skill trees, and boss fights.

Play

Web

3D Games¶

Example

Description

Demo

Platforms

game_asteroids3d.py

Top-down arcade game with 3D objects.

Play

Web, Vulkan

game_spaceinvaders3d.py

Classic arcade game with 3D meshes.

Play

Web, Vulkan

game_physics_sandbox.py

Visual demo of the SimVX physics engine.

Play

Web, Vulkan

game_pad_grid.py

Pad instrument with recording, loop, and training modes.

—

game_planet_explorer.py

Infinite procedural flyover with terrain, day/night cycle, and weather.

Play

Web, Vulkan

game_tictactoe3d/game.py

3D board with animated X and O pieces.

—

game_deep_sea_aquarium/main.py

Bioluminescent underwater world with boids, music, and bloom.

—

2D Features¶

Example

Description

Demo

Platforms

2d_sprite.py

PNG textures as 2D quads via draw_texture().

—

2d_tilemap.py

GPU-rendered tilemap with multi-layer and camera panning.

—

2d_light.py

Coloured point lights with shadow-casting occluders.

—

2d_navigation.py

A* pathfinding – click-to-move character on a grid.

—

2d_ninepatch.py

9-slice sprite scaling via draw_texture_region().

—

2d_joints.py

2D physics joints (pendulum chain).

—

2d_path_follow.py

Path following with Curve2D and PathFollow2D.

—

2d_trail.py

Trail rendering behind moving objects.

—

3D Features¶

Example

Description

Demo

Platforms

3d_lighting.py

Directional, point, and spot lights.

—

3d_shadows.py

Cascade shadow maps with debug visualisation.

—

3d_point_shadows.py

Point and spot light shadow maps.

—

3d_ssao.py

Screen-space ambient occlusion.

—

3d_fog.py

Fog and colour grading via WorldEnvironment.

—

3d_ibl.py

Image-based lighting with metallic spheres.

—

3d_particles.py

CPU + GPU particle effects with sub-emitters, collision, trails.

—

3d_model_viewer.py

Load glTF models with PBR textures and orbit camera.

—

3d_animation_blend.py

BlendSpace1D, crossfade, and keyframe events.

—

3d_motion_blur.py

Camera-based motion blur.

—

3d_multimesh.py

1600 instanced cubes via MultiMeshInstance3D.

—

3d_noise.py

Perlin, Simplex, Value, and Cellular noise side by side.

—

3d_picking.py

Mouse picking – click cubes to change colour.

—

3d_picking_grid.py

4x4 grid picking – click to toggle green/red.

—

3d_raycast.py

Ray grid with animated cubes and single/multi-hit toggle.

—

3d_render_layers.py

Object visibility via render layer bitmasks.

—

3d_textured_cubes.py

Checkerboard textures on cubes.

—

3d_static_body_rendering.py

MeshInstance3D inside different physics body types.

—

3d_track_rendering.py

Track rendering with StaticBody3D segments.

—

3d_gizmo.py

Editor gizmo interaction demo.

—

3d_text.py

Text textures on 3D geometry + MSDF overlay.

—

3d_csg.py

CSG boolean operations (union, subtract, intersect).

—

3d_joints.py

3D physics joints (pin, hinge).

—

3d_navigation.py

3D pathfinding with NavigationAgent3D.

—

3d_skeletal.py

Skeletal animation with bone deformation.

—

3d_path_follow.py

3D path following (camera rail).

—

3d_custom_shader.py

Custom ShaderMaterial with animated uniforms.

—

UI¶

Example

Description

Demo

Platforms

ui_widgets.py

Widget rendering, input, focus, and signals.

—

ui_widget_showcase.py

Comprehensive UI showcase with DemoRunner.

—

ui_text_input.py

Character input, focus routing, and scissor clipping.

—

ui_menus.py

MenuBar with PopupMenu dropdowns and z-ordering.

—

ui_tree.py

Live scene tree inspector with expand/collapse.

—

ui_theme_demo.py

StyleBox theming system.

—

ui_terminal.py

Interactive terminal emulator running bash.

—

ui_audio.py

Audio – generate and play test tones.

—

ui_i18n.py

Translated text and locale switching.

—

ui_undo.py

Undo/Redo with Ctrl+Z / Ctrl+Shift+Z.

—

ui_gestures.py

Touch gesture recognition (tap, swipe, pinch, rotate).

—

Rendering Internals¶

Example

Description

Demo

Platforms

render_raw_vulkan.py

Raw Vulkan – vertex buffers, transforms, SSBOs.

—

render_wave_grid.py

10,000-cube wave grid – instanced rendering stress test.

—

Debug¶

Example

Description

Demo

Platforms

debug_draw.py

Wireframe boxes, spheres, axes, and rays.

—

debug_overlay.py

F3 debug overlay with feature cycling.

—

debug_coord.py

Crosshair at mouse position with button hit zones.

—

debug_feature_showcase.py

Interactive engine feature showcase.

—

debug_ide_layout.py

IDE panel layout and docking.

—

debug_3d_basic.py

Basic 3D rendering from multiple camera angles.

—

debug_text_quality.py

MSDF vs FreeType bitmap text rendering comparison.

—

Next
Triangle
Previous
Your First 3D Game
Copyright © 2026, SimVX Contributors
Made with Sphinx and @pradyunsg's Furo
On this page
  • Examples Gallery
    • Getting Started
    • 2D Games
    • 3D Games
    • 2D Features
    • 3D Features
    • UI
    • Rendering Internals
    • Debug