The canvas

Everything in Brainstorm lives on a single infinite surface.

The infinite millimeter-paper grid with a few items placed on it, zoomed out
An infinite millimeter-paper grid that stays crisp at every zoom.

Pan and zoom

  • Pan by left-dragging an empty part of the board.
  • Zoom to the cursor with the mouse wheel. Scale is clamped to a sensible range so you never lose the board.
  • Touch: one finger pans, and a two-finger pinch zooms around the fingers’ midpoint (tracked Google-Maps-style as it moves). Fingers can come and go mid-gesture — lifting one hands off to a pan without a jump.

A faint millimeter-paper grid (1 mm hairlines with bolder 1 cm lines) is drawn in screen space and culled to the viewport, so lines stay crisp at every zoom level.

The right-click menu

Right-click an empty spot to open the context menu. Whatever you create spawns at the point you clicked:

Click elsewhere or press Esc to dismiss the menu.

Notes and text

Two lightweight ways to put words on the board without an LLM or a bubble thread:

  • Note (post-it) — a standalone, slightly-yellow text bubble. Type into it, double-click to re-edit, drag to move, use the corner grip to resize, and × to close. It reuses the chat bubble’s look but is just text — no linked output bubble and no branching.
  • Text — plain text written straight onto the board, with no bubble or background. It spawns ready to type; while editing, a small floating toolbar offers a color picker, font family, font size, and bold / italic. Idle, grab the text to drag it, use the bottom-right grip to resize (width reflows the text), double-click to edit again, and hover for the × to remove. An empty box is discarded when you click away.

Both pan and zoom with the canvas and persist with the board like everything else.

Moving things around

Bubbles, code cells, and images are independently draggable. The Bézier connectors between them reshape live as you drag, type, or resize.