Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
February 13, 2011 14:00
February 13, 2011 14:00

Easing Library

This is a lua port of the Robert Penner's equations for easing. You can find much more information about it on [](his web site).

This library was based off:

However, only the easing functions are included, and not any kind of tweening helpers.


Requiring the easing library returns a table which contains all the different functions.

local easingFunctions = require("easing")

outInBounce = easingFunctions.outInBounce

-- All easing functions take these parameters:
-- t = time     should go from 0 to duration
-- b = begin    value of the property being ease.
-- c = change   ending value of the property - beginning value of the property
-- d = duration

-- Some functions allow additional modifiers, like the elastic functions
-- which also can receive an amplitud and a period parameters (defaults
-- are included)

beginVal = 0
endVal = 1
change = endVal - beginVal
duration = 1

print(outInBounce(0             , beginVal, change, duration)) --> 0
print(outInBounce(duration / 4  , beginVal, change, duration)) --> 0.3828125
print(outInBounce(duration / 2  , beginVal, change, duration)) --> 0.5
print(outInBounce(duration / 3/4, beginVal, change, duration)) --> 0.10503472222222
print(outInBounce(duration      , beginVal, change, duration)) --> 1


There is a plain lua example and an interactive one based on the LÖVE game library. To run the examples you'll need to get the engine from Once you have the love executable, move into the examples/love directory and run "love ."

love2d running easing examples

Running Tests

To run the tests you'll need telescope. From the library's root directory, run:

▸ tsc tests/easing_tests.lua
80 tests 80 passed 80 assertions 0 failed 0 errors 0 unassertive 0 pending


Copy the documentation from the tweener source and convert it to luadoc.


Like the tweener library, easing is licensed under the MIT license.


  • Tweener authors
  • Yuichi Tateno
  • Emmanuel Oga


  • kikito (Enrique García) (#2)