{"id":"ddavness/curve","name":"curve","scope":"ddavness","platform":"roblox","description":"A library to help create and manage analytically defined curves in 3D space","version":"0.2.0","latest":"0.2.0","versions":["0.0.1","0.0.2","0.1.0","0.1.1","0.2.0"],"license":"MIT","licenseRating":"safe","licenseCaveats":["License identified from the packaged LICENSE file; the manifest declared none."],"licenseVerified":true,"dependencies":{},"integrity":"523fe9506d919eae5218c080b217a78d62f27595af17ed045f86eaa81e25f71a","likes":0,"downloads":0,"install":"forest install ddavness/curve","url":"https://forest.dev/p/roblox/ddavness/curve","files":"https://api.forest.dev/ai/package/roblox/ddavness/curve/files","readme":"# Curve Library\r\n\r\nA Roblox library that provides utilities to create and manage 3D curves (may also consider having 2D curves in the future).\r\n\r\nCurves are created from certain key variables (start point, control point(s), etc.) and stored as `[0, 1]` -> `CFrame` functions. May be used for any purpose, including for example camera animations or procedural race track creation.\r\n\r\nSince this library does not interact with the DataModel, it may be ported to another Luau platform (outside Roblox) if alternative `Vector3` and `CFrame` implementations are provided.\r\n\r\n## Curve Type Support/Roadmap\r\n\r\n| | `:locationAt()` | `:dt1()` (Velocity) | `:dt2()` (Acceleration) | `:lengthAt()` |\r\n|-:|:--------:|:--------------:|:------------------:|:-----------------:|\r\n|**Lerp (line)**|✅|🚧|🚧|🚧|\r\n|**Bézier** (Quad)|✅|✅|✅|❌|\r\n|**Bézier** (Cubic)|✅|✅|✅|❌|\r\n|**Bézier** (nth degree)|Evaluating|\r\n|**Bézier** chain/spline|Evaluating|\r\n|**Hermite Spline**|Evaluating|\r\n|**Circle Arc**|✅|🚧|🚧|🚧|\r\n|**Euler Spiral**|✅<sup>**(1)**</sup>|🚧|🚧|🚧|\r\n|**Archimedian Spiral**|Evaluating|\r\n\r\n> #### Legend\r\n> * ✅ Implemented\r\n> * 🚧 Not yet implemented, will be implemented in the future\r\n> * ❌ Will not implement (not solvable analytically or not feasible to compute)\r\n> #### Notes\r\n> * **(1)** Analytical solution involves Fresnel Integrals which do not have a closed-form solution, but can be expressed via a Taylor Series expansion ([more info](https://en.wikipedia.org/wiki/Fresnel_integral)); implemented via approximations of that expansion over a finite amount of terms\r\n\r\n## Quick Start\r\n\r\n## Implentation Details\r\n","readmeBorrowedFrom":{"version":"0.0.1","source":"wally"},"readmeTruncated":false}