Boards are optional: pens draw in the air without one. A board gives ink a surface, and a pixel
board gives a drawing that stays for players who join later.

## Whiteboards

**Udonite > Pens > Create Whiteboard** makes an ink board. A pen whose tip touches it in VR, or a
desktop or phone player looking at it within 4 m, draws flat on its face, `inkLift` in front of it
so the ink never flickers into the surface.

A board faces along its -Z axis, like a Unity quad: stand on that side. After adding or removing
a board by hand, run **Udonite > Pens > Refresh Boards** so `PenWorld` lists it; every client has to
agree on the order.

## Pixel boards

**Create Pixel Board** makes a board of `columns` by `rows` cells, up to 256 each. A pen paints the
board's colour nearest its own, the eraser paints `background`, and `pixelBrush` on either sets the
size of the square they paint.

Painting shows at once for everyone, and a player who joins later sees the picture as it is.

`palette` sets the colours, `surface` and `textureProperty` let your own shader show the pixels,
and `smoothPixels` blends between cells instead of showing hard squares.

## Clear buttons

Select a board and run **Create Clear Button**. Pressing it clears its `boards` for everyone, and
`clearAirInk` also clears ink in the air. `access` limits it to the instance owner.

From code, `PenWorld.ClearBoard(board)` and `PenWorld.ClearEverything()` do the same.

## Pixels from code

`PenWorld.Paint(board, PaintOp.Paint, colour, cells)` paints cells for everyone, as a pen would;
`board.ColourAt(cell)` reads one back. A cell is `row * columns + column`. Paint through
`PenWorld` rather than the board, so everyone gets the change.
