Christian H. Cooper Profile picture
Jan 20 12 tweets 12 min read Read on X
I asked #R1 to visually explain to me the Pythagorean theorem.

This was done in one shot with no errors in less than 30 seconds.

Wrap it up, its over:

#DeepSeek #R1
Ok, now let's really swing for the fences.

I told #deepseek how I understand Quantum Electrodynamics to work and to render this visually

“Begin by slowly fading in a panoramic star field backdrop to set a cosmic stage. As the camera orients itself to reveal a three-dimensional axis frame, introduce a large title reading ‘Quantum Field Theory:
A Journey into the Electromagnetic Interaction,’ written in bold, glowing text at the center of the screen. The title shrinks and moves into the upper-left corner, making room for a rotating wireframe representation of 4D Minkowski spacetime—though rendered in 3D for clarity—complete with a light cone that stretches outward. While this wireframe slowly rotates, bring in color-coded equations of the relativistic metric, such as
ds2=−c2dt2+dx2+dy2+dz2ds^2 = -c^2 dt^2 + dx^2 + dy^2 + dz^2, with each component highlighted in a different hue to emphasize the negative time component and positive spatial components.

Next, zoom the camera into the wireframe’s origin to introduce the basic concept of a quantum field. Show a ghostly overlay of undulating plane waves in red and blue, symbolizing an electric field and a magnetic field respectively, oscillating perpendicularly in sync. Label these fields as E⃗\vec{E} and B⃗\vec{B}, placing them on perpendicular axes with small rotating arrows that illustrate their directions over time. Simultaneously, use a dynamic 3D arrow to demonstrate that the wave propagates along the z-axis.

As the wave advances, display a short excerpt of Maxwell’s equations, morphing from their classical form in vector calculus notation to their elegant, relativistic compact form: ∂μFμν=μ0Jν\partial_\mu F^{\mu \nu} = \mu_0 J^\nu. Animate each transformation by dissolving and reassembling the symbols, underscoring the transition from standard form to four-vector notation.

Then, shift the focus to the Lagrangian density for quantum electrodynamics (QED):
LQED=ψˉ(iγμDμ−m)ψ−14FμνFμν.\mathcal{L}_{\text{QED}} = \bar{\psi}(i \gamma^\mu D_\mu - m)\psi - \tfrac{1}{4}F_{\mu\nu}F^{\mu\nu}.

Project this equation onto a semi-transparent plane hovering in front of the wireframe spacetime, with each symbol color-coded: the Dirac spinor ψ\psi in orange, the covariant derivative DμD_\mu in green, the gamma matrices γμ\gamma^\mu in bright teal, and the field strength tensor FμνF_{\mu\nu} in gold. Let these terms gently pulse to indicate they are dynamic fields in spacetime, not just static quantities.

While the Lagrangian is on screen, illustrate the gauge invariance by showing a quick animation where ψ\psi acquires a phase factor eiα(x)e^{i \alpha(x)}, while the gauge field transforms accordingly. Arrows and short textual callouts appear around the equation to explain how gauge invariance enforces charge conservation.
Next, pan the camera over to a large black background to present a simplified Feynman diagram. Show two electron lines approaching from the left and right, exchanging a wavy photon line in the center.

The electron lines are labeled e−e^- in bright blue, and the photon line is labeled γ\gamma in yellow. Subtitles and small pop-up text boxes narrate how this basic vertex encapsulates the electromagnetic interaction between charged fermions, highlighting that the photon is the force carrier. Then, animate the coupling constant α≈1137\alpha \approx \frac{1}{137} flashing above the diagram, gradually evolving from a numeric approximation to the symbolic form α=e24πϵ0ℏc\alpha = \frac{e^2}{4 \pi \epsilon_0 \hbar c}.

Afterward, transition to a 2D graph that plots the running of the coupling constant α\alpha with respect to energy scale, using the renormalization group flow. As the graph materializes, a vertical axis labeled ‘Coupling Strength’ and a horizontal axis labeled ‘Energy Scale’ come into view, each sporting major tick marks and numerical values. The curve gently slopes upward, illustrating how α\alpha grows at higher energies, with dynamic markers along the curve to indicate different experimental data points. Meanwhile, short textual captions in the corners clarify that this phenomenon arises from virtual particle-antiparticle pairs contributing to vacuum polarization.

