Rendering like Butter - a Confluence Whiteboards Story
Aug 8, 2023Abhi Kishore

Summary
This post details the engineering challenges in building Confluence whiteboards, focusing on a homegrown rendering engine called Canvas. It covers achieving scale (5K elements, 50 collaborators) and performance (≥ 60 FPS) through a uni-directional, multi-phase rendering engine executed over a persistent game loop. Key components include a centralized input capture system, a performance-optimized Finite State Machine (FSM) for interaction management, and an Entity Component System (ECS) for state updates. The rendering phase utilizes WebGL for fast rendering and visibility culling with virtual tiling.