Talos docs

GET /frame.png

Since 0.6

The cached frame, or ?fresh=1 for one rendered now.

Plain text

Not in the SPEC table; kept from phase 0. The cached image is stale by design: the app reads it back every 30 rendered frames and encodes it off the simulation loop, so it is up to half a second behind at 60 Hz and does not move at all while the world is paused. That is the trade the endpoint exists for — an agent watching a world wants a picture cheaply and often. Which is why x-argus-frame here is the frame the image was drawn at and not the frame the server is on. A reader comparing the picture with an entity position it just fetched has to be able to see that the two are different moments; before this header it could not, and a tester spent a long time chasing a car that was not where its own screenshot showed it. ?fresh=1 renders on demand through the same path as POST /capture, so it costs a round trip to the simulation, holds an exact-job slot, and comes back stamped with the frame it actually drew.

Request

Query parameters

ParameterShapeMeaning
fresh1, true, yesrender one now instead of serving the cached image

Example

curl "http://127.0.0.1:7700/frame.png"

Start a server with argus run --serve; the port is --port (7700 by default). The request and response fields are in the query API guide.