Interactive Raylib visualizer for building intuition about tangent vectors, covectors, and 2-forms on a curved surface.
differential_1_forms.mov
The program renders a moving point on a manifold, the tangent plane at that point, and several linked views that explain how:
- tangent vectors live in
T_pM - a covector acts as a linear measurement on the tangent plane
- a 2-form returns signed oriented area
There are three interactive scenes:
Tangent vectors: shows a point moving along the manifold, the attached tangent plane, and tangent vectors whose evaluated scalar output is shown by color.Cotangent space: shows a covector as a family of equal-value lines on the tangent plane, plus probe vectors and a flat inset view.2-forms: shows two tangent vectors spanning a parallelogram whose signed area is measured by a 2-form.
- A C compiler such as
ccorclang raylibpkg-config
The current Makefile obtains both compiler and linker flags from pkg-config, so raylib needs to be installed in a way that pkg-config --cflags raylib and pkg-config --libs raylib succeed.
make
make runTo remove the built binary:
make clean1,2,3: switch between the three scenesq: quitspace: pause or resume the animationr: reset the app state- left mouse drag: orbit the camera
- mouse wheel: zoom
- click scene tabs in the top bar: switch scenes
- click
AUTO,W1,W2,W3in the top bar: change the covector family used in the cotangent scene - drag the
Manifold colorslider: adjust the surface tint - drag the
Curve positionslider: scrub the point along the path - hover vector tips or highlighted geometry: inspect the currently measured value
- The window is resizable and uses MSAA when available.
- The executable built by
makeis nameddifferential_1_forms. - The window title in the program is currently
Differential 1-Form Visualizer, even though the app also includes a 2-form scene.
