Chapter 1: Rewind
4:12 AM. The chair creaks when I shift my weight. My lower back has gone stiff in the same place it goes stiff every night, and my left wrist is cold where it rests against the edge of the desk. I leave it there. The apartment runs cold in early November and I haven’t turned the heat on yet. It’s just Wednesday.
The room is one room. Desk along the wall under the window, dual monitor, headphones hanging off the chair arm by the cable. Takeout containers stacked at the bottom of the door, two of them, the lids fitted onto the wrong containers because I stack them tired. The bathroom door is open a crack across the room. The light is off in there. From the desk I can see the corner of the sink and a slice of the mirror above it; the rest of the bathroom is dark.
Faint copper, faint ozone. The air-purifier filter is overdue. It has been overdue for about three weeks and I keep meaning to order the replacement.
The second monitor has the rig file open in the Live2D editor — blue-grey backdrop, avatar in the middle of the pane with her mouth slightly parted in the idle pose she defaults to between expressions. Reaper open in the dock. OBS replay buffer running in the corner. The arrangement of these tools is two years old. I know where each one lives the way you know where the spoons live in your own kitchen.
I roll my neck. The chair creaks again. My gaze swings across the room and catches the sliver of the bathroom mirror through the cracked door — my own face in it, low light, the angle slight. The face matches. I roll the other direction and find the column of the doorframe and the takeout containers stacked on top of each other.
Two years of streams. 800 concurrent at peak, this VOD up by noon, rent next week. The math of it sits in the back of my head like a metronome I stopped hearing a long time ago. The work is mine. I am not going to stop.
The coffee in the mug to my left has gone cold. I drink it anyway. The taste is bad in the way cold drip-coffee with old milk gets bad and I drink it anyway because there is work between me and bed and the kettle is in the kitchen and the kitchen is across the room. Another hour. I can do another hour.
The cursor is blinking on the scrub-bar at a specific frame. I have my hand on the trackpad and I have not pressed advance. In the magnified viewer pane the blue-grey backdrop of the rig fills the frame, the avatar still in idle, mouth slightly parted. Frame loaded. Not yet examined.
I press advance. The scrub-bar ticks forward one frame. I am looking for a banner-compression artifact I flagged earlier in this session — a routine quality pass on the lower third of the viewport, where my overlay graphics sometimes leave halo. Standard.
There is a red streak in the corner of the rig’s blue-grey backdrop. Not on the avatar. In the background channel, behind her left shoulder. Small. Vertical. The kind of vertical line that compression noise sometimes throws when a codec hiccups on a low-information color field. I flag it mentally and keep moving.
Standard move. I isolate the red channel — drop blue, drop green, run it solo in the inspector. This is the kind of thing I do thirty times a session. The viewer pane fills with the red-channel data, the rig’s backdrop now rendered as a grey-on-grey topography of where red light sits in the frame.
In the isolated red channel, the streak is figure-shaped. Vertical. There is a darker mass at the top that reads as hair-mass. There is an angle below it that reads as a jaw-line. There is a dimmer region where eyes would sit. The proportions are proportional. It is not the shape compression makes.
My hand is still on the trackpad. The thumb is still pressed. There is a small muscle at the corner of my jaw that has locked. My breath is not moving and I did not decide to hold it.
I rewind. Two seconds back. I want to see whether the streak emerged at this frame or whether it was already present in the preceding ones — a standard intra-shot reverse-check.
On the rewind, the streak is in a different corner.
It is in the lower right of the backdrop now. Two seconds ago it was in the upper left.
I rewind further. The streak is somewhere else again.
The cold registers across the back of my neck in a specific patch about the width of two fingers. I do not adjust to it. My hand is still on the trackpad.
I scrub forward and step through the recording the right way, frame by frame, in the direction of the file. The figure is in the same position again, where it was when I first paused. I step forward one frame. The figure remains in place. I step forward another frame. The figure remains in place. I step forward another frame. The figure remains in place, but the hair-mass — the dark mass at the top of the figure — is animating two frames behind the outline. Not motion-blur. Two discrete frames of delay. The hair is moving in response to weather that is not in the air of the recording.
I check the toolset. Color scopes clean. The codec is stable on three other VODs I spot-check in adjacent files. The render queue is empty. The driver is current. Nothing on my side of the workflow accounts for any of this.
I open the metadata pane on the file. I think about cross-referencing an earlier section of the same stream, comparing this frame to a frame from an hour before it. The thought forms half-articulated. My cursor moves and I find it has not gone to the file’s own metadata. It has gone to the archive panel at the side of the editor. The panel loads. A count appears at the top of it.
247 archived VODs.
I scroll the archive list to the top. Most recent first. Last night’s VOD. I open it. The streak is there. Different position in the backdrop. Same hair-mass at the top, same jaw-angle, same dimmer region where eyes would sit. I close the window.
Last week’s VOD. I open it. The streak is there. Different corner of the backdrop. Same proportions.
Two weeks ago. Open. There.
The clicks are getting faster. I do not slow them down.
Three weeks back I check a longer recording — a Saturday stream from late October, the one where my OBS encoder dropped a packet and the stream caption-stuttered for thirty seconds. I open the post-stream VOD I edited from that recording. I scrub to a clean section and isolate the red channel.
The hair-mass delay is there. The jaw-angle is there. The dimmer region for eyes is there.
The streak has not just been in this week’s recordings. It is not emergent.
There is pressure behind my eyes. I lift the coffee mug that is no longer full and the empty ceramic comes up against my front teeth and the sound is louder than it should be in the quiet of the room. I set it back down.
I skip down the archive. One month back. The streak is there. Three months back. The streak is there. Six months back, the streak is there — different rig version, the older backdrop I retired in May, same proportional figure, same hair-mass shifted to a different corner. A year back. There. Fourteen months. There. The clicks are too fast for me to know what I am clicking. I make myself slow down.
I scroll to the bottom of the archive list. The first VOD I ever uploaded. Two years ago. The thumbnail loads in the panel — younger rig version, the backdrop I used for the first six months before I commissioned the better one. My hand is on the trackpad. I hover over the file.
I open it.
The streak is there. Different corner again. Same hair-mass at top. Same jaw-angle. Same dimmer region for eyes. My first stream — the one I launched the channel with, the one that has 3,200 views and was watched by maybe forty people live — was already compromised. The first frame I ever published already had her in it.
The laptop fan is running. It has been running for some time. I had not heard it.
Two years of streams. 247 of them. I have been editing them for two years and I know the number the way I know my own birthday. The number is not 247 files anymore. The number is 247 occurrences.
Outside the window the sky is the colour grey gets before it commits to blue. I have been at the desk through the night. I do not move. The first VOD is still loaded on the screen. The figure in the red channel is there. The question is how long.