Pipeline to the Past
How Ars Astronomica came to be
From a Throwaway Question to a Translation Pipeline in 5 Days
This started as an offhand question.
I was chatting with Claude about some obscure Hebrew books related to my interest in the history of astronomy and cosmology. One of them contained a firsthand account of encounters with Tycho Brahe and Johannes Kepler.
I started by asking what Claude knew about the book from reviews, catalogs, and other online references. The information was sparse. Then I thought: why not go to the source?
Knowing that Vox Day had used AI extensively for translation work, I asked Claude what it could do with a scanned PDF.
The answer seemed almost too good to be true.
So I tested it.
“Here’s a 250-page PDF. Translate it.”
That didn’t happen.
Claude explained that the PDF would need to be broken into smaller batches. I would have to upload each section separately, start a new chat for each batch, run a translation prompt, and then manually stitch everything together afterward. It even suggested shell commands to help.
That also didn’t happen.
Instead, over the next five days, I used Claude Web and Claude Code to build the functional scaffolding that eventually became my translation pipeline. As an experiment, I kept it completely code-free at first. I wanted to see how far I could get simply by describing what I wanted.
The answer turned out to be: surprisingly far.
My original goal was modest. I wanted to translate one or two works so I could learn what they said about subjects that interested me.
Mission accomplished.
Then I had another thought.
Instead of reading about Tycho Brahe, why not read Tycho Brahe himself?
That was the point at which the project escaped its original boundaries.
I started adding more books. Hebrew books became Hebrew and Latin books. My Claude subscription went from Pro to Max 5x.
Translating scanned PDFs is a token-intensive process. There were practical constraints. I needed a “load-bearing pause” between batches to avoid pegging the token limit in the sliding five hour window.
I don’t want to reveal every detail of the workflow, but nothing I have done is beyond the reach of a determined individual. The challenges are mostly engineering problems rather than research problems. Maintaining consistency across independently translated batches is one example. Another is formulating different processing strategies when handling prose, diagrams, illustrations, tabular data, and poor source quality.
One thing Claude does particularly well is critique its own process.
Repeatedly, I would ask it a simple question: “What could you do better next time?”
Repeatedly, it would answer.
The translation prompts evolved. The formatting evolved. The workflow evolved. Over time, the suggestions became smaller and smaller until there were no longer any improvements worth implementing.
Once the basic workflow was established, I focused on four goals:
Reducing token consumption.
Increasing unattended operation.
Improving the English register and style.
Cleaning and polishing the final output.
Today, with Claude Max 20x, I can comfortably sustain roughly four books in parallel without pacing myself around the five-hour limit. I still run into the weekly limit if I push hard enough, but that is a different problem.
The result was unexpected.
What began as a hobby became a small publishing operation.
The name came later, during a brainstorming session with various AI systems.
Ars Astronomica.
A month earlier, I wanted to read a handful of obscure books.
Now I am publishing them.
The translations are at Ars Astronomica.
The pipeline is documented at github.com/sweisman/translation-pipeline.



I'm thinking of doing this for Greek, too. Opus 4.5/4.6 did a bang up job of translating Job and Esther from the original Greek, actually more readable than any existing translation I've read.
For whatever reason, Claude refused to do it, but API calls were more than able to handle it.
This is interesting, but would like if someone that reads those languages could chime in. My recent experience, a few weeks ago, with some of the LLMs was not the best when it came to translating technical texts from one modern language to the other and had to redo the document partially. But I admit I have to practice with orchestration (having one agent verifying the output of other agents and so on).