Every prototype I start ends up with the same handful of easing functions, rewritten slightly differently each time. Worse, when a project has both a web front end and a Unity client, the two drift apart — the web smoothstep and the C# Smoothstep end up with different arithmetic, and nobody notices until a designer says the button "feels different on mobile."
So I sat down and wrote out the twelve I actually reach for, as closed-form functions with no state and no timers. That constraint is the whole point: if a curve is pure arithmetic on t, the same shape can be written identically in JavaScript and C#, or baked into a lookup table for an engine that would rather not compute it.
You can play with all twelve here. It is one HTML file — open it from disk and it still works.
The shape of the thing
Every curve takes a normalized time t and returns a normalized position. That is it.






