GTween and Tweenlite Unite?

I have always had a lot of respect for Jack Doyle. Before creating gTween, his TweenLite library was my tweening library of choice – I’m even a member of Club Greensock. We have stayed in touch since I released gTween, and I’m happy to announce that we are currently evaluating ways to integrate the two tweening libraries to create something better than either of them.

Jack will bring years of experience building tweening engines, boundless energy and enthusiasm, and a dedication that I simply can’t match to the new library. I will hopefully be able to contribute a lot in terms of new ideas, formal architecture, code cleanliness, and hopefully even the odd optimization

here and there.

We’re hoping we can bring the best of both projects into a combined library, and would love to hear what you’d like the end product to be. For example, if you’re a gTween user, what made you choose it over TweenLite? Or vice versa. Feel free to give us feedback in the comments below or on the Greensock forums.

There’s no guarantee that this collaboration will bear fruit, but we’re both committed to trying. One phenomenal tween engine would be preferable to two great ones.

I will release at least one more version of gTween, fixing a bunch of issues and adding a few minor features. I realize that people are using this library actively, and have no intention of simply dropping support and leaving them at the mercy of existing bugs.

You can get additional information on Jack’s blog entry. We’re both very excited to move forward with this, and hope our respective users are too!

Grant Skinner

The "g" in gskinner. Also the "skinner".

@gskinner

