Colourful sticky notes filling the canvas, with a HUD reading 233 of 100000 visible at 100 percent zoom

Systems & graphics engineeringPart 1 of 2Drawing 25.1 of 37

The engine

Drawing a frame only costs as much as what's on screen. This part covers the culling, the instanced draws, skipping the webview, and the three limits that are still there.

Sheet 02 of 04/Rule

Only drawing what's on screen

You can see the rule working on a synthetic 100,000-item board. At 100 percent zoom, only 233 of the items get drawn, in 33 draw calls.

The same 100,000 item board zoomed far out into a dense confetti field, HUD reading 87687 of 100000 visible
PL 04The same board zoomed out to 4 percent, where culling has nothing left to remove. There are 87,687 items on screen, and drawing them uses up the frame budget.

Sheet 03 of 04/Native

No webview, the first thing I decided

There's no webview anywhere in it. It uses wgpu to talk to the GPU directly on both macOS and Windows.

Nested application menus open over a board covered in red handwritten annotations and figures
PL 07The renderer draws the menus itself, without an off-the-shelf bridge. The board behind them has imported pen strokes that Miro's API won't export.
A selected red wavy pen stroke with a context menu open beside it, above two yellow sticky notes reading right-click me and not me
PL 15Right-clicking a pen stroke opens its menu, with the keyboard shortcut for each action on the right.
The shape catalogue board with one shape selected and a Shape properties panel open down the right side
PL 16The properties panel shows the selected shape's fill, border, line style, opacity, position and size.

Sheet 04 of 04/Limits

What it still does badly, and why I write it down

If you zoom that same 100,000-item board out to 4 percent, 87,687 of the items are on screen. At that point the frame costs as much as the whole board, and there's nothing left to cull.