
Claude Fable 5로 물리 시뮬레이션 영상 9개를 만들어 보았다 — 삼체 문제부터 힉스 메커니즘까지
요약
Claude Fable 5를 활용하여 삼체 문제, 양자역학 이중 슬릿 실험 등 복잡한 물리 현상을 시뮬레이션하는 영상을 제작한 사례를 소개합니다. 사용자는 주제와 피드백만 제공하며, Claude Code가 Python 코드를 작성하고 렌더링까지 전 과정을 수행합니다.
핵심 포인트
- Claude Fable 5를 통한 코드 작성 및 렌더링 자동화
- 물리 법칙(삼체 문제, 슈뢰딩거 방정식 등)의 시각적 구현 가능성
- 프롬프트와 피드백 중심의 고차원적 개발 워크플로우
- Python 기반의 정교한 물리 시뮬레이션 영상 생성
Claude Fable 5로 무언가를 만드는 것이 유행하고 있다. X(구 Twitter)에서 삼체 문제 (Three-body problem) 시뮬레이션 영상이 화제가 되는 것을 보고, 나도 물리 × 영상이라는 주제로 부탁해 보았더니, 멈출 수 없게 되어 하루 만에 12개가 되었다.
만든 것, 실제로 입력한 프롬프트 (Prompt), 시도하며 알게 된 요령을 적어둔다.
만든 것
전부 Python으로, Fable 5 (Claude Code 상)가 코드를 작성하고 렌더링 (Rendering)까지 스스로 수행한다. 내가 한 일은 주제를 내는 것과, 나온 영상에 대해 피드백을 주는 것뿐이다.
삼체 문제 (Three-body problem). 8자 모양을 그리는 주기해 (Periodic solution)에 약간의 섭동 (Perturbation)을 주어, 카오스 (Chaos)로 무너져 가는 모습. 글로우 (Glow) 효과가 들어간 궤적이 우주 같다.


클라드니 도형 (Chladni figure)의 3D 버전 (소리 포함). 진동하는 판 위에서, 모래가 '움직이지 않는 장소' = 절선 (Node line)에만 모여간다. 판 자체가 물결치고 있으며, 절선 부분만 정지해 있는 것이 보인다. 음성도 화면의 주파수 표시와 동기화된 정현파 (Sine wave)를 Fable 5가 합성했다.


양자역학 (Quantum mechanics)의 이중 슬릿 실험 (Double-slit experiment). 슈뢰딩거 방정식 (Schrödinger equation)을 수치적으로 직접 풀고 있다. 색상은 파동 함수 (Wave function)의 위상 (Phase), 밝기는 진폭 (Amplitude). 오른쪽 끝 스크린에 간섭 무늬의 확률 분포가 축적되어 간다.


입자 충돌기 (Particle collider)의 3D 버전. 가속기 링을 두 개의 빔 뭉치 (Bunch)가 주회 가속하여, 검출기 안에서 충돌하고, 나선형의 트랙이 흩어지기까지를 원테이크 36초로 구현.




나머지는 KdV 솔리톤 (Soliton)의 충돌 (2D/3D), 힉스 메커니즘 (Higgs mechanism)의 자발적 대칭성 깨짐, LHC 스타일의 이벤트 디스플레이 2D 버전, 클라드니 2D 버전, 로렌츠 어트랙터 (Lorenz attractor), 삼체 문제 3D 버전, 이중 슬릿 3D 버전이다.





