Skip to content

jamylak/differential_1_forms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Differential 1 Forms

Interactive Raylib visualizer for building intuition about tangent vectors, covectors, and 2-forms on a curved surface.

Screenshot

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:

  1. Tangent vectors: shows a point moving along the manifold, the attached tangent plane, and tangent vectors whose evaluated scalar output is shown by color.
  2. Cotangent space: shows a covector as a family of equal-value lines on the tangent plane, plus probe vectors and a flat inset view.
  3. 2-forms: shows two tangent vectors spanning a parallelogram whose signed area is measured by a 2-form.

Requirements

  • A C compiler such as cc or clang
  • raylib
  • pkg-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.

Build And Run

make
make run

To remove the built binary:

make clean

Controls

  • 1, 2, 3: switch between the three scenes
  • q: quit
  • space: pause or resume the animation
  • r: 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, W3 in the top bar: change the covector family used in the cotangent scene
  • drag the Manifold color slider: adjust the surface tint
  • drag the Curve position slider: scrub the point along the path
  • hover vector tips or highlighted geometry: inspect the currently measured value

Notes

  • The window is resizable and uses MSAA when available.
  • The executable built by make is named differential_1_forms.
  • The window title in the program is currently Differential 1-Form Visualizer, even though the app also includes a 2-form scene.

About

Differential 1 Forms

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors