---
id: camera-zoom
name: Camera.zoom
category: camera
kind: namespace-method
tokens: Camera.zoom
sig: Camera.zoom(scale)
tip: Scale the whole view about the screen centre by a Q16.16 factor (1.0 = none).
order: 4
ns: Camera
member: zoom
---
Sets a render-time zoom: every draw is scaled about the screen centre by scale, a Q16.16 fixed factor. 1.0 is no zoom (and turns the zoom path back off, restoring the byte-identical un-zoomed blit); 2.0 is 2x in; 0.5 is 2x out. It composes with Camera.set / Camera.follow (which move the view) and Camera.shake.
Zoom is a *render-time transform*, not a change to the world coordinate types — those stay integer pixels + Q16.16 velocity so lockstep, replay and world_save hold (see the position-types RFC, #78). Because it rides on fixed-point, the zoom is itself deterministic: the same scale produces the same pixels on every machine and headless.
Parameters:
- `scale` — the zoom factor (`fixed`); `1.0` = no zoom, `>1` zooms in, `<1` zooms out
```ludic
program Demo {
property Cam { z: fixed = 1.0 }
model View { Cam }
handler DrawWorld phase Render {
Camera.zoom(2.0)
Screen.fill_rectangle(150, 110, 20, 20, 0xffcc00)
Screen.show()
}
}
```