Add README.md.

This commit is contained in:
Hayden Heroux 2026-11-02 16:54:22 -05:00
parent ea326d4a55
commit 0f19ceac0e

20
README.md Normal file
View file

@ -0,0 +1,20 @@
# Lyapunov
Named after Russian mathematician [Aleksandr Mikhailovich Lyapunov](https://en.wikipedia.org/wiki/Aleksandr_Lyapunov), this project aims to provide tools for simulating dynamical systems and encourage a deeper understanding of their control.
## History
This project rewrites [haydenheroux/controls](https://www.github.com/haydenheroux/controls) in Rust.
Codifying mathematical concepts in the C++ type system became tedious, and Rust's traits better fit expressing the mathematics of this domain.
Other pain points motivating the transition to Rust included package management, header files, and collaboration.
This implementation prioritizes the expressive nature of code and aims to make each completed demo beautiful to read and a joy to write.
While the original project focused primarily on systems and concepts present in FIRST Robotics Competition, this project resembles an undergraduate education in robotics engineering.
Well-studied systems, such as pendulums and cart-pole mechanisms, provide the bulk of examples.
## Acknowledgements
- [Controls Engineering in the FIRST Robotics Competition](https://github.com/calcmogul/controls-engineering-in-frc) inspired the analysis of dynamical systems and introduced the language of linear differential equations while I participated in high school robotics.
- [Steve Brunton](https://www.youtube.com/@Eigensteve) provided detailed video explanations and connected control theory concepts to other fields, such as machine learning. Also, [SINDy](https://doi.org/10.1073/pnas.1517384113) was vital for motivating further research into interpretable models and system identification.
- [Underactuated Robotics: Algorithms for Walking, Running, Swimming, Flying, and Manipulation](https://underactuated.csail.mit.edu/index.html) expanded my love to nonlinear dynamical systems, introduced physics-based approaches to modeling, and provided derivations for many systems.
- [WPI CS 4032 - Numerical Methods For Linear and Nonlinear Systems](https://www.wpi.edu/academics/calendar-courses/course-descriptions/3776/computer-science#CS-4032) taught by [Sijing Liu](https://sijingliu.github.io/) illuminated the connection between the stability of iterative matrix algorithms and the stability of dynamical systems.