https://github.com/coelacant1/umath3d
C++ Embedded 3D Mathematics, Controls, Signals, and Physics Library for Microcontrollers
https://github.com/coelacant1/umath3d
arduino cpp mathematics microcontroller
Last synced: 8 months ago
JSON representation
C++ Embedded 3D Mathematics, Controls, Signals, and Physics Library for Microcontrollers
- Host: GitHub
- URL: https://github.com/coelacant1/umath3d
- Owner: coelacant1
- License: gpl-3.0
- Created: 2025-06-14T02:47:20.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-06-14T04:24:45.000Z (8 months ago)
- Last Synced: 2025-06-14T05:27:15.478Z (8 months ago)
- Topics: arduino, cpp, mathematics, microcontroller
- Language: C++
- Homepage:
- Size: 99.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# uMath3D - Mathematics Library for Embedded Devices
> **Work in progress** — the structure may change without notice while working on the first major release.
This code is currently being migrated from ProtoTracer to act as a submodule and generalize the functionality.
**uMath3D** is a C++17 library targeted for embedded microcontrollers that bundles mathematics, control, signals, and physics features:
* vector, quaternion, matrix math, and rotation conversion
* 2D / 3D geometry primitives
* signal-processing helpers (FFT, Kalman, filters, noise)
* lightweight physics utilities (springs, bounce, fluid-style vector fields)
* time-step & PID control helpers
---
## Directory layout
```
include/um3d/ <- public headers (header-only where possible)
src/ <- .cpp for heavy implementations
examples/ <- minimal buildable snippets
test/ <- Unity unit tests
docs/ <- auto-generated API docs with Doxygen (WIP)
```
---
## Quick start
```bash
# Fetch
git clone https://github.com/coelacant1/uMath3D.git
```
> WIP
---
## Current modules
| Module | Highlights |
| ----------------------- | ------------------------------------------------------------------------------------------ |
| **math** | vectors, quaternions, rotations, transforms |
| **geometry** | circles, rectangles, planes, bounding volumes |
| **signal** | FFT, Kalman / average / peak filters, function generator, Simplex noise |
| **physics::motion** | damped spring, bounce dynamics |
| **physics::simulation** | vector‐field, boundary motion sim |
| **control** | classic PID controller |
| **time** | fixed/variable timestep helper, micro-wait |
---
## Planned / in-progress
* 4×4 matrix + projection utilities for graphics pipelines
* Additional procedural noise
* Doxygen-based website hosted on GitHub Pages
---
## Contributing
Contributions are welcome! To contribute:
1. Fork the repository on GitHub.
2. Commit your changes with a descriptive message (git commit -m 'Add YourFeature').
3. Push the branch (git push origin main).
4. Submit a pull request on GitHub.
---
## License
uMath3D is licensed under the [AGPL-3.0](https://choosealicense.com/licenses/agpl-3.0/). This ensures modifications and contributions benefit the community. If you use or modify this software for a product, you must make the modified code publicly available as per the license.