A downloadable Aseprite Extension for Windows, macOS, Linux, and Android

Buy Now$5.00 USD or more

Welcome to The Tween Machine, an interpolation toolbar plugin for Aseprite v1.2.31 or higher.

 Originally requested by WhiteVault, this tool creates in-between frames of animation within sets of keyframes.

Check out this funny clip from the man himself if you're not compleatly sold here xD Whitevaults Sales Pitch 

Also quick shoutout to Clockwork Raven for their amazing sprites as I am using them in the below examples!

This tool supports motion interpolation featuring position, scale and rotation. All of which can be used individually or  together in a single action.

Please Note The Following:

In order for the tween machine to automaticly caculate the diffrence in position or scale your spirte will need to be visiable fully on the canvas at all times while processing. This may mean that you will need to increase your canvas size to accommodate a zoom in if the sprite goes outside the canvas. You can then decrease your canvas size once the tween is compleate.
I plan to release an update with manual text inputs to make this easier. Also in this update will be speed improvements so it should be quicker to process everything :)

Position Tween / Interpolation:

Scale Tween / Interpolation:

Scaling can also be done non uniformly too! Very easy squish and stretch :D

Note: Sometimes position may need to be checked when scaling if it doesn't quite look right.

Rotation Tween / Interpolation:

Modify Existing Cels :

The tween machine can also tween  layers that have animations already, such as this walking fox from Ansimuz.

Multi Tween Support:

Also supported with this tool is creating multiple tweens in one step. Simply select a or more sets of keyframes and your tween settings will be applied to each set of keyframes.

This tool also has support for image interpolation modifies existing frames instead of creating them. Image interpolation includes Hue, Saturation, Value, and Alpha. Each can be used together as well in a single action.

Hue Tween / Interpolation:

Fade In / Fade Out (Create In Reverse):

This option can be toggled if you want to tween in or out. Also note that if your first and last frame are the same using a position tween will simply fill in all cels in between so they can be modified.

Easing Methods:

Want your interpolation to feel less like a robot, moving at a constant speed? The tool has built in Easing Methods which will give you a better, smoother, and more natural feeling animation.

Linear- Like a robot, one constant speed from one keyframe to the next.

EaseIn- Picture a rocket starting slow and gradually getting up to speed.

EaseOut- Falling fast but gradually slowing to a stop at the end of the keyframe.

EaseInOut- Motion like a car, starting slow gradually getting up to speed and then slowing gradually to a stop.

Again shoutout to Ansimuz for this awesome little fox character.

How To Install / Update:

You will find the tool under the frame menu: 

Frame > The Tween Machine...

Simply download and double click "the-tween-machine.aseprite-extension"

All of the files will be put where they need to be and will be overwritten if you are updating to  a new version of the tool.

To open the tool, its located under the Frame menu:

Frame> The Tween Machine...

--Simple Usage License / Rights-- 

By using the script included with this file you understand that you are using it ASIS with no guarantees. 

Though the script / toolbar is not intended to cause any harm, you understand that any such harm, such as lost of work, time or any other issues financial or otherwise, CarbsCode can not be held responsible.  Always save your work regularly! 

Please use at your own risk! If you change any of the script that may cause issues support may or may not be available. CarbsCode reserves the right to revise this license as needed. 


Use this script as a toolbar to assist in Aseprite for personal and professional use.

Learn from the code within.

Make changes as you see fit for your use-case. However support may not be available for modified scripts so do so at your own risk.


Re-sell, transfer or distribute entire script or parts of this script that are unique and / or not featured on the Aseprite API website. 

CarbsCode does not support NFTs and though he frowns upon the use of his tools for such works he understands that he can't stop users from doing so.

Though he asks kindly to please don't :)


Please report any bugs if you find some and Carbs will try and resolve as soon as possible!

Hope you all enjoy the tool! Please feel free to reach out or leave a comment if you have any issues or feedback!

❤ Thank you all for the amazing support ❤

Updated 21 days ago
PlatformsWindows, macOS, Linux, Android
Rated 5.0 out of 5 stars
(2 total ratings)
TagsAnimation, aseprite, extension, interpolate, interpolation, Pixel Art, plugin, tool, tween