In the final sequence, zoom back out to reveal a cohesive collage of all elements: the rotating spacetime grid, the undulating electromagnetic fields, the QED Lagrangian, and the Feynman diagram floating in the foreground. Fade in an overarching summary text reading ‘QED: Unifying Light and Matter Through Gauge Theory,’ emphasized by a halo effect. The camera then slowly pulls away, letting the cosmic background re-emerge until each component gracefully dissolves, ending on a single star field reminiscent of the opening shot. A concluding subtitle, ‘Finis,’ appears, marking the animation’s closure and prompting reflection on how fundamental quantum field theory is in describing our universe.”
This took about 9 minutes in a single shot with no math errors:
The code:

from manim import *
from manim.mobject.three_d.three_dimensions import Surface
import numpy as np

class StarField(VGroup):
def __init__(self, is_3D=False, num_stars=200, **kwargs):
super().__init__(**kwargs)
for _ in range(num_stars):
x = np.random.uniform(-7, 7)
y = np.random.uniform(-4, 4)
z = np.random.uniform(-3, 3) if is_3D else 0
star = Dot(point=[x, y, z], color=WHITE, radius=0.02)
self.add(star)

class QEDJourney(ThreeDScene):
def construct(self):
# Configuration
self.camera.background_color = "#000000"
self.set_camera_orientation(phi=70*DEGREES, theta=-30*DEGREES)

# 1. Cosmic Introduction
star_field = StarField(is_3D=True)
title = Text("Quantum Field Theory:\nA Journey into QED",
font_size=48, gradient=(BLUE, YELLOW))
subtitle = Text("From Maxwell to Feynman", font_size=36)
title_group = VGroup(title, subtitle).arrange(DOWN)

self.play(FadeIn(star_field), run_time=2)
self.play(Write(title), FadeIn(subtitle))
self.wait(2)
self.play(title_group.animate.scale(0.5).to_corner(UL), run_time=2)

# 2. Spacetime Foundation
axes = ThreeDAxes(x_range=[-5,5], y_range=[-5,5], z_range=[-4,4])
spacetime_grid = Surface(
lambda u,v: axes.c2p(u,v,0),
u_range=[-5,5], v_range=[-5,5],
resolution=(25,25),
fill_opacity=0.1,
stroke_width=1,
stroke_color=BLUE_E
)
light_cone = Surface(
lambda u,v: axes.c2p(v*np.cos(u), v*np.sin(u), v),
u_range=[0,2*PI], v_range=[0,3],
resolution=(24,12),
fill_opacity=0.15,
color=YELLOW
)

self.play(
Create(axes),
Create(spacetime_grid),
run_time=3
)
self.begin_ambient_camera_rotation(rate=0.1)
self.play(Create(light_cone), run_time=2)
self.wait(2)

# 3. Electromagnetic Waves Visualization
wave_group = VGroup()
for direction in [LEFT, RIGHT]:
em_wave = ParametricFunction(
lambda t: axes.c2p(
direction[0]*t,
0,
np.sin(3*t)*0.5
),
t_range=[0,5],
color=RED
)
wave_group.add(em_wave)
b_field = ArrowVectorField(
lambda p: [0, np.sin(3*p[0]),0],
x_range=[-5,5], y_range=[-5,5], z_range=[-4,4],
colors=[BLUE]
)
maxwell_eq = MathTex(

r"\nabla \cdot \mathbf{E} = \frac{\rho}{\epsilon_0}",
r"\nabla \times \mathbf{B} = \mu_0\mathbf{J} + \mu_0\epsilon_0\frac{\partial \mathbf{E}}{\partial t}"
).arrange(DOWN).to_edge(DR)
self.play(

Create(wave_group),
Create(b_field),
Write(maxwell_eq),
run_time=4
)
self.wait(3)
# 4. QED Lagrangian Revelation

qed_lagrangian = MathTex(
r"\mathcal{L}_{\text{QED}} = \bar{\psi}(i \gamma^\mu D_\mu - m)\psi - \tfrac{1}{4}F_{\mu\nu}F^{\mu\nu}",
substrings_to_isolate=[r"\psi", r"D_\mu", r"\gamma^\mu", r"F_{\mu\nu}"]
).scale(0.8).to_corner(UR)
qed_lagrangian.set_color_by_tex(r"\psi", ORANGE)
qed_lagrangian.set_color_by_tex(r"D_\mu", GREEN)
qed_lagrangian.set_color_by_tex(r"\gamma^\mu", TEAL)
qed_lagrangian.set_color_by_tex(r"F_{\mu\nu}", GOLD)
self.play(
Transform(maxwell_eq, qed_lagrangian),
run_time=3,
path_arc=PI/2
)
self.wait(2)

