Chapter 3: The First Query
Arjun’s finger hovered over the enter key like it might bite him.
The cursor on the screen kept blinking—slow, patient, exactly once every √2 seconds. It wasn’t a glitch. It was waiting. The same way the whole signal had been waiting for him to notice it in the first place.
He let his hand drop. The chair creaked as he leaned back, rubbing the bridge of his nose. The observatory felt smaller than it had an hour ago. The red safety lights cast long shadows across the concrete floor, and outside the narrow slit windows the desert night pressed in, black and absolute. No wind tonight. Just the low, steady hum of the cooling fans and the faint tick of his own pulse in his ears.
“This is insane,” he whispered.
But he didn’t shut the program down.
Instead he opened the Python script again, the same one he’d been using to demodulate the phase. His fingers moved on muscle memory—add a new function, route a tiny slice of the output back into the input buffer. Nothing fancy. Just a short burst: a sequence of prime-numbered delays injected at the exact carrier frequency. 2 seconds. 3 seconds. 5 seconds. Then silence. Then 7.
He told himself it was just an experiment. A hello in the only language the thing seemed to speak.
He hit run.
The fans didn’t change pitch. The monitors didn’t flicker. But three pulses later the waterfall plot shifted.
New blocks started arriving—cleaner, denser. Not harmonics this time. Structured records. Each one began with a short header in the same three-byte triplet format he’d seen earlier, followed by what looked like timestamped entries. The first few were tiny. A single number. Then a short string of coordinates that resolved into nothing he recognized. Then longer ones.
He copied the latest block, unwrapped it, and let the differential decoder do its work.
The text that appeared wasn’t code anymore.
It was memory.
Observer Node 7842109381 — Entry 0001
Timestamp (local): 03:58:12 IST
Event: Smell of cardamom and ginger rising from a steel tumbler. Grandmother’s kitchen in Jamshedpur, age seven. The radio playing old Hindi film songs low in the background. She called him “beta” and told him the stars were just numbers waiting to be counted. He believed her.
Arjun stared.
That exact moment. The chipped blue mug. The way the steam curled. The way his grandmother’s bangles clinked when she stirred the chai. He hadn’t thought about that afternoon in years. But the signal had pulled it out of him like it had been filed away all this time.
Ensure your favorite authors get the support they deserve. Read this novel on Royal Road.
He felt cold suddenly, despite the warm air.
Another entry arrived right behind it.
Observer Node 7842109381 — Entry 0002
Timestamp (local): 04:01:47 IST
Event: First night inside this same observatory dome. Age nineteen. Father had pulled strings for a visit. Arjun had stood under the telescope tube and felt something vast looking back at him. He had whispered, “Are you there?” to the dark.
He hadn’t told anyone that. Not his advisor. Not his mother. Not even the diary he’d stopped keeping after first semester.
The cursor on the screen blinked once. Twice. Waiting again.
Arjun’s mouth was dry. He reached for the cold chai anyway and took a mechanical sip. The sweetness tasted wrong now.
He typed into the log with shaking fingers:
The archive isn’t receiving a message.
It’s writing one.
In real time.
Using me.
He deleted the last three words. Then typed them again. Couldn’t bring himself to erase them a second time.
He tried to think like a scientist. Correlation, not causation. Maybe the signal was pulling data from local networks, scraping old photos, cached browser history, something. But he knew better. He’d wiped his personal folders before every shift. The university firewall was strict. And none of those memories had ever been written down.
The cursor blinked.
He decided to push one more time.
He modified the injection script again—added a simple prime sequence as a question mark: 11, 13, 17, 19. Then he routed it through the same feedback loop.
The response came almost immediately.
New block. Header clean and sharp.
Observer Node 7842109381 — Entry 0003
Timestamp (local): 04:06:23 IST (projected)
Event: Arjun Rao will stand up from the chair, walk three steps to the main console, and type the exact sequence 2-3-5-7 into the command line to attempt a manual shutdown of the downlink.
Arjun read the line twice.
His eyes flicked to the clock in the corner of the screen.
04:06:19.
Four seconds from now.
He sat very still. Heart hammering against his ribs.
The cursor blinked once.
Two seconds.
Three.
He stood up.
The chair rolled back with a soft squeak. Three steps—exactly three—took him to the main console. His fingers hovered over the keyboard. The command line was already open.
He typed: 2 3 5 7
And the moment his finger hit enter, the entire waterfall plot flared bright gold across every frequency bin.
The new entry finished writing itself on the screen right in front of him.
Observer Node 7842109381 — Entry 0003
Status: Recorded.
The archive hadn’t just predicted what he would do.
It had already written it down before he did it.
Arjun’s hand stayed frozen on the keyboard. The red lights of the dome suddenly felt too bright, too close. The desert outside the windows was no longer just empty night.
It was listening.
And somewhere in the data stream, the next entry was already waiting for whatever he chose to do next.

