One question grew out of a post by Andrej Karpathy: Could a Korean classic also become an on-demand world, assembled when we ask to enter it?
That question led me to build Simcheongjeon first as a procedural Three.js world and then as a pansori animation. AI generated scenes, but repetition, human choice, and musical rhythm turned those scenes into a finished work.
What question did Karpathy’s experiment leave behind?
Karpathy’s experiment asked how far an AI that reads a story could go in constructing a world.
He gave an LLM the opening paragraph of The Lord of the Rings and asked it to build a Three.js environment. Over two hours, the model wrote thousands of lines of code, placing characters and objects in a three-dimensional space and making them move.
The post made me think of Korean classics. Could a thatched house, the sea at Indangsu, the Dragon Palace, and a lotus become moving places rather than descriptions? Could a reader enter the story instead of only reading it?
I gave the full story of Simcheongjeon to the AI.
How did Simcheongjeon become a Three.js world?
The first result was an eight-act procedural animation running 7 minutes and 26 seconds.
About 11,400 lines of TypeScript created thatched houses, hanok buildings, characters, the waves of Indangsu, the Dragon Palace, a lotus, and the royal court. I used no external 3D models or texture images.
Code became the set and the cast. It also controlled the camera, lighting, and movement of the sea.
| Element | Implementation |
|---|---|
| Environments | Three.js geometry and procedural placement |
| Characters and props | 3D objects generated in code |
| Indangsu and its waves | Numeric controls and animation |
| Lotus and Dragon Palace | Scene-specific position, rotation, and lighting |
| Camera | Movement and gaze designed for each act |
| External models and textures | None |
At first I assumed that a sufficiently long code generation would complete the world. The actual process was different. The world improved because the generated scenes were repeatedly observed.
Why was verification more interesting than generation?
The most interesting part of the project was watching the AI inspect and correct the world it had made.
The AI captured screenshots and checked both screen coordinates and world coordinates. It compared the visible result with the positions recorded in code, then applied corrections.
The errors were surprisingly concrete.
- Fog hid both the background and the characters.
- The camera looked at empty space instead of the actor.
- A wave grew large enough to swallow the entire boat.
- Some objects rendered black under the wrong lighting conditions.
- A character’s face pointed away from the camera.
- The lotus rotated around the wrong axis and tilted sideways.
This was not one long piece of code produced in a single attempt.
The world emerged from a loop of making, seeing, measuring, and correcting.
In generative AI work, the first prompt is only part of the system. The AI also needs a way to observe its output and a clear standard for deciding what counts as an error.
How did the procedural world become a pansori animation?
The second phase turned a technical demonstration into a work that could be watched and heard.
The finished film has eight acts and runs for about eight minutes. I made the video with Seedance 2.5, the voices with Fish Audio, and the music with Suno AI.
The tools made production much easier than it would have been before. Designing the emotional movement of the work was not equally easy.
The hardest part was understanding that pansori is not ordinary narration.
Where does the rhythm of pansori come from?
The force of pansori comes from the drop between aniri, chang, and the drummer’s chuimsae.
Aniri carries the story in spoken narration. Chang releases emotion through song. The gosu, the drummer, adds breath and response through chuimsae. These elements do not operate at the same emotional height.
| Element | Role | Function in the film |
|---|---|---|
| Aniri | Spoken storytelling | Connects scenes and holds emotion back |
| Chang | Sung expression | Releases grief and resolve |
| Chuimsae | Breath and response | Relieves tension or pushes the next emotion forward |
I learned that aniri had to remain restrained for chang to break open. If every passage sounded intense, the scene that needed to hurt most became emotionally flat.
Simcheong’s leap into Indangsu could not be completed by visual effects alone. The weight of the moment depended on how long the voice held back and exactly when the song was allowed to rise.
What did AI make, and what did the human choose?
AI built the world, but it could not decide which moments deserved to remain.
The story of a daughter who throws herself into the sea so that her blind father may see again has carried generations of grief. Without that emotional center, even the most capable AI tools could not have filled eight minutes with meaning.
The production required continuous human choices.
- Where should the voice stop?
- Which scene deserves more time?
- When should chang break open?
- What should be removed even when it is technically possible?
- What rhythm can carry the emotion of the original story?
The tools built a world. Choice and rhythm made that world a work.
Which tools were used?
Each tool had a defined role, while direction and editing joined the results into one movement.
| Work | Tool or role |
|---|---|
| Script and pansori text | Claude |
| Video | Seedance 2.5 |
| Voices | Fish Audio |
| Music | Suno AI |
| Direction and editing | Reasonofmoon |
The connections between tools mattered more than the list itself. The emotional line of the script had to shape the duration of each shot, then continue into vocal dynamics and the space left by the music.
Watch the completed pansori animation
The finished work is available below.
Frequently asked questions
Did AI automatically turn the entire story into an animation?
AI participated in the code, scenes, voices, and music, but the production was not fully automatic. Human judgment shaped the observation and correction loop, scene selection, emotional contrast, and final edit.
Can a Three.js animation be made without external 3D models?
Yes. The first version of this project used code to construct geometry, coordinates, lighting, and animation without external models or textures. Procedural scenes still require repeated checks of camera direction and spatial coordinates.
What was the hardest part of making a pansori animation?
The hardest part was resisting constant intensity. Pansori needs restraint in aniri so that chang can arrive with force.
What role does the original classic play in generative production?
The original story supplies more than images and events. It provides the standard for deciding what to keep and what to discard. Technology can expand a scene, but the work’s emotional center still comes from the source.
Three judgments that remain
- The quality of AI generation depends less on the first output than on the loop of observation and correction.
- Pansori draws its emotional force from the drop between aniri and chang, not from constant volume.
- AI can build a world, but human choice and rhythm turn that world into a work.
댓글
GitHub 계정으로 의견을 남길 수 있습니다. 댓글은 GitHub Discussions에 저장됩니다.