38 Comments

  1. Sounds cool, but I hope we can keep the name “Lite” in TweenLite. 😀

  2. TweenLite: speed, small filesize, ease of use, nice features, dedicated author, free, docs, examples, …

  3. This is awesome news… I’ve used and love both libraries so I’m very excited to see what you two come up with 🙂

  4. Thats sounds a very great news to me, I’m very excited to see what will come of your collaboration guys 🙂

  5. Merging the 2 absolutely best tweening engines in the AS world!

    That can only lead something wonderful!

    Looking forward!

  6. Great news! We can expect so much from this marriage!

  7. Best of luck with the new roadmap. It gives me a big smile to see collabaration like this 😉 I hope you both overcome any hurdles along the way 😉

  8. This can only be good news. I too am a big fan of Jack’s work, and use TweenLite. To be honest it was just the simplicity I always liked, covering almost all bases for almost all situations. It was a case of finding something that worked and sticking with it – hence why gTween never really got a look in. A good “constant ease” tween would be good if you can hook that up… great for PaperVision3D scripting.

  9. Hullo.

    Considering how awesome TweenLite/Max is, I can’t imagine how good your joint project could be.

    A little feature request from me, if I may.

    When using Tweener one thing I liked was being able to have all the parameters of a tween in one object. I usually had a line that looked something like this:

    private static const CONF_TWEEN_BUTTON_ACTIVE:Object = {time:1, alpha:0.8};

    CONF_TWEEN_BUTTON_INACTIVE:Object = {time:2, alpha:0.5};

    One thing I used in Tweener but didn’t see in TweenLite were instant tweens. I guess that makes sense only in a scenario where you use configuration objects like those, but I found it a nice solution. If a designer decided the active button needs a tint or less alpha I only needed to modify one object. Somewhere in my init I had something like this:

    var myButton:FancyButton = new FancyButton(“I, for one, welcome our new tweening overlords”);

    Tweener.addTween(myButton, {base:CONF_TWEEN_BUTTON_ACTIVE, time:0});

    This effectively worked as an instant tween, as Tweener checked if the time was 0, and if it was it didn’t even do a tween.

    While this solution was ugly, it worked. But I’d much rather see a gTweenLite.instantTween(myButton, CONF_TWEEN_BUTTON_ACTIVE);

  10. I cant wait to see what this collaboration brings. I have worked with Jack on a previous project and his work is top notch for sure! I currently use the TweenLite/Max libraries, but I definitely found the GTween work to be promising, I just never had the chance to take it for a test drive.

  11. I have been using TweenLight I think its great its ease to use, fast there’s great documentation for it. But over all I think it works really good with lots of options. I tried GTween one of the beta versions but I was getting to many issues when working with papervision.

  12. I’m disappointed. GTween has become my tween engine of choice. I’ll still use it, of course, because it will continue to do the job, but I doubt I’ll try the new GTween/TweenLite hybrid.

    Personally, I’ve always been a little turned off with TweenLite. Part of it is the information overload of the website. It makes me think I’m going to have to make a million choices and manage a ton of plugins before I’m happy. That may not be true, but those feature lists are huge and talk a lot about plugins, so I immediately get that impression. Don’t make me think that much before I even get a chance to try your project. The other part of TweenLite’s problem, for me, is the license fee. I realize that it may never apply to me, but I seriously laughed when I saw the “single developer” price. I’ve been using free, open source tween engines since as far back as I can remember, and I think most Flash developers have too. This thing had better do my laundry for me if you expect me to pay that much.

  13. Interesting news – I expect great things!

    I like both TweenLite and GTween, although I’m not yet 100% confident in GTween and prefer to rely on TweenLite for simple stuff where overwriting is generally the “right” or “expected” behaviour. The proxy stuff in GTween is intriguing though, and with some thought may become the new definition of “right” and “expected” 🙂

    We’ve been evalulating GTween for Modest Maps as you know. However I wouldn’t have looked for another library if TweenLite had been under a well known open source license (preferably BSD/MIT or similar). The license is very important especially when combining with other libraries.

  14. Marcus Booster March 17, 2009 at 3:56pm

    Agree with above comment.

    Please, please, keep it under the MIT license! It’s a very important consideration when deciding which library to use.

  15. Another vote for the MIT license. I’ve chosen GTween over TweenLite in the past simply because of the license.

  16. I Used TweenLite for a long time and was happy with it until I realized it was not not free for commercial use. That’s when I switched to gTween and have been very happy with with it ever since.

    Both are great libraries but ultimately it was the License that made me choose gTween. I hope the License of this new project remains open.

    Jamie

  17. It seems to me that more and more features/components of TweenLite/TweenMax will be charged.

    We will have to say bye bye to many awaiting new features of gTween after merging gTween into TweenMax

  18. Scanlon I think you need to read the FAQ here:

    http://blog.greensock.com/gskinnercollaboration/

    It’s free for most commercial uses.

  19. Hello!

    This great news, I love both these tweening engines so this kind of collaboration can only be a good thing.

    The ability to use frames as tween durations is, for me, a critical feature that gTween has that TweenLite does not. I’m often trying to sync code animation to fairly CPU intensive timeline animation, and the code tweens quickly get out of sync when the CPU gets bogged down using time (not frames) as the duration. I’d love to see this gTween feature retained.

    Thanks

  20. Agree with Victor, please keep it “lite”.

  21. [url=http://lozanro.flextribe.com/2009/03/tweenlitetweenmax-merges-with-gtween-to.html]Trackback[/url]: “Jack Doyle, the mastermind behind the TweenMax tweening engine and Grant Skinner, another Flash titan and the author of the GTween Tweening and Animation Library have decided to merge their libraries into a new tweening platform – the GreenSock Tweening Platform.”

  22. The license motivated me to start using GTween. If I make money off a project I want to share a portion of it with everyone who contributed, but I don’t want to be forced to meet a certain minimum sales number just to cover the cost of tweening. And I certainly don’t want to pay more for a tweening library than I pay for the Flash IDE!

  23. Sad news. TweenLite is great and so is TweenMax, but the very reason I decided to go with GTween despite its limitations is because you make it very clear that you are not looking to profit from it, at all. You make it available to everyone with the MIT license and even after I offered to give you a donation for providing a great tweening engine you insisted on the fact that you created GTween for the community, not to make money and refuse any donations. That alone, would make me double my donation. After your response, I ported all my previous TweenLite projects to GTween.

    Don’t get me wrong, I think everyone has the right to revenue from their work and like the Joker said, “If you are good at something never do it for free” (or something to that effect). However, the spirit and strength of the open source community wouldn’t be where it is now if everyone created “tiers” of features and usage restrictions for their projects. It seems kind of elitist to be part of a “club” where only people who donated money get to play with the more useful and advanced features or extensions of your project.

    Knowing tha you are now working with Jack, and GTween will eventually die is truly sad. I just hope you reach an agreement in terms of licensing that doesn’t… uh, never mind, I just read his post. Oh well, I think I’ll have to look elsewhere for an open-source tweening engine that doesn’t ask for money in order to access its complete featureset, or maybe I’ll just learn to work around GTween’s limitations after its final release. In any case, thanks for creating an alternative and being such a key player in the Actionscript community.

  24. dVyper

    I understand the terms of the license entirely. Unfortunately I work for a company that runs a commercial web site so we would fall under the not-free category if we were to use TweenLite. Since we only use the tween engine for basic alpha fades and motion, it would hardly be worth it to license these libraries, especially since the underlying easing equations have been widely available and used in all sorts of applications for years.

    Furthermore the GreenStock license is not in the spirit of Open Source and open collaboration. It doesn’t allow for altering and redistribution of the original code and therefore doesn’t allow others to build on it and grow it.

    I had more faith that Grant Skinner in particular understood the value in Open Source software. I hope the GreenStock license is not adopted because it will force me to abandon both libraries.

    Jamie

  25. Wow, lots of drama about licensing. I’d like to respectfully challenge the perception that the GreenSock licensing model is a weakness. Quite the opposite, actually.

    Judging by some of the comments, I’ve done a poor job of communicating the fact that TweenLite and TweenMax are ABSOLUTELY FREE for all commercial and non-commercial uses with one exception: usage in products for which a fee is charged to multiple end users, like in commercial components or games (see http://blog.greensock.com/licensing/). That’s an extremely small fraction of the use cases out there, and those projects are directly making a profit from essentially sublicensing the code, so it seems more than fair. Those power users (representing less than 1% of the user base) and kind donors provide the funding that benefits their own projects while at the same time making it absolutely free for the other 99% of the user base. Is that a weakness or a strength?

    There was a time when the project was funded by donations only, but virtually nobody donated. Tons of downloads and compliments, but less than 0.01% pitched in even $5. That was fine. However, everyone wanted features added and support and better documentation, optimization, etc. People were relying on the code for business-critical stuff and I felt an obligation to serve them well. I had a choice to make: Take the posture that most other open source authors do, “I’ll get to it when I get to it,” or find a win-win solution that would provide cash flow to justify the time it would take to enhance, support, and document the project. It would mean cutting back on the hours at my “normal” job. Corporate Club GreenSock was born and I firmly believe that in the end, it benefits everyone. It protects against some of the most common frailties of open source projects which often wither and die as the authors get busy with other more profitable endeavors, gradually resenting support requests from their once exciting venture. We’ve all seen it happen. End users end up paying a steep price for using a “free” product.

    Let’s face it: nobody likes having to pay for anything. I’m no different. But what does it really cost to use an open source engine that has no viable funding mechanism? Believe me, there is a cost, although it may not be financial. Is it support? Continued innovation? Optimization/speed? Prompt bug fixes? I have heard from several companies who chose the GreenSock platform in large part because of the license. They wanted to know there was a revenue stream in place to support it. They wanted to invest in something that has a certain level of commitment behind it, not merely “I’ll get to it when I get to it”.

    Grant and I have chatted about this, and I’ll let him speak for himself, but I firmly believe that the GreenSock licensing model is a benefit to end users, not a weakness. It is a critical component in the making of a robust, reliable platform that has staying power.

    As far as the classes and plugins that I give away as Club GreenSock membership benefits, they are a way that I say “thanks” to those who support the project but none of the classes/plugins provide critical functionality and I have never changed a class or plugin from free to a membership benefit. Never will.

    I understand the concern about cost/licensing and I can assure you that Grant and I are ultimately trying to figure out how to deliver the most value to the community overall. This isn’t a slick scheme to get your money. Neither of us is willing to risk our reputation like that. But again, I’d challenge the mindset that free == better. Consider the real costs.

  26. Jack

    I would never criticize the way you choose to license your products. You are entitled to do what you think is best.

    You mentioned ‘free’ several times and I’d like to point out you are using the term free as in Gratis. i.e. at no cost. But when we are talking about Open Source what we usually mean by free is free as in Libre. i.e. you are at liberty to use it however you want.

    I would also like to suggest that if there is a community of people who are interested in keeping gTween alive in it’s Open Source form. It might be worthwhile for some of us to take over development of the project and keep moving it forward. The beauty of the current MIT license is that it allows anyone to improve on it and distribute it.

    Jamie

  27. I hope the new engine will be fully opensource

  28. Jack,

    It’s not drama. Well, ok, maybe qbix was a little dramatic, but mostly I didn’t hear any badmouthing, just rational weighing of options. Grant asked what motivated us to choose GTween, and for some of us, it was the license or price. You have to make choices about what to spend your time and money on – and so do the rest of us.

    Sometimes I work on commercial projects, sometimes I don’t. Sometimes I use tweens in reusable modules that I may use in the future on who-knows-what kind of project. Sometimes a project starts out as just an experiment, and then turns into a game or tool I’d like to sell at a small cost, or give away but accept donations. The MIT license gives me the freedom to do all this, without having to know ahead of time the final shape the code will take, or what, if any, revenue it will generate. That’s a great feature and a huge time saver!

  29. Great news — Can we keep TweenLite syntax? I feel like it is tons more readable than gTween!

  30. hell yes!

    I’m a TweenLite guy myself, but I did give gTween a shot. That ‘virtual timeline’, although I’ve only played with it, seemed really useful.

    I hope it still remains FREE. 😀

  31. Great news! I love and I’m addicted to these tweening engines. I’m sure you together can do great things!

    Thank you!

  32. Wicked! can’t wait!

  33. Marcus Booster March 25, 2009 at 12:27am

    Well since gTween WAS under the MIT License we can always fork the project.

  34. Thanks for opportunity to contribute ideas here Grant.

    2 things absolute must for me, firstly bezier curves we really need to be able to tween in the way weener does with it’s bezier curve class which works very well (apart from rotates), also, we need a way of easily creating easing equations which start / end differently (e.g. ease in / out could have a different ease at the start to the end). There is a solution here http://timotheegroleau.com/Flash/experiments/easing_function_generator.htm but its a bit clunky.

    Thanks again Grant – you are a star!

    Nick

  35. Blast – replace weener with tweener! doh

  36. I use TweenLite in all my projects and find it very reliable. It does save me time when creating animation from code and the tons of example that can be found are really useful.

  37. Can you tell us more about this? I’dlike to
    find out some additional information.

Comments are closed.