| Status | connecting… |
| Camera URL | — |
| Config source | — |
| Last connected | — |
| Resolution | — |
| Relay | unknown |
| Frames pushed | — |
| Last frame age | — |
| Frame size | — |
When Vision Engine runs on a remote VPS,
it cannot reach your phone's local IP (10.x.x.x).
relay.py runs on your laptop. It fetches frames from the phone and pushes them to the VPS over HTTPS — outbound only, no firewall rules needed.
The VPS stores the latest frame. Snapshot, stream, board‑view, calibration, and move detection all use it transparently.
If the phone IP changes, update the camera URL in the dashboard and relay.py auto-picks up the new URL within 30 seconds.
| from_sq | — |
| to_sq | — |
| detected squares | — |
| chosen mapping | — |
| move result | — |
| contour count | — |
| contour areas | — |
| processing time | — |
| timestamp | — |
| Turn | — |
| Move # | — |
| Last move | — |
| Result | — |
| Check | — |