# 5. Feynman Diagram Unfoldment
feynman_diagram = VGroup(
Line(LEFT*3, ORIGIN, color=BLUE),
Line(ORIGIN, RIGHT*3, color=BLUE),
ArcBetweenPoints(LEFT*3, RIGHT*3, angle=PI/2, color=YELLOW)
).shift(UP*2)

vertex_dot = Dot(color=WHITE).scale(1.5)
labels = VGroup(
MathTex(r"e^-", color=BLUE).next_to(feynman_diagram[0], LEFT),
MathTex(r"e^-", color=BLUE).next_to(feynman_diagram[1], RIGHT),
MathTex(r"\gamma", color=YELLOW).next_to(feynman_diagram[2], UP)
)

self.play(
Create(feynman_diagram),
GrowFromCenter(vertex_dot),
FadeIn(labels),
run_time=3
)
self.wait(2)
# 6. Coupling Constant Evolution

alpha_plot = Axes(
x_range=[0, 20], y_range=[0.005, 0.03],
x_length=6, y_length=4
).to_edge(DL)
curve = alpha_plot.plot(
lambda x: 0.007297 + 0.0001*x,
color=RED

)
plot_labels = VGroup(
alpha_plot.get_x_axis_label(r"\text{Energy Scale (GeV)}"),
alpha_plot.get_y_axis_label(r"\alpha")
)
self.play(
Create(alpha_plot),
Create(curve),
Write(plot_labels),
run_time=3
)
self.wait(2)
# 7. Grand Finale

self.stop_ambient_camera_rotation()
final_text = Text("QED: Light & Matter United", font_size=48)
self.play(
FadeIn(final_text, shift=UP),
*[FadeOut(mob) for mob in self.mobjects],
run_time=5
)

self.wait(3)
I mean the visual plane is off which I can fix but to do this in a single shot with no errors, this is just stunning.

Bravo @deepseek_ai
The code:

~~~

from manim import *
from manim.mobject.three_d.three_dimensions import Surface
import numpy as np

class StarField(VGroup):
def __init__(self, is_3D=False, num_stars=200, **kwargs):
super().__init__(**kwargs)
for _ in range(num_stars):
x = np.random.uniform(-7, 7)
y = np.random.uniform(-4, 4)
z = np.random.uniform(-3, 3) if is_3D else 0
star = Dot(point=[x, y, z], color=WHITE, radius=0.02)
self.add(star)

class QEDJourney(ThreeDScene):
def construct(self):
# Configuration
self.camera.background_color = "#000000"
self.set_camera_orientation(phi=70*DEGREES, theta=-30*DEGREES)

# 1. Cosmic Introduction
star_field = StarField(is_3D=True)
title = Text("Quantum Field Theory:\nA Journey into QED",
font_size=48, gradient=(BLUE, YELLOW))
subtitle = Text("From Maxwell to Feynman", font_size=36)
title_group = VGroup(title, subtitle).arrange(DOWN)

self.play(FadeIn(star_field), run_time=2)
self.play(Write(title), FadeIn(subtitle))
self.wait(2)
self.play(title_group.animate.scale(0.5).to_corner(UL), run_time=2)

# 2. Spacetime Foundation
axes = ThreeDAxes(x_range=[-5,5], y_range=[-5,5], z_range=[-4,4])
spacetime_grid = Surface(
lambda u,v: axes.c2p(u,v,0),
u_range=[-5,5], v_range=[-5,5],
resolution=(25,25),
fill_opacity=0.1,
stroke_width=1,
stroke_color=BLUE_E
)
light_cone = Surface(
lambda u,v: axes.c2p(v*np.cos(u), v*np.sin(u), v),
u_range=[0,2*PI], v_range=[0,3],
resolution=(24,12),
fill_opacity=0.15,
color=YELLOW
)

self.play(
Create(axes),
Create(spacetime_grid),
run_time=3
)
self.begin_ambient_camera_rotation(rate=0.1)
self.play(Create(light_cone), run_time=2)
self.wait(2)