Buy Now$5.00 USD or more

In order to download this Aseprite Extension you must purchase it at or above the minimum price of $5 USD. You will get access to the following files:

The Tween Machine v1.0.0 19 kB

Development log


Log in with itch.io to leave a comment.

Hey Carbs, just purchased two of your devices for Aseprite and I like to thank you for taking the time developing amazing  tools for us! 

But unfortunatley I had troubles with the Tweenmachine.
I wanted to create an Zoom-in effect on my Model by using the Tweener but i creates strange glitchlike results.


Check the youtube Link , maybe you understand what is happening here. 

I wait for your response and which you a great start to the week! 


(1 edit)

Hello! Yes I belive I know what this bug is, it more of a limitation currently, another user commented below they had the same related issue.

It's because when it performs the tween it can't see the part of the image that goes out of canvas so it can't figure out some of the math to continue scaling.

The temporary solution is to just increase your canvas size so everything is always seen that your scaling then adjust your canvas size back down again after it is all done.

Apologies for not figuring this issue yet, its going to be tricky because there is no way to know how much of the image is off screen automaticly, but I appreciate you showing an example like this it is quite helpful!

For me doesn't work that well. Even on linear the position is not evenly distributed, either the last but one position are the same as the last when there's few frames, or it's a lot further back, then the last jumps suddenly when there's a lot of frames. 

I tried to make my map travel 5 pixels each frame for 100 frames and adjusted the position of the last frame to be -500 and clicked "Create new tween cels", but then from 1 to 99 moves about  2 or 3 frames and at the last it jumps to -500. 

I even simulated the same minecart scene from this GIF and got these problems and bugs. Needs a few tweaks and updates, but seems promising. I only tested position tween.

(1 edit)

Oh thats no good! Sorry that you are running on to issues here. Hmm that does seems odd though! I will have to look in to this further. Is there any chance you would be able to attach a screen recorded gif or short video to show what is happening?

Also which version of aseprite are you using?

I appreciate the kind words though, it's def very complicated so it could be an issue in the math somewhere when using larger numbers but not exactly sure. If there is any chance you could send me a message or something I'd love to evaluate this more to figure out what is breaking lol

Thank you for posting btw! I want to make sure everything is working in any case so would love to figure this issue out haha

Here it is, sorry about the aspect ratio.

The first example is a map. The canvas is 400x100, but after animating I want to make it 100x100. I want the map to move 5 pixels each frame, and I need to move it -300 to be at it's final position at 100x100, so I made 300/5 which equals 60 (frames). But as you can see, it jumps from 59 to 60.

The second one is a similar to the minecart example you did, but as you can see the last two frames are in the same position.

Sometimes while trying I get crashes too.

I'm using the steam version, v1.2.39

Thank you for posting the video! This is very helpful :)

I think I see the issue, because the tween uses the layers center point to figure out which direction your moving it's getting confused when it can't see the full sprite any longer when it goes out of the canvas.

I will implement a fix for this to compensate automaticly though in the mean time if you increase your canvas so that everything can be seen over the duration of the frames and then crop your canvas back again it should work!

I'm also working on improving efficiency which will hopefully speed things up and hopefully solve any crashes from using too much memory, atleast I'm asuming that is what might be happening sometimes.

Expect an update soon! Again thank you for showing me the example it makes alot more sense seeing what is happening! Let me know if the canvas expansion trick works for this case :)

It worked like that! still has the problem of the last two frames being the same position but that can be easily fixed by adding an extra frame.

Minor bug happened to me though, after this process when hovering the timeline with mouse it's no longer an arrow, but the hand icon.

Thanks for the fast support.

One question, in which versions of Aseprite does this script work?

I've 1.2.25 dev and the extension doesn't work for me

(1 edit)

Ah shoot, my apologies, it looks like I might be using functionality that was added to the api in v1.2.31. Though if your able to upgrade to 1.2.39 this is the newest stable release at this point. Lots of bug fixes and stuff in there!