실제로 입력한 프롬프트
첫 번째 삼체 문제는 이것뿐이었다.
"삼체 문제의 불규칙한 궤도를 시뮬레이션하여 영상으로 표현하는 모델을 만들어 줘. 3개의 천체를 서로 다른 색으로 표현하고, 그 궤도가 궤적으로 그려지는 것. 학술적으로 정확할 뿐만 아니라 시각적인 아름다움도 중시해서."
포인트는 마지막 문장이라고 생각한다. "학술적으로 정확할 뿐만 아니라 시각적인 아름다움도 중시해서". 이 한 문장이 있으면 결과물의 방향이 확실히 바뀐다.
두 번째부터는 더 대충, "소입자, 양자 물리, 카오스, 솔리톤 계열로"라거나 "3차원으로 작성해 봐" 정도의 지시밖에 내지 않았다.
가장 놀랐던 점: 검증을 스스로 수행함
코드를 작성하고 영상을 내놓는 것으로 끝나는 것이 아니었다. Fable 5는 부탁하지 않았는데도, 물리적으로 옳은지 검증을 매번 거친다.
삼체 문제라면, 에너지와 각운동량 (Angular momentum)의 보존 오차를 계산하여 "1e-10 오더이므로 학술적으로 문제 없음"이라고 보고한 뒤 다음 단계로 넘어간다. 시뮬레이션 시간을 늘리면 근접 조우 (Close encounter) 시 오차가 악화된다는 것까지 확인하고, "정밀도를 유지할 수 있는 t=70에서 종료하겠습니다"라고 판단했다.
이중 슬릿에서는 파동 함수의 노름 보존 (Norm preservation, 유니타리티/Unitary)을 먼저 테스트하여 오차 4e-14를 확인한 뒤 렌더링에 들어갔다. 솔리톤도 질량과 운동량의 보존을 체크한다.
이 부분은 "돌아가기만 하면 되는" 코드 생성과는 다른 움직임으로, 시뮬레이션의 작법을 이해하고 있다는 느낌을 받았다. 초기 조건도 여러 개 시도하여, 궤도가 화면에 들어오면서도 카오스로서 재미있는 것을 시드 (Seed)로 선택한다.
피드백에도 제대로 응답함
힉스 메커니즘 영상은 첫 출력이 원색으로 칠해져 있어 형편없었다. 물리는 맞는데 화면이 무지개색 사이키델릭이라 도저히 남에게 보여줄 수 없는 수준이었다.
이것은 내가 지적하기 전에, Fable 5 스스로가 프리뷰 이미지를 확인하고 "아름답지 않다"고 판단하여, 순환 컬러맵 (Cyclic colormap)으로 교체하여 다시 만들었다. 수정한 후에는 대리석 같은 모습이 되어 시리즈 중 가장 마음에 든다.
3D화를 부탁했을 때도, matplotlib의 3D 기능 (mplot3d)은 느리고 깊이 표현이 약하기 때문에 투영 (Perspective projection)을 직접 구현해 왔다. 카메라 워크도 전부 그 위에 얹혀 있다. 솔직히 이 정도까지 할 줄은 몰랐다.
"3D로"라는 한마디에 일어난 일
2D 버전이 다 나온 뒤, "3차원으로 작성해 봐"라고만 부탁해 보았다. 방법은 아무것도 지정하지 않았다.
돌아온 것은 투영을 직접 구현한 3D 버전이었다. 삼체 문제 3D 버전에서는 초기 조건을 다시 찾아와서, "초반에는 8자, 중반에는 카오스, 마지막에는 한 개체가 방출되어 남은 2개가 쌍성(Binary star)이 된다"는 결말이 있는 궤도를 선택해 왔다. 방출에 맞춰 카메라가 자동으로 줌아웃한다.

이중 슬릿(Double-slit)의 3D 버전은 파동 함수를 '수면'으로 표현해 왔다. 높이가 확률 진폭(probability amplitude), 색깔이 위상(phase)이며, 파동 묶음(wave packet)이 슬릿 벽에 부딪히면, 그 맞은편에 간섭 무늬가 입체적인 능선 형태로 나타난다. 2D 버전에서는 패턴이었던 간섭이, 3D에서는 지형으로 보이게 된다.
흥미로웠던 것은 솔리톤(soliton)이었다. KdV 방정식은 1차원 방정식이라 순수하게 3D가 되기는 어렵다. Fable 5는 '공간 × 시간 × 진폭의 지형으로 전개한다'는 표현을 선택했다. 앞쪽의 빛나는 능선이 현재 파형이고, 과거가 뒤쪽으로 산맥처럼 쌓여간다. 솔리톤끼리의 충돌이 능선의 교차로 새겨진다. 1차원 방정식의 보여주는 방식으로는 스스로 생각하지 못했던 것이다.
어려웠던 점 및 요령
ffmpeg가 설치되지 않은 환경이었다. 이는 imageio-ffmpeg라는 Python 패키지의 바이너리를 사용하는 형태로 Fable 5가 저절로 회피한 것이었다. 나 자신은 아무것도 하지 않았다.
바로 비디오를 만들게 하는 것보다 좋은 것이 있다. 영상 한 편을 렌더링하는 데는 몇 분이 걸린다. 먼저 '구도 확인용 정지 이미지를 몇 장 내놓아 달라'고 요청하거나 (혹은 상대방이 저절로 하게) 흐름으로 가면, 수정할 부분이 거의 없었다.
처음 몇 초에 하이라이트를 배치하도록 요청하라. SNS에 올릴 생각이라면 중요하다. 물리 시뮬레이션은 '처음에는 아무 일도 일어나지 않은' 상태에서 시작하는 경향이 있다. 도입부부터 움직임이 있도록 지시하지 않으면 운에 맡기게 된다.
프롬프트에 넣었더니 효과가 있었던 요소들을 정리하자면, '학술적으로 정확하게', '시각적으로 아름답게'의 두 축을 명시하는 것과, 용도(X 게시물용으로 정사각형으로 등)를 먼저 말해주는 것이었다. 반대로, 방법이나 라이브러리를 지정할 필요는 없었다. 오히려 맡기는 편이 더 좋은 결과물이 나온다.
요약
물리 시뮬레이션은 생성 AI 출력의 정확성을 검증하기 쉬운 주제라고 생각한다. 보존 법칙이라는 객관적인 자(ruler)가 있기 때문이다. Fable 5는 그 자를 스스로 대면서 만들어 왔다. '그럴듯한 그림'과 '정확한 물리적 그림'을 구분할 수 있는 모델이 되어 있었다.
영상 한 편당 대화는 몇 번의 왕복, 렌더링 포함해서 약 30분 정도 걸린다. 주말에 주제를 바꿔가며 가지고 노는 장난감처럼 상당히 재미있으니, 관심 있다면 꼭 해보길 바란다. 프롬프트는 위에 적은 것을 그대로 사용해도 무방하다.
Discussion
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기