# 3. Electromagnetic Waves Visualization
wave_group = VGroup()
for direction in [LEFT, RIGHT]:
em_wave = ParametricFunction(
lambda t: axes.c2p(
direction[0]*t,
0,
np.sin(3*t)*0.5
),
t_range=[0,5],
color=RED
)
wave_group.add(em_wave)
b_field = ArrowVectorField(
lambda p: [0, np.sin(3*p[0]),0],
x_range=[-5,5], y_range=[-5,5], z_range=[-4,4],
colors=[BLUE]
)
maxwell_eq = MathTex(

r"\nabla \cdot \mathbf{E} = \frac{\rho}{\epsilon_0}",
r"\nabla \times \mathbf{B} = \mu_0\mathbf{J} + \mu_0\epsilon_0\frac{\partial \mathbf{E}}{\partial t}"
).arrange(DOWN).to_edge(DR)
self.play(

Create(wave_group),
Create(b_field),
Write(maxwell_eq),
run_time=4
)
self.wait(3)
# 4. QED Lagrangian Revelation

qed_lagrangian = MathTex(
r"\mathcal{L}_{\text{QED}} = \bar{\psi}(i \gamma^\mu D_\mu - m)\psi - \tfrac{1}{4}F_{\mu\nu}F^{\mu\nu}",
substrings_to_isolate=[r"\psi", r"D_\mu", r"\gamma^\mu", r"F_{\mu\nu}"]
).scale(0.8).to_corner(UR)
qed_lagrangian.set_color_by_tex(r"\psi", ORANGE)
qed_lagrangian.set_color_by_tex(r"D_\mu", GREEN)
qed_lagrangian.set_color_by_tex(r"\gamma^\mu", TEAL)
qed_lagrangian.set_color_by_tex(r"F_{\mu\nu}", GOLD)
self.play(
Transform(maxwell_eq, qed_lagrangian),
run_time=3,
path_arc=PI/2
)
self.wait(2)

# 5. Feynman Diagram Unfoldment
feynman_diagram = VGroup(
Line(LEFT*3, ORIGIN, color=BLUE),
Line(ORIGIN, RIGHT*3, color=BLUE),
ArcBetweenPoints(LEFT*3, RIGHT*3, angle=PI/2, color=YELLOW)
).shift(UP*2)

vertex_dot = Dot(color=WHITE).scale(1.5)
labels = VGroup(
MathTex(r"e^-", color=BLUE).next_to(feynman_diagram[0], LEFT),
MathTex(r"e^-", color=BLUE).next_to(feynman_diagram[1], RIGHT),
MathTex(r"\gamma", color=YELLOW).next_to(feynman_diagram[2], UP)
)

self.play(
Create(feynman_diagram),
GrowFromCenter(vertex_dot),
FadeIn(labels),
run_time=3
)
self.wait(2)
# 6. Coupling Constant Evolution

alpha_plot = Axes(
x_range=[0, 20], y_range=[0.005, 0.03],
x_length=6, y_length=4
).to_edge(DL)
curve = alpha_plot.plot(
lambda x: 0.007297 + 0.0001*x,
color=RED

)
plot_labels = VGroup(
alpha_plot.get_x_axis_label(r"\text{Energy Scale (GeV)}"),
alpha_plot.get_y_axis_label(r"\alpha")
)
self.play(
Create(alpha_plot),
Create(curve),
Write(plot_labels),
run_time=3
)
self.wait(2)
# 7. Grand Finale

self.stop_ambient_camera_rotation()
final_text = Text("QED: Light & Matter United", font_size=48)
self.play(
FadeIn(final_text, shift=UP),
*[FadeOut(mob) for mob in self.mobjects],
run_time=5
)

self.wait(3)
@kylekabasares 👆
Go full screen, I can see no errors here.

It fixed the rotation in a single shot. About 3 minutes of thinking and 45 minutes to render.

So the Chinese have open sourced a model that can out think any PhD I've ever met.

Cool, cool...
The repo with complete code and instructions:

github.com/HarleyCoops/De…
As an aside, I thought you might like to know what #Deepseek charged me for hammering the API all day…6 cents!

What a world! Image
Happy Tuesday, here is what electroweak symmetry breaking looks like.

It gets a little crowded at the end but again, single prompt, single slug of working code in the reply.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Christian H. Cooper

Christian H. Cooper Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(