back to Krishanu Sankar's homepage

This page contains several demonstrations of math applets, which is used to make interactive mathematical visuals which can be embedded directly into web or desktop environments. I have used this on an ad-hoc basis to supplement math teaching, and hope to build more interactive applets as an enhancement to traditionally static written mathematics. This page is continuously growing.

The software is heavily inspired by manim. The most significant difference is that this library is designed for user-interactive web elements (hence written in Typescript), while manim is used for rendering videos. Several of the class names and abstractions I used come directly from manim, and I've tried to keep the interfaces mutually intelligible so that applets can be turned into videos and vice-versa.

Explanation pages

These pages consist of several animations arranged in narrative fashion, along with written explanations, to explain mathematical ideas.

Wave equation: This page builds an intuition for the wave equation, and depicts some phenomena of the 2-dimensional wave equation, such as dipoles and interference patterns. I wrote this simulator to help me visualize the difference between the ray model and wave model of optics, and to visualize the reflective property of conic sections.

Random walks: A random walk on a lattice of dimension 1 or 2 will always return to its starting point. But a random walk on a lattice of dimension 3 or higher may never return. Why? This page is about visualizing and proving this theorem.

Demos

These are one-off applets I'm using for showcasing new features of the library.

3D: Showing new features for 3D scenes.

Draggable objects: Demonstrating the ability to click-and-drag objects within a scene, and accordingly modify connected parts of the scene.

Sunrise equation: This page uses 3D geometry to visualize the calculation of sunrise and sunset times, among other things. I was inspired to write this page while thinking about how to calculate the energy absorbed by a solar panel over the course of a day.

Heat equation simulation: Simulations of the heat equation in the plane and on the surface of a sphere. The latter will be used to visualize the decoherence of a qubit.

Animations: Playing trigger-able animations.

Rust-WASM: Calls to Rust-implemented functions. This page is used for performance-testing purposes, as I intend to port computationally-heavy portions of simulations to Rust.