At the start of this year, I decided to get into Rust programming and build something. I am increasingly convinced that Rust and WebAssembly will create the next leap forward in Internet technologies. And so, the thing I decided to build is an animation toolkit for Rust with an eye towards targeting WebAssembly in the future. Today, I am launching Tweek as an open source project on Github. Tweek is a Tween animation kit for Rust, which should be compatible with several Rust-based graphics and game engines.

Some background: “Tween” is a term that was well-known in the early days of interactive web animation, primarily in Flash development. More specifically, it was popularized by the Tween and Timeline animation tools from Greensock. Originally created for Flash and ActionScript, the Tween tools made it easy for any developer to build rich, interactive animations with minimal effort.

Hence, this project aspires to deliver the same level of power and simplicity to the Rust community. This is a very ambitious goal, given that Rust has a steep learning curve and can be very intimidating because of its ultra-strict rules and syntax. Moreover, graphical user interfaces in Rust are still being developed and many are not ready to build on top of.

However, the endgame is quite clear to me. Rust is currently the language of choice when targeting WebAssembly (Wasm) and Wasm-enabled browsers. Specifically, I’m talking about pure WebGL graphics and not a hybrid solution that requires HTML. When this is achieved, it will be possible to deliver the rich animations and embedded apps that work in nearly all browsers and bring back the “write once, run anywhere” vision.

Demo

Here’s one demo example of a simple animation created with Tweek:

8 dots rotating in a circle on a staggered timeline.

More Demos

You can check out the other demos in the Github repo: