A Chemistry Teacher’s Halloween Meme Inspires a Deep Dive into Explainer Video Creation

A seemingly simple Halloween-themed Boolean logic meme, shared by a Japanese chemistry teacher on Twitter (now X) years ago, has unexpectedly become the catalyst for a comprehensive exploration into the creation of sophisticated explainer videos. The meme, saved by the author of the article, served as a recurring autumnal chuckle. This personal anecdote, however, quickly branched into a broader interest in the technical underpinnings of educational content, specifically the open-source software utilized by the popular YouTube channel 3Blue1Brown. The journey from a saved meme to a fully rendered explainer video, complete with AI-generated narration, highlights the growing accessibility of powerful creative tools and the ingenuity of the online educational community.
The Genesis of an Idea: From Meme to Manim
The spark for this project ignited when the author sought to teach their children about advanced mathematical concepts, a "long story" involving the intricacies of programming. This led to the discovery of Manim, the open-source animation engine behind the visually stunning mathematics explainer videos produced by Grant Sanderson, the creator of 3Blue1Brown. Recognizing the potential of this tool, the author decided to leverage it for a Halloween-themed project, a creative endeavor that mirrors the playful spirit of the original meme that inspired it. The result is a self-produced explainer video, where NSHipster, a digital publication focused on the nuances of technology, adopts the persona of a beloved YouTuber.
The decision to create this video was not merely an artistic whim; it was a deliberate exploration of the technical landscape of educational content creation. The author explicitly states, "Which is all to say that this year for Halloween, NSHipster is dressing up as a beloved YouTuber." This statement encapsulates the core of the article: a deep dive into the tools and techniques that enable the creation of engaging and informative visual content. The accompanying video, embedded within the article, serves as a tangible demonstration of these capabilities, showcasing a "Trick XOR Treat" animated scene. The author further emphasizes the accessibility of this creative process by making all the assets and code used to create the video available on GitHub, inviting others to explore and replicate the process.
The 3Blue1Brown Phenomenon: A Foundation Built on Code
The origins of the visual storytelling approach that 3Blue1Brown has popularized can be traced back to 2015. At a hackathon, Grant Sanderson, driven by a desire to refine his Python programming skills, developed what he described as "very scrappy code for visualizing functions as transformations." This initial experiment, a playful exploration of mathematical concepts through visual representation, would ultimately evolve into the cornerstone of both the 3Blue1Brown YouTube channel and the Manim animation engine itself. Today, the 3Blue1Brown channel boasts an impressive subscriber base exceeding 6.5 million, a testament to the effectiveness and appeal of its unique educational methodology. Manim, as a direct product of this initiative, has become an indispensable tool for a growing community of educators, students, and creators seeking to demystify complex subjects through dynamic visuals.
Navigating the Manim Maze: Installation and Setup
Manim has historically carried a reputation for being challenging to install, a perception that stems from several factors. Firstly, the software’s intended audience extends beyond seasoned programmers, encompassing individuals who may describe themselves as non-programmers but possess a keen interest in learning. Secondly, the inherent complexities associated with creating motion graphics contribute to the learning curve. While Manim is written in Python, a language generally considered accessible, the additional dependencies and system configurations required for its optimal functioning have presented hurdles for many users. The author acknowledges these challenges, noting that "Some of this is a natural consequence for a tool whose audience extends to self-described non-programmers. Some of this is intrinsic to working with motion graphics."
To address the installation complexities, the article presents Docker as a viable and straightforward solution. Docker, designed to streamline the packaging of applications with their system dependencies, offers a way to bypass the intricacies of local installations. The article provides a direct command for running Manim via Docker:
$ docker run --rm -it -v "/full/path/to/your/directory:/manim" manimcommunity/manim manim -qm scene.py MySceneName
However, the author expresses a preference for a more integrated approach, suggesting that a direct installation will ultimately prove more beneficial for users looking to engage deeply with Manim. The article then pivots to providing a detailed, opinionated setup guide for Manim on macOS in 2025, emphasizing a "mise en place" strategy. This involves utilizing mise, a polyglot version manager, to install Python and the uv package installer.
The recommended setup process includes:
-
Installing
mise:# Install mise $ brew install mise -
Installing Python and
uvglobally:# Install Python and uv $ mise use -g python@latest uv@latest -
Creating and initializing a new project:
# Create a new project $ uv init my-explainer $ cd my-explainer # Now open with your preferred $EDITOR -
Installing Manim’s system dependencies:
# Install Manim dependencies $ brew install pkg-config cairo # for graphics $ brew install --cask mactex-no-gui # for LaTeX $ brew install sox # for voiceovers
Following these steps, a health check is performed using uv to ensure all components are correctly configured:
# Is everything working? (✅)
$ uv run manim checkhealth
The successful execution of this command signals that the user is ready to begin creating their own Manim animations.
Setting the Scene: Crafting the "Trick XOR Treat" Animation
The Manim API, described as "rich and well-documented," offers an extensive collection of examples that serve as valuable learning resources. The article highlights a standalone "Trick XOR Treat" scene as a concrete illustration of how Manim operates. The provided Python code demonstrates the procedural nature of the API, a characteristic the author contrasts favorably with the declarative style of frameworks like SwiftUI.
The code constructs a scene featuring a rounded rectangle panel, a title, and two overlapping circles representing the sets for an exclusive OR (XOR) operation. The key elements of the animation include:
- Panel Creation: A
RoundedRectangleforms the background, filled with a grey color. - Title Display: A
Textobject with "Trick XOR Treat" is scaled and positioned. - Venn Diagram Elements: Two
Circleobjects are created and positioned to form the basis of a Venn diagram. - XOR Logic Visualization:
DifferenceandIntersectionobjects are used to visually represent the XOR logic, where only the parts unique to each circle are highlighted in orange, and the intersection is excluded. - Facial Features: Simple eyes (small
Circleobjects) and mouths (ParametricFunctionfor a sine wave) are added to the unique sections of the circles, creating playful "faces" that embody the "trick or treat" theme. - Animation Sequence: The scene is brought to life through a series of animations:
FadeInandWritefor the panel and title.Createfor the individual circles..animate.set_fillto dynamically color the XOR regions with a smoothrate_func.FadeInwith a slightshiftandscalefor the facial features.
The author notes that the .animate syntax provides a convenient way to define transformations, but emphasizes that "at its core, this is imperative programming at its finest." This means that the programmer explicitly defines each step of the animation, providing direct control over the sequence and timing of visual events.
The Development Loop: Previewing and Rendering
To streamline the creative process, the example project incorporates a mise task for quickly previewing animations. This task renders the scene at a lower resolution (480p) and frame rate (15 fps) to expedite the generation process, followed by automatically opening the output file in QuickTime Player. This efficient development loop allows creators to iterate rapidly on their designs.
$ mise run preview
For final output and sharing, a render task is provided, which generates the animation at higher quality.
$ mise run render
The successful execution of these tasks culminates in a polished video, demonstrating the power and flexibility of Manim in creating professional-quality animated content.
Adding Voice: The AI Narration Element
A hallmark of 3Blue1Brown explainer videos is the distinctive voiceover of Grant Sanderson. In this project, however, a creative solution was implemented to add narration: an AI-powered text-to-speech service. The article introduces ElevenLabs, a platform renowned for its sophisticated text-to-speech models, as the chosen service.
The integration of voiceover is facilitated by the manim-voiceover library, though the article notes current compatibility issues with Python 3.13 and the latest v3 models. A workaround involves using a "fixed" version of the library. The scene is modified to inherit from VoiceoverScene, and an ElevenLabsService is configured with a specific voice and model.
from manim_voiceover_fixed import VoiceoverScene
from manim_voiceover_fixed.services.elevenlabs import ElevenLabsService
class TrickXORTreat(VoiceoverScene):
def construct(self):
self.set_speech_service(
ElevenLabsService(
voice_name="Liam",
model="eleven_v3",
transcription_model=None, # <-- workaround for https://github.com/ManimCommunity/manim-voiceover/issues/114
)
)
with self.voiceover(
text="""[annoyingly high-pitch nasal pedantic] Well, actually,
it's an exclusive or, also known as XOR..."""
):
# This wait() automatically waits until the voiceover finishes!
self.wait()
A significant advantage highlighted is the automatic synchronization of animation with speech. The self.wait() command within the voiceover context manager intelligently pauses the animation until the AI-generated narration is complete, eliminating the tedious manual timing often required in post-production. This feature dramatically streamlines the workflow, particularly for recorded voiceovers. The article proudly states that the completed video was rendered entirely within Manim, without any subsequent editing in professional software like Final Cut or Premiere.
The first-time use of this feature prompts the user for an ElevenLabs API token, which can be obtained from their account dashboard. This token is then saved to a .env file, ensuring seamless future use.
The Enduring Impact of Explainer Videos
The article concludes by reflecting on the essence of effective explainer videos. Beyond mere information dissemination, these videos possess the power to "spark curiosity, they delight, they make complex ideas feel approachable." This sentiment directly connects back to the author’s initial appreciation for the Halloween meme, symbolizing how even simple, creative sparks can ignite deeper engagement with learning.
The author encourages readers to consider creating their own explainer videos, particularly those who might have a "meme in their ~/Downloads folder" or simply wish to revisit their Python skills. The Halloween theme serves as a playful invitation to "dress up as a math YouTuber," emphasizing that the tools for such creative endeavors are open-source and readily accessible. The article posits that adopting this approach is not only a creative outlet but also a "pretty good look," suggesting that the accessibility and impact of explainer video creation are becoming increasingly significant in the digital educational landscape. The accessibility of tools like Manim, combined with powerful AI services, democratizes the creation of high-quality educational content, empowering a new generation of digital educators and storytellers.







