flowchart TD Start("Program Starts"):::startNode Setup["setup() runs once"]:::setupNode Draw["draw() runs"]:::drawNode Wait["Wait for next frame"]:::waitNode FrameCount["frameCount++"]:::processNode Start --> Setup Setup --> Draw Draw --> Wait Wait -->|"~16.7ms at 60fps"| FrameCount FrameCount --> Draw classDef startNode fill:#667eea,stroke:#333,stroke-width:2px,color:#fff,font-size:16px classDef setupNode fill:#4a90d9,stroke:#333,stroke-width:2px,color:#fff,font-size:16px classDef drawNode fill:#48bb78,stroke:#333,stroke-width:3px,color:#fff,font-size:16px classDef waitNode fill:#9f7aea,stroke:#333,stroke-width:2px,color:#fff,font-size:16px classDef processNode fill:#ed8936,stroke:#333,stroke-width:2px,color:#fff,font-size:16px linkStyle default stroke:#666,stroke-width:2px,font-size:16px