Skip to main content
Glasswarp’s eyes are designed for fast agent loops: fresh, native-resolution frames with the option to fetch only what changed.

Screenshot

A high-fidelity, native-resolution JPEG from the host capture buffer — typically tens of milliseconds for capture + CPU JPEG encode — and it works with or without an active WebRTC Live View stream. Agent screenshots use the API capture path (DXGI Desktop Duplication by default, GDI BitBlt fallback); they are not re-encoded remote WebRTC frames and are not NVENC/GPU JPEG.

Observe — one round trip

observe returns everything an agent step needs in a single RTT: a JPEG, dirty regions when available, grounding targets (Set-of-Mark annotated when mark=True), changed, and capture_mode (dxgi | gdi_fallback | unknown; legacy hosts may report gdi).
Use observe as the default “look” in your loop — it’s the leanest way to get frame + change + grounding together.

Dirty rects

When capture is DXGI, poll only the regions that changed since your last call:
Skip a model call only when dirty is available and empty. If dirty is missing (null / available: false), assume changed. When dirty is available, crop screenshots to the changed region for cheaper loops — see Build an agent loop.
Capture is the primary display only today (first DXGI output / primary GDI screen). Multi-monitor selection is not yet exposed.
Continue to Grounding.