# Triangle Minimal custom-draw example. ```{raw} html ▶ Run in browser ``` **Tags:** `getting_started` The smallest possible SimVX scene. Subclass `Node2D`, override `on_draw()`, issue immediate-mode polygon and text commands against the renderer. ## How it works `Triangle` extends `Node2D` and overrides `on_draw(renderer)`. Each frame the renderer calls `on_draw()` and the node issues draw commands: 1. `renderer.draw_polygon()` takes a list of `(x, y)` vertices and a colour tuple. 2. `renderer.draw_text()` renders a string at a screen position with optional scale. `App` creates a Vulkan-backed window and runs the scene tree. ## Source ```{literalinclude} ../../examples/features/getting_started/triangle.py :language: python :linenos: ```