How beginwithf/real-time-manim works
Real-Time-Manim is a Manim Community Edition renderer with a Python animation/window layer and a native Vulkan backend. The principal workflow is a Manim scene playing animations through MLWindow, dispatching mobjects to shape or text senders, crossing a ctypes boundary, and rendering frames through Vulkan. The product also supports offline and live video recording, broad animation families, and LaTeX SVG caching with media cleanup. Native details and recorder internals are only partly sampled; documented flows are cited to the README, and uncertain internal links are omitted.
Main entry points: vulkan_bind.py MLWindow · vulkan_core.h Native rendering API · vulkan_shapes.py Shape dispatch · vulkan_text.py Text dispatch
Components 18
Python runtime
- MLWindow
real_time_manim/vulkan_bind.py - Shape dispatch
real_time_manim/vulkan_shapes.py - Text dispatch
real_time_manim/vulkan_text.py - Render utilities
real_time_manim/vulkan_util.py
Animation system
- Animation engine
real_time_manim/animations/base.py - Animation families
real_time_manim/animations - Rate functions
real_time_manim/rate_functions.py
Native renderer
- Native rendering API
native/vulkan_core.h - Shape vertex builders
native/draw - Font rasterizer
native/stb_truetype.h - Window platform
native/platform.c - Vulkan pipeline
native/vulkan_init.c
Recording and cache
- Scene recorders
real_time_manim/record.py - ffmpeg
- MP4 output
- LaTeX cache
real_time_manim/util.py - Manim media directory
Other components
- Manim scene
Connections 20
- Manim scene → MLWindow: binds and plays
README.md - MLWindow → Animation engine: runs animations
README.md - Animation families → Animation engine: extends
real_time_manim/animations/__init__.py - Animation engine → Rate functions: applies timing
real_time_manim/animations/base.py - MLWindow → Shape dispatch: dispatches shapes
README.md - MLWindow → Text dispatch: dispatches text
README.md - Shape dispatch → Render utilities: uses conversions
real_time_manim/vulkan_shapes.py - Text dispatch → Render utilities: uses conversions
real_time_manim/vulkan_text.py - Shape dispatch → Native rendering API: calls via ctypes
README.md - Text dispatch → Native rendering API: calls via ctypes
README.md - Native rendering API → Shape vertex builders: dispatches geometry
README.md - Shape vertex builders → Font rasterizer: rasterizes glyphs
native/draw/draw_text.c - Native rendering API → Window platform: uses platform layer
native/platform.c - Window platform → Vulkan pipeline: submits frames
native/platform.c - Vulkan pipeline → Manim scene: presents frames
README.md - Manim scene → Scene recorders: records scene
README.md - Scene recorders → ffmpeg: pipes frames
README.md - ffmpeg → MP4 output: encodes video
README.md - Manim scene → LaTeX cache: reuses compiled SVGs
README.md - Scene recorders → Manim media directory: cleans artifacts
README.md