AI Engineer World's Fair 2025
Books reimagined: AI to create new experiences for things you know — Łukasz Gandecki, TheBrain.pro
Read the talk
Books Reimagined: building a reading experience around the page
A companion for unfamiliar characters grows into an illustrated, musical reader, with explicit voice turns, scene search, and structured metadata connecting the experience.
From a talk by Łukasz Gandecki
A book with too many unfamiliar people
Reading a book about Donald Trump’s re-election, Łukasz Gandecki kept encountering people he did not recognize. As a reader from outside the United States, he lacked some of the background the book assumed. He built a small AI companion to help him keep track of its cast.
The prototype looked terrible, but it supplied something useful: images of the people on the current page and short explanations of who they were in that page’s context. The page gave the companion a narrower job than answering arbitrary questions about the book. Within a month, this experiment had begun turning into Books Reimagined, a broader reading experience.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The Snow Queen’s shattering mirror
In the first experience, based on The Snow Queen, the sorcerer’s apprentices fly upward carrying a mirror that distorts reality. Narration and music accompany their ascent toward a distant heaven. When the mirror crashes and shatters, the distortion spreads through the surroundings. The audiovisual changes follow a particular event in the text, making the scene itself the organizing unit of the experience.
The audience cannot hear the intended narration and music in the recording’s demonstration, a limitation Gandecki acknowledges. This first experience is in Polish; he then switches to an English version of 1984 built for the conference. That moves the demonstration from an immersive scene to interactions with the book.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Let the reader control the voice turn
While reading 1984, the reader can send a voice note asking what is happening in the current scene. Venue audio again prevents Gandecki from demonstrating the audible exchange. He connects the design to familiar voice-assistant frustrations: delays, speech that starts at the wrong moment, and interruptions. He criticizes Siri and says the previous day’s Google demo was introduced as working 50% of the time, without identifying the task or evaluation conditions.
Press and hold makes the turn boundary explicit. The reader holds a control while speaking and releases it to request a response. The interface therefore gives the reader direct control over when their question is finished. Gandecki claims a response within 100 milliseconds of release; the failed audio demonstration and absence of measurement details leave that latency unverified.
The interaction also carries reading-position context across questions. After asking about one scene, the reader can scroll forward and ask for a summary of what happened between the previous question and the current position. This makes the earlier question a useful reference point for the next one. Gandecki points the audience to bookgenius.net to try the experience.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Find a remembered scene, then investigate a theme
Readers often remember what happened without remembering the words used to describe it. In 1984, someone might want the scene where Winston met O’Brien. Exact search depends on matching the text; embeddings make it possible to retrieve a passage from a description of the remembered event. The reader can jump to the result, read around it, and then return to the original reading position.
A broader question requires a different operation. Asking about the ways Party propaganda works starts a deep-research task that, as Gandecki describes it, reads the book only up to the point the reader has reached.
| Reading need | Operation | Scope |
|---|---|---|
| Find known wording | Exact search | Matching text |
| Find a remembered event | Embedding search | Relevant scene |
| Understand a recurring theme | Deep research | Book through the reader’s stopping point |
The stopping point makes the research request bounded: the system should build its answer from material the reader has already encountered, avoiding later revelations.
Gandecki says the deep-research request will take a couple of minutes, then returns to the presentation without showing its answer. He next explains how the product emerged: the initial implementation was rapidly written vanilla JavaScript, confusing internally but useful for fast iteration.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Wait for the waves of change to settle
Early in a product like this, much of the work is discovering what is worth building. Gandecki’s approach is to describe an idea to AI, generate something usable, and see where the experience disappoints. That feedback can arrive sooner than an exhaustive plan, especially when the requirements themselves are still uncertain.
Generated code also changes the emotional cost of experimentation. Throwing away code you carefully crafted can feel like abandoning an investment; Gandecki finds it much easier to discard AI-written code and try again. He describes development as waves of change: initially, the product may provoke sweeping rewrites, but their amplitude gradually decreases. Once whole-codebase changes stop happening day after day, he begins adding tests and refactoring. The transition to conventional engineering follows a more stable product direction.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Ugly code is not automatically the next priority
The worst-looking code may still be a poor refactoring target. Gandecki’s OpenAI audio-processing code was hastily written JavaScript: untyped, confusing, and tempting to clean up. But he never needed to touch it. Its appearance created less practical trouble than code that repeatedly obstructed changes elsewhere.
His prioritization heuristic combines three factors: how bad the code is, how painful it is to work with, and how easy it would be to improve. Adding those factors can make ugly, easily changed code look attractive even when it causes no pain. Multiplication makes a negligible factor suppress the priority:
The same heuristic fits directly into JavaScript:
javascript
function refactoringPriority({ badness, pain, easeOfChange }) {
return badness * pain * easeOfChange;
}
This is a decision aid, with no prescribed scoring scale. Its useful property is that zero ongoing pain produces zero priority, even when the code is bad and the cleanup is easy.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
AI drafts the experience; people finish it
Gandecki contrasts the book experience with common AI product categories: ChatGPT wrappers, image generators, and unreliable voice assistants. For Books Reimagined, the production goal is to hide the AI inside a finished experience. AI makes the initial draft of an enriched book, and people complete the work.
That human contribution is primarily judgment. Gandecki argues that generated music still needs someone to decide whether it sounds good, graphics need assessment for visual appeal, and an avatar must fit the character it represents. Combining these simple building blocks requires attention to how they feel together. The reader should encounter a coherent book experience without having to manage the generation process.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Familiar capabilities in a different reading format
Each ingredient has a familiar counterpart, but integrating it with the reader’s position changes its usefulness:
- Questions: A knowledgeable friend can explain a book, but may not be available whenever the reader needs help.
- Search: Natural-language, spoiler-free retrieval supports remembered scenes without requiring exact wording.
- Graphics: Images establish the book’s mood and help the reader recall its characters.
- Music: A soundtrack that follows the scene can shape emotion as film music does, while the reader continues through the text.
The experience comes from coordinating these capabilities around reading.
This suggests a product opportunity in small niches within familiar activities. Gandecki’s invitation is to look for experiences that were imaginable before AI but too expensive to produce at the necessary level of detail. He speculates that manually producing the graphics and music could cost hundreds of thousands of dollars per book; he supplies no itemized production budget. The economic premise is that generation makes a richly produced draft feasible, leaving people to shape its quality.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
From book text to playback metadata
The production pipeline connects literary analysis to assets and player behavior:
- Analyze scenes and detect characters. A combination of LLMs identifies the book’s scenes and the people in them.
- Set an overall musical direction. For Sherlock Holmes, Gandecki’s example is Victorian London, with noir music and a somewhat sad tone.
- Generate music from scene and mood. Scene analysis and mood detection guide music generation within that broader direction.
- Produce structured XML metadata. The analysis also becomes information the player can use alongside the text.
The markup example makes that final step concrete. The displayed passage wraps BIG BROTHER in Big-Brother tags and Winston’s name in Winston-Smith tags. Character mentions become explicit identifiers associated with the text. The player can then use the mapping to display avatars for the characters in a scene. Structured metadata connects the generated analysis to visible reading behavior.
Annotating these details throughout an entire book would take substantial human effort. Automating the mapping gives the player the information it needs without requiring a person to tag every mention manually. Gandecki closes the technical demonstration by announcing that the team is open-sourcing the player that day so others can create Netflix-style experiences for books. The recording supplies no repository or license details; the announcement extends the idea from a single reading application to a player others could build experiences for.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
Further reading
Current guidance for explicit voice turns, audio-buffer handling, response triggering, and interruption handling over WebSocket and WebRTC connections.
Read the complete timestamped transcript
- 0:00
[upbeat music] So my name is Lukasz Gandecki, and I've been programming since I was a little kid, and I want to tell you about my newest project, um, Books Reimagined.
- 0:24
So how to use AI to create new experiences for things you already know. So how it all started, uh, I was reading a book about, uh, Donald Trump re-election, and since, as you can hear, I'm not from the United States, um, uh, uh, there was a bit...
- 0:42
a few too many characters to me. I didn't follow everyone, uh, so I decided to vibe code my way through the understanding. I, uh, built a little bit of an AI companion application.
- 0:54
Looked terrible, but, uh, it gave me context for the people that were on the page with a little bit... Uh, it found the images for them and gave me a little bit of a summary in the context of the, of the page that I was at.
- 1:10
And a month later, it turned into, um,
- 1:19
it turned into something different. So this is gonna be the Snow Q- this is one of the first experiences we've built. This is The Snow Queen book, and this is the part where the sorcerer's, uh, apprentices are flying away with the mirror that distorts the reality.
- 1:35
Um, so all right. [book narrating] So it tells a story about they're flying and flying, and the heaven is so far away.
- 1:50
Uh, there's music, and it reads, but you can't hear it. I'm sorry. But then the crash happens, and, uh, the mirror shatters, and it distorts everything all around. So this is one of the first experiences we've built and, uh...
- 2:08
But it's all in Polish, so I want to sh- actually demonstrate one that we built just for this conference that's in English. This is 1984.
- 2:18
And, um, what's interesting here, which I don't think I'll be able to show you, is that you can send a quick voice note to the book and ask, "What's going on in this scene right now?"
- 2:34
No, I don't really have audio. But the, the point is that there's many different, uh,
- 2:42
AI voice assistants, but they are all almost always just terrible, if not all of them, to be honest. Siri is terrible. We had a demo from, uh, Google yesterday.
- 2:53
They were saying up front that it works fifty percent. Uh, it's usually there's a delay. The... They start talking in the wrong s- uh, position, uh, I mean, at the wrong time.
- 3:04
Uh, then they interrupt you. So we've built here a system where it... you hold it as to just, uh, specify when you are speaking, and you... then you let it go, and it immediately, hundred milliseconds, responds to you, and then you could scroll further and then ask a question like, "What happened between last time I asked a
- 3:25
question and now?" And it can summarize what's going on. Um, so you have to believe me that. You can check later on bookgenius.net. Um, another thing that we were talk- thinking about is the search.
- 3:37
That's very, uh, common thing, searching. Uh, so the most normal search would be just exact search. But if you want to... The way our brains work, they don't memorize the pages.
- 3:49
So if you want to find a scene where Winston met O'Brien, then exact search is not gonna work, but embeddings work. So you can quickly find the scene you were thinking about this way, and then you can, uh, go to that, go to that, uh, spot, read a bit more, then you can go back to the place
- 4:10
where you were reading. But there is also, uh, one step forward... I mean, one more thing you can do, you can basically say, uh, "Talk about all the way the party, um, propaganda works," and you can do deep research, and it's gonna actually read the whole book till the, to the point that you finished at to give
- 4:33
you the answer. Is that very useful? It's gonna take a couple minutes. I'm gonna go back to presentation. So I started with vibe coding vanilla JS, very confusing code, but it gave me the freedom to iterate very quickly.
- 4:49
Um, you basically don't know what you don't know, and if you start to... Especially right now, the time it takes to plan everything up front is often wasted because you can much quicker just tell your thinking to the AI and generate something that works, and then you see, "Oh, that's actually not that great.
- 5:05
Let's try this and that." And I realized that throwing away code that you poured your heart into often feels terrible, like you're vested. You've spent so much time. But throwing away code written by a, by AI actually feels great.
- 5:18
Um, so I would ex- describe this as waves of changes. So basically, um, once I start feeling that the... I don't rewrite the whole code base day after day.
- 5:31
Like, the, the amplitude of the waves is getting lower and lower, and there comes a time where I can start old school engineering. Uh, I can start adding tests and refactor, but there are traps to refactoring.
- 5:43
Do I refactor the worst piece of code? I would suggest that it's better to focus on low-hanging fruits. So for example, I had a piece of a code for, uh, from OpenAI audio processing, and it's like JavaScript very quickly written, no types, very confusing, but I never have to touch it, so I'm, I'm not refactoring it, although
- 6:02
it was very tempting. So we often think about refactoring by adding this, how bad, how painful, how easy. But if something is very bad and very easy to change, but it's not painful at all, then it's probably not a good idea to change it.
- 6:14
So I would suggest that it's better to look at how bad the code is, multiplied by how painful and multiplied by how easy. And when all those factors are taken into consideration, then it starts making sense to, uh, make a decision.
- 6:27
So a lot of the AI, uh, experiences that we see and talk about are basically either ChatGPT wrappers or image generators, uh, or half-working useless voice assistants, including Siri.
- 6:39
Um, so our approach was to hide the AI from the user. Uh, so when we produce the books, the AI does the initial draft, and we do the rest, and I would argue that the human touch is invaluable in, in situations like this.
- 6:54
Uh, like not... AI cannot tell if the music that it generated is good. It cannot say if the graphics are good-looking or if the avatar is actually matching the vibe of the person, uh, that, uh, the book is talking about.
- 7:09
So we want to make the AI disappear, and, uh, multiple things connected together, simple things, simple building blocks, make for the magical experience for the reader. There's nothing really new here.
- 7:19
You could already ask a friend about, a question about the book, but is your friend available twenty-four/seven and all-knowing? Probably not. You can already search, but is the search the spoiler-free search?
- 7:31
Is it natural language search or exact match? Um, so I think that beautiful graphics help you get into the mood of the book and help you with the character recall.
- 7:42
Uh, and music that matches the scene makes it the experience like watching a movie, and we know that music influences the emotions hugely, and it's very nice when, um, you're reading the book, and the, the music just flows with the book and, and gives you this great experience.
- 7:58
So nothing new, but at the same time, completely new, which is what AI allows us to do nowadays. And I would encourage everyone to think about those tiny little niches where, uh, we can create some completely new experiences on top of something that we have known for so, such a long time.
- 8:14
So in thousands of years, it was never possible to read books like this, nor even really produce books like this because if I had to do all those graphics and music for every single book, it would cost me, I don't know, hundreds of thousands of dollars per book.
- 8:26
So it never meant... ma-made sense to do this. So how do we do this? The process is we use a combination of LLMs to the scene analysis, book characters detection.
- 8:36
We give the AI an overall music theme. So we say for, uh, Sherlock Holmes books, for example, that it's like Victorian London and all that, and it should be noir music and kind of on a sad note.
- 8:48
Um, so with scene, scene analysis, plus mood detection, we do music generation, and we also do structured XML with metadata. So for example, we have a text like this, and we re...
- 9:00
AI is very good at doing this kind of a mapping, which then is very easy for us to use in the, uh, book when we say, okay, like we can display the avatars that are in the scene.
- 9:09
It would be very time-consuming for a person to go through the whole book and map every single thing like this. So today, we are open sourcing the player, so anyone can create the Netflix-style experiences for books.
- 9:21
And if you want AI that feels like magic, not like chatbots, come talk to me. We build AI experiences that ship and delight and not slides, although I hope the slides were nice.
- 9:32
So thank you, and you can find me at those places. [clapping] [outro music]