Video: What P vs NP is actually about
What if we could run algorithms backwards? We discuss how we could do this by turning algorithms into circuits, and how it all connects to P vs NP.
For this video, we had the help of Gabor Hollbeck, who did the video recording and editing. It’s definitely the most professional-looking Polylog video to date!
I’m still very frustrated with Manim, the Python animation library we’re using, but I do have to admit that it has one big advantage: since it’s animation-as-code, you get all the benefits of a modern programming ecosystem, like code reusability and composability, version control, and procedural generation.
For this video, I wrote a tool (code here) for working with logical circuits: evaluating, visualizing, and reverting them. By separating the visual and the logical parts, I could even write unit tests, and these indeed discovered some bugs I wasn’t aware of before!
This advantage of Manim is very particular to Polylog because we often work with and visualize algorithms, and for this, the procedural generation would be difficult to replace. Animating all of the circuits by hand would be a nightmare. I still have high hopes for Cavalry. It’s a very different animation tool that is built primarily for animators rather than for coders, but they do have strong procedural generation capabilities. You can write JavaScript to generate Cavalry objects. I’d really like to try this for the next video!