Stream — reserve space mid-stream with probeImageStream
Both panels receive the same byte stream (a photo fetched and throttled to simulate a WebSocket or AI generation feed). The left panel waits for every byte, builds a Blob, sets img.src, and only then has dimensions — space pops in at the end. The right panel pipes the same stream through probeImageStream from @somnai-dreams/preimage/core; the first chunk's worth of header bytes fires onDims, space is reserved immediately, and the final Blob renders into it when the stream drains.
Throttle
400 KB/s
Naive — fetch → Blob → img.src
Bytes received—
Dims known—
Space reserved—
Full image rendered—
Preimage — probeImageStream
Bytes received—
Dims known—
Space reserved—
Full image rendered—