jQuery vs GSAP: Cage Match



Update: don’t miss our guest post on css-tricks.com, Myth Busting: CSS Animations vs. JavaScript which provides some additional data, visual examples, and a speed test focused on this topic.

jQuery is the 700-pound gorilla that has been driving lots of animation on the web for years, but let’s see how it fares when it steps into the ring with the feisty GSAP (GreenSock Animation Platform) which gained its fame in the Flash world and is now flexing its greased-up muscles in JavaScript. Before we put the gloves on, we need to make it clear that we’ve got the utmost respect for jQuery, its authors, and its community of users (to which we belong). It’s a fantastic tool that we highly recommend for non-animation tasks. This tongue-in-cheek “cage match” is solely focused on animation.

Performance

Performance is paramount, especially on mobile devices with sluggish processors. Silky smooth animation is the hallmark of any animation platform worth its weight. This round wasn’t even close. GSAP was up to 20 TIMES faster than jQuery under heavy stress. See a speed comparison for yourself or make your own.

Performance winner: GSAP

Controls

With jQuery, you can stop an animation but that’s about it. Some 3rd party plugins add resume capability, but jQuery takes a pounding in this round. GSAP’s object oriented architecture allows you to pause, resume, reverse, restart, or jump to any spot in any tween. Even adjust timeScale on the fly for slow motion or fastforward effects. Place tweens in a timeline with precise scheduling (including overlaps or gaps) and then control the whole thing just like it’s a single tween. All of the easing and effects remain perfectly intact as you reverse, pause, adjust timeScale, etc. And you can even kill individual portions of a tween anytime (like if a tween is controlling both “top” and “left” properties, you can kill “left” while “top” continues). Put labels in a timeline to mark important spots and seek() to them anytime.

Imagine trying to build the example below using jQuery. It would be virtually impossible. With GSAP, it’s easy. In fact, all of the animation is done with 2 lines of code. Drag the slider, click the buttons below, and see how easy it is to control the sequenced animation.

Impossible with jQuery. Easy with GSAP.


Controls winner: GSAP

Tweenable Properties

jQuery.animate() works with basic numeric properties, but that’s about it. If you want to do more, you’ll need to rely on lots of 3rd party plugins which may have spotty support or unresolved bugs. GSAP’s CSSPlugin handles almost anything you throw at it while protecting you from various browser bugs and prefix requirements.

GSAP jQuery
supported = supported   supported with 3rd party plugins = supported with 3rd party plugins   partially supported with 3rd party plugins = partially supported with 3rd party plugins
Basic numeric css properties like left, top, opacity, fontSize, etc. Supported Supported
Colors like backgroundColor, borderColor, etc. Supported Supported with 3rd party plugins
backgroundPosition Supported Supported with 3rd party plugins
boxShadow Supported Supported with 3rd party plugins
clip Supported Supported with 3rd party plugins
textShadow (including multiple text shadows) Supported Partially supported with 3rd party plugins
2D transforms like rotation, scaleX, scaleY, x, y, skewX, and skewY, including 2D transformOrigin and directional rotation functionality Supported Partially supported with 3rd party plugins
3D transforms like rotationY rotationX, z, and perspective, including 3D transformOrigin and directional rotation functionality Supported Partially supported wiht 3rd party plugins
borderRadius (without the need to define each corner and use browser prefixes) Supported Partially supported with 3rd party plugins
className allows you to define a className (or use “+=” or “-=” to add/remove a class) and have the engine figure out which properties are different and animate the differences using whatever ease and duration you want. Supported Partially supported with 3rd party plugins

Tweenable properties winner: GSAP

Workflow

When you’re creating fun and interesting animations, workflow is critical. You need to be able to quickly build sequences, stagger start times, overlap tweens, experiment with eases, leverage various callbacks and labels, and create concise code. You need to be able to modularize your code by creating functions that each spit back an animation object (tween or timeline) which can be inserted into another timeline at a precise time. You need a flexible, powerful system that lets you experiment without wasting hours wrestling with a limited tool set. jQuery has some nice simple convenience methods like show(), hide(), fadeIn(), and fadeOut(), but GSAP bloodies its nose in this round:

GSAP jQuery
supported = supported   unsupported = unsupported
Easily create sequences (even with overlapping animations) that can be controlled as a whole Supported Unupported
Flexible object-oriented architecture that allows animations to be nested inside other animations as deeply as you want Supported Unupported
Animate things into place (backwards) with convenience methods like from() and staggerFrom() Supported Unupported
Accommodate virtually any ease including Bounce, Elastic, SlowMo, RoughEase, SteppedEase, etc. Supported Unupported
Create a staggered animation effect for an array of objects using one method call (like staggerTo(), staggerFrom(), or staggerFromTo()) Supported Unupported
Easily repeat and/or yoyo a tween a specific number of times (or indefinitely) without resorting to callbacks or redundant code Supported Unupported
Callbacks for when a tween or timeline starts, updates, completes, repeats, and finishes reversing, plus optionally pass any number of parameters to those callbacks Supported Unupported
Place labels at specific times in a sequence so that you can seek() to them and/or insert animations there. Supported Unupported
Animate any numeric property of any JavaScript object, not just DOM elements Supported Unupported
Call a function whenever the entire platform finishes updating on each frame (like for a game loop) Supported Unupported

Workflow winner: GSAP

Compatibility

Browser inconsistencies and bugs are the bane of our existence as developers. Whether it’s the way Internet Explorer 8 implements opacity or Safari’s transformOrigin bug that wreaks havok on 3D transforms or the fact that browser prefixes are required to enable many of the more modern browser features, you want your animations to “just work” without having to learn all the annoying hacks. jQuery does a great job of delivering cross-browser consistency overall, but when it comes to animation it falls a bit short mainly because it doesn’t even attempt to handle the more modern CSS properties.

No JavaScript framework can work miracles and suddenly make IE8 do fluid 3D transforms, for example, but GSAP implements a bunch of workarounds under the hood to solve problems wherever possible. It can do 2D transforms like rotation, scaleX, scaleY, x, y, skewX, and skewY all the way back to IE6 including transformOrigin and directional rotation functionality! Plus it works around scores of other browser issues so that you can focus on the important stuff.

Compatibility winner: GSAP

Popularity

jQuery has been around for a long time and has gained incredible popularity because it does many things well. It’s like the Swiss Army knife of JavaScript. There probably isn’t a single JavaScript tool that’s more popular than jQuery, and GSAP is no exception. As the new kid on the block, GSAP is gonna have to prove itself in the JavaScript community just like it did in the Flash community before it’s crowned the undisputed champion.

Popularity winner: jQuery

Conflict management

What happens if there’s already a tween running that’s controlling a particular object’s property and a competing tween begins? jQuery does nothing to manage the conflict – the original tween keeps running. For example, let’s say you’re animating an element’s “top” to 100px and that tween still has 2 seconds left before it’s done, and another tween starts running that animates the same element’s “top” to 0px over the course of 1 second. It would tween to 0px and then immediately jump to almost 100px and finish that [first] tween. Yuck. GSAP automatically senses these conflicts and handles them behind the scenes. In this case, it would kill the “top” portion of the first tween as soon as the second tween begins. Plus there are several other overwrite modes you can choose from if that’s not the behavior you want.

Conflict management winner: GSAP

Support

Both jQuery and GSAP have thriving support forums, but since right now jQuery has a massive user base, you’re very likely to find someone with an answer to your question. Even though the GreenSock forums rarely have a question that remains unanswered for more than 24 hours, jQuery’s pervasiveness gives it an edge here. On the other hand, GreenSock’s forums are manned by paid staff (including the author of the platform), so you’re quite likely to get solid answers there. Add to that the fact that GreenSock has a track record of being much more agile in terms of squashing bugs and releasing updates than jQuery, so we’ll call this round a tie.

Support winner: tie

Expandability

jQuery and GSAP both offer a plugin architecture, but since jQuery has been out much longer and gained so much popularity, there are numerous plugins available. Some are good, some are not, but there is a thriving community of plugin developers out there. Even though technically they’re both equally expandable, the sheer number of plugins currently available for jQuery give it the advantage in this round.

Expandability winner: jQuery

Learning resources

Again, jQuery’s popularity trumps anything GSAP could throw at it right now. There are lots of tutorials, videos, and articles about jQuery whereas GSAP is new to the game. GreenSock is being aggressive about putting together solid resources (like the Jump Start tour) and the community is crankin’ out some great articles and videos too, but jQuery scores the win in this round.

Learning resources winner: jQuery

Price & license

Both jQuery and GSAP are completely free for almost every type of usage and both allow you to edit the raw source code to fix bugs (if that’s something you need to do). If you plan to use GSAP in a product/app/site/game for which a fee is collected from multiple customers, you need the commercial license that comes with “Business Green” Club GreenSock memberships (one-off commercial projects don’t need the special license). It’s actually a more business-friendly license in many ways than a typical open source license that offers no warranties or backing of any kind or imposes code sharing or credit requirements. GreenSock’s licensing model provides a small funding mechanism that benefits the entire user base because it empowers continued innovation and support, keeping it free for the vast majority of users. See the licensing page for details. jQuery employs an MIT license and is free for virtually all uses. As much as we all like “free” software, there’s always a cost somewhere. jQuery has a few large corporate sponsors that have helped keep it viable. Both jQuery and GreenSock have long track records of delivering updates, bug fixes, and new features (GreenSock is newer to JavaScript, but served the Flash community since around 2006). Both count some of the largest companies in the world among their user base. Although there are some clear benefits of GreenSocks’ license over jQuery’s, we’ll give this round to jQuery because it is technically “free” in more scenarios than GSAP.

Price & license winner: jQuery

File size

jQuery weighs in at about 32kb gzipped and minified whereas GSAP’s TweenLite and CSSPlugin are about half that combined. So in half the size, you’re getting significantly more animation capabilities and speed. GSAP is built in a modular fashion that allows you to use just the parts that you need. Of course jQuery serves many other purposes beyond animation, but in this cage match we’re focused on animation. Even if you add up TweenLite, TimelineLite, TimelineMax, TweenMax, EasePack, CSSPlugin, BezierPlugin, AttrPlugin, DirectionalRotationPlugin, and RoundPropsPlugin, it’s still almost 20% less than jQuery.

File size winner: GSAP

Flexibility

Let’s face it: any tweening engine can handle the basics of animating one value to another, but it’s really the details and advanced features that make a robust platform shine. GSAP crushes jQuery when it comes to delivering a refined, professional-grade tool set that’s truly flexible. All these conveniences are baked into GSAP (no 3rd party plugins required):

  • Tween any numeric property of any object.
  • Optionally round values to the nearest integer to make sure they’re always landing on whole pixels/values.
  • Animate along Bezier curves, even rotating along with the path or plotting a smoothly curved Bezier through a set of points you provide (including 3D!). GSAP’s Bezier system is super flexible in that it’s not just for x/y/z coordinates – it can handle ANY set of properties. Plus it will automatically adjust the movement so that it’s correctly proportioned the entire way, avoiding a common problem that plagues Bezier animation systems. You can define Bezier data as Cubic or Quadratic or raw anchor points.
  • Animate any color property of any JavaScript object (not just DOM elements). Define colors in any of the common formats like #F00 or #FF0000 or rgb(255,0,0) or rgba(255,0,0,1) or hsl(30, 50%, 80%) or hsla(30, 50%, 80%, 0.5) or “red”.
  • Set a custom fps (frames per second) for the entire engine. The default is 60fps.
  • All tweens are perfectly synchronized (unlike many other tweening engines).
  • Use the modern requestAnimationFrame API to drive refreshes or a standard setTimeout (default is requestAnimationFrame with a fallback to setTimeout)
  • Tons of easing options including proprietary SlowMo, RoughEase and SteppedEase along with all the industry standards
  • Animate css style sheet rules themselves with CSSRulePlugin
  • Animate the rotation of an object in a specific direction (clockwise, counter-clockwise, or whichever is shortest) by appending “_cw”, “_ccw”, and “_short” to the value.
  • You can tween getter/setter methods, not just properties. For example, myObject.getProp() and myObject.setProp() can be tweened like TweenLite.to(myObject, 1, {setProp:10}); and it will automatically recognize that it’s a method and call getProp() to get the current value when the tween starts. Same for jQuery-style getters/setters that use a shared method like myObject.prop().
  • You can even tween another tween or timeline! For example, TweenLite.to(otherTween, 1, {timeScale:0.5}) would animate otherTween.timeScale to 0.5 over the course of 1 second. You can even scrub the virtual playhead of one tween/timeine with another tween by animating its “time”.
  • Use plugins like ThrowPropsPlugin for momentum-based motion, and RaphaelPlugin, EaselPlugin, and KineticPlugin for those [canvas or svg] libraries (Raphael, EaselJS, and KineticJS). Plus there are physics-based plugins like Phyics2DPlugin and PhysicsPropsPlugin as well as a fun ScrambleTextPlugin for Club GreenSock members.

Flexibility winner: GSAP

GAME OVER

Conclusion

jQuery eeked out a few decent rounds, but ultimately GSAP left it lying on the mat in a pool of its own blood. Of course we’re slightly biased, but check out the facts for yourself. Kick the tires. Audition GSAP on your next project. See how it feels. If you only need simple fades or very basic animation, jQuery is probably just fine. In fact, its fadeIn() and fadeOut() methods are quite convenient. However, what happens when your client wants to do something more expressive? Or what if they start complaining that animation isn’t smooth on mobile devices? Why not build on a solid foundation to begin with so that you don’t find yourself having to rewrite all your animation code? If you want professional-grade scripted animation, look no further. To get started fast, check out our Jump Start tour.

Update: there’s now a jquery.gsap.js plugin that allows you to continue using jQuery.animate() but have GSAP drive the animations under the hood, thus delivering much better speed plus a bunch of new properties that you can tween (like colors, 2D and 3D transforms, boxShadow, textShadow, borderRadius, clip, etc.). Read more about the plugin here.

Recommended reading:

  • Twitter
  • Facebook
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Google Bookmarks
  • RSS
  • LinkedIn
  • Reddit

Comments (28) RSS

Posted by emrah on December 8, 2012

gsap is better, no question but a little selector engine would be cool…

Posted by Jack on December 8, 2012

Building in a selector engine would provide some convenience, sure, but several liabilities have kept us from doing so:

1) There are already tons of selector engines out there who do the job well. Why throw our hat into a ring that’s overpopulated with capable solutions already?

2) Adding a selector engine would increase the file size footprint. If most developers already rely on a different selector (like jQuery) in their projects that provides extra capabilities (AJAX loading, etc.), GreenSock’s would be redundant and wasteful in terms of kb.

That being said, if there’s enough demand from the community, we very well may eventually add a selector engine of some sort. Thanks for chiming in with your request. We’re listening.

Posted by rhernando(Rodrigo) on December 8, 2012

This is very simple, GSAP rocks pure and simple, like Jack, Carl and many others have said many times, jquery has made our lives very simple and cool things have been done with it, but now thanks to the incredible job Jack and Carl are doing, I now use jquery for everything involving javascript except animation, for that if you don’t use GSAP you’re wasting your time because you’re probably writing more code than needed and you’re struggling for features that are native in GSAP. GSAP usage is so simple that makes animating in JS so much fun, and because you can mix it with every other library and jquery plugin the possibilities are infinite.

I can’t remark this enough but thank you both for the incredible job you’re doing and will keep doing, i have no doubts about that.

Cheers,
Rodrigo.

Posted by Harry on December 9, 2012

mmmmmmuuuuuuaaa GSAP

Posted by Charles-J on December 12, 2012

Like like like : – )

Posted by Scott on December 12, 2012

Fantastic, I’ve been anxiously awaiting CSS3 transformations so that I could utilize hardware accelerated animations on the iPad. Thanks, Jack!

Posted by Richard on December 12, 2012

very good.. especially for us old Flash devs!

Posted by Mark A. on December 12, 2012

Being addicted of this animation framework since when it came out for Flash I did not hesitate a second to use it for javascript, too. Simply the best. Thank you for that. Is there a blog post about the history of development? Would be a good read.

Posted by Lukas Buenger on December 12, 2012

Hi Jack,

you (and your co-workers / contributors?) are again delivering with just stunning quality. Much respect!
A few comments above someone argued that GSAP should come with its own selector engine. And I really advise you against doing so. Even though I consider y’all to be more than just up for the job I think that you’ll be tilting at windmills. There were and still are a lot of selector engines that are superior to jQuery when it comes down to performance, but time proved, that jQuery just delivers what people seem to be looking for.
However, if you still feel like taking a step towards the framework direction, please make it something that non-programmers can relate to within the blink of an eye. Just matching every existing OOP principle won’t convince the casual jQuery user that doesn’t care about programmer’s ethics at all.

Regards,
Lukas

Posted by Brennan on December 12, 2012

Incredible! that’s all I have to say

Posted by Timo on December 12, 2012

Love it.

Unbiased. Informative. Decisive.

In my flash lifetime I’ve used many animation libraries. The first time I used Greensock was the last time I used ANY of the other libraries. Well, by choice anyway.

I used GSAP for the first time a few months ago, and can confidently say It will take something pretty special to lure me away from GSAP when it comes to serving my JavaScript animation needs.

Truly impressive stuff Jack. Happy to be a long time Club Greensock member!

Posted by bango on December 13, 2012

Always support GreenSock,Whether for AS or for JS.love it.

Posted by Marco on December 13, 2012

This is awesome Jack. Having spent the last 2 years working with HTML5 and javascript I’ve missed visiting the Sock and working with Tweenmax! Great to see you guys working in the Javascript realm and your observations on Jquery animation are dead on accurate. Can’t wait to take GSAp for a spin and what’s most reassuring is that I won’t have any voices in my head asking ‘will this work’, ‘will this conflict with another jquery plugin’ and all that. I know it will just work!

I’ll be renewing my Club Green membership for sure.

Echo Bango’s comments above. Will always support GreenSock

Posted by zjk on December 13, 2012

Good work !
Next step webgl !

gsap Vs three.js ?!

:D

Posted by enzuguri on December 14, 2012

@emrah For pure selector support why not use qwery (https://github.com/ded/qwery). On this topic, have you considered adding GSAP to the NPM so it can be built with ender.js? (http://ender.jit.su/)

Posted by Martin Sansom on December 20, 2012

Looks like an amazing product – although I’m not sure why people still bang on about how amazing it is to save 15kb on file size – will users really notice the difference…. I think not.
(optimising images or using CSS to create gradients has a much more noticeable effect on page loading times)

Will definitely be giving it a try though

Posted by Gerry on December 23, 2012

GSAP is just amazing, jumping from as3 to js on different project doesn’t seem to be a daunting workflow anymore for a as3 centric interactive studio.

Posted by Pedro Paulo Almeida on January 2, 2013

Incredible. Simply perfect. Thank you so much! Guys, you rock!

Posted by Otkupljivanje zlata on January 21, 2013

AS3 + FlashDevelop = jQuery + GSAP + SublimeText2

Best tools for best web sites, my hat is off to you guys!

[...] For more info check out jQuery vs. GSAP: Cage Match [...]

Posted by Otkup Zlata on February 12, 2013

It’s wonderfull to have you on our side, haha!

Posted by Brett Freeman on February 18, 2013

Collie looks a solid entry into the animation javascript library as well. (http://www.adobe.com/devnet/html5/articles/introducing-collie.html)

I’d like to see a GSAP v Collie match up soon. :)

Posted by Jack on February 18, 2013

Brett, Collie is a very different beast altogether because it forces you to build things in a proprietary way (you can’t just animate regular DOM elements). When I added it to the speed test locally, not only was it slower (less than half the speed compared to GSAP in Chrome), but it seemed to have some problems that caused it to continue taxing the CPU even after stop() was called on the Renderer (and removeAllLayer() and stopAll()). All other tests slowed down after collie ran, so I’m not inclined to add it to the official speed test at http://www.greensock.com/js/speed.html. I’d encourage you to try doing a real-world project with it and see how it “feels” compared to GSAP – I personally found it incredibly cumbersome to work with. The API was unintuitive and I felt very constrained.

You can download the speed test with Collie here: http://www.greensock.com/js/src/3rd-party/collie.zip (let me know if I messed anything up in the implementation – this was my first time using it.)

Posted by Brett Freeman on February 18, 2013

Thanks for the quick response Jack. I hadn’t gotten an opportunity to use Collie yet, so I appreciate your giving it a go and trying the tests and especially your feedback regarding performance issues, proprietary nature and awkward implementation.

Cheers and thanks again to you and your teams great work!

[...] JQuery .animate() and CSS3 transitions and animations; cf. the Jquery-Death-Match and CSS3-Death-Match [...]

Posted by autopraonica on May 5, 2013

AS3 + FlashDevelop = jQuery + GSAP + SublimeText2

[...] heard about it, Greensock is a very powerful javascript animation framework which performs 20x faster than jQuery animations. I have been using it for a while now and can recommend it to all front-end [...]

Posted by GSAP – Javascript Animation | on July 17, 2013

[...] please have a look at these very relevant performance comparisons, whereby GSAP is pitted against JQuery and CSS3. Also, have a glance here for a more traditional speed test against other plugins such as [...]

To download the code, you must agree to the following license:

"NO CHARGE" NON-EXCLUSIVE SOFTWARE LICENSE AGREEMENT
-----------------------------------------------------------------------------
PLAIN ENGLISH SUMMARY:

  1. You may use the code at no charge in commercial or non-commercial apps, web sites, games, components, and other software as long as end users are not charged a fee of any kind to use your product or gain access to any part of it. If your client pays you a one-time fee to create the site/product, that's perfectly fine and qualifies under the "no charge" license. If end users are charged a usage/access/license fee, please sign up for a "Business Green" Club GreenSock membership which comes with a comprehensive commercial license. See http://www.greensock.com/club/ for details.
  2. Use at your own risk. No warranties are offered.
  3. Please respect the copyright.

-----------------------------------------------------------------------------

LEGALESE:

This is a legal agreement between you (either an individual or a single entity) and GreenSock, Inc. ("GREENSOCK") for the proprietary GreenSock code known as TweenLite, TweenMax, TweenNano, TimelineLite, TimelineMax, and other copyrighted code that is available for download at http://www.greensock.com (this code and documentation, as well as any updates which may at GREENSOCK's sole discretion be provided to you from time to time, are referred to in this Agreement as "PROGRAM"). By downloading, copying, or otherwise using the PROGRAM, you agree to the terms and conditions of this Agreement. If you do not agree to the terms and conditions of this Agreement, please do not download or use the PROGRAM.

I. LICENSE
A. Subject to the terms and conditions of this Agreement, GREENSOCK hereby grants you a non-exclusive, worldwide, non-transferable right to use the PROGRAM in apps, web sites, games, components and other software applications ("Developed Works") for which the end user is NOT charged any fees. If you would like to use the code in a commercially licensed Developed Work for which end users are charged a fee (either for usage or access), simply sign up for the appropriate "Business Green" Club GreenSock membership at http://www.greensock.com/club/.

II. LIMITATION OF LICENSE AND RESTRICTIONS
A. You agree that you will not sell, rent, or license the PROGRAM's source code or any derivative works thereof to any third party without the prior written consent of GREENSOCK. Distribution of the PROGRAM as part of your Developed Work is acceptable so long as it is used exclusively as a part of your Developed Work. You agree not to modify or delete GREENSOCK'S existing copyright notices located in the source code.

B. You may use, duplicate, and distribute the compiled object code as embedded in Developed Works created by you, either for your own use or for distribution to a third party so long as end users of the Developed Work are not charged a fee for usage of or access to any portion of the Developed Work. Please see http://www.greensock.com/licensing/ for descriptions of Developed Works that qualify for the "No Charge" license.

C. You may make modifications to the source code exclusively for your own use in order to perform bug fixes or other minor edits required to operate the PROGRAM as originally intended.

III. CONSIDERATION
A. The license rights granted to you under this Agreement are at no charge, but only in the following circumstances: If on your own behalf or on behalf of a third party you incorporate the PROGRAM into a web site, app, game, program or any component thereof (collectively, "Developed Work"), which in the case of a web site, must be accessible to internet users without payment of a fee of any kind, and in the case of a software application, game, program or component, neither you nor anyone to whom you distribute the Developed Work charges a user a fee of any kind to use such Developed Work or application, game, program or component into which such Developed Work is embedded. The foregoing shall apply regardless of whether you are paid to create such Developed Work.

B. In the event your intended use of the PROGRAM does not meet the criteria for the "no charge" license rights set forth in the immediately preceding paragraph, then you are not licensed to use the PROGRAM under this Agreement and must license the PROGRAM under GREENSOCK'S separate fee-based Software License Agreement which is granted to "Business Green" Club GreenSock members (see http://www.greensock.com/club/ for details).

C. You may make modifications to the source code exclusively for your own use in order to perform bug fixes or other minor edits required to operate the PROGRAM as originally intended.

IV. TITLE AND OWNERSHIP
A. The PROGRAM is licensed, not sold, and is protected by copyright laws and international treaty provisions. You acknowledge that no title to the intellectual property in the PROGRAM is transferred to you. You further acknowledge that title and full ownership rights to the PROGRAM, including all intellectual property rights therein, will remain the exclusive property of GREENSOCK and you will not acquire any rights to the PROGRAM except as expressly set forth in this Agreement. You agree that any copies of the PROGRAM you make will contain the same proprietary notices which appear on and in the PROGRAM. You agree that GREENSOCK may identify you as a licensee unless you make a written request otherwise. GREENSOCK hereby grants to you the right to disclose that your product, game, software application, component, or other Developed Work makes use of GREENSOCK code (for example, "Powered by TweenLite").

V. DISCLAIMER OF WARRANTY AND LIMITATION OF LIABILITY
A. THE PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. GREENSOCK DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE PROGRAM WILL MEET YOUR REQUIREMENTS OR THAT OPERATION WILL BE UNINTERRUPTED OR ERROR FREE. GREENSOCK shall not be liable for special, indirect, incidental, or consequential damages with respect to any claim on account of or arising from this Agreement or use of the PROGRAM, even if GREENSOCK has been or is hereafter advised of the possibility of such damages. Because some states do not allow certain exclusions or limitations on implied warranties or of liability for consequential or incidental damages, the above exclusions may not apply to you. In no event, however, will GREENSOCK be liable to you, under any theory of recovery, in an amount in excess of $250. Notwithstanding anything else in this agreement, you agree to indemnify GREENSOCK, its assignees, and licensees, and hold each of them harmless from and against any and all claims, losses, damages, and expenses, including legal fees arising out of or resulting from any negligent act or omission by you.

B. GREENSOCK may, at its sole discretion, provide support services related to the PROGRAM, but has no obligation to do so.

VI. TERMINATION
If you at any time fail to abide by the terms of this Agreement, GREENSOCK shall have the right to immediately terminate the license granted herein and pursue any other legal or equitable remedies available.

VII. MISCELLANEOUS
A. This Agreement shall be construed in accordance with the laws of the State of Illinois. In the event of any dispute between you and GREENSOCK with respect to this Agreement, we both agree that if we cannot resolve the dispute in good faith discussion, either of us may submit the dispute for resolution to arbitration with the American Arbitration Association before a single arbitrator using the AAA Rules for Commercial Arbitration. The arbitrator's decision is final and can be enforced in any court with jurisdiction over such matters.

B. This agreement represents the complete and exclusive statement of the agreement between GREENSOCK and you and supersedes all prior agreements, proposals, representations and other communications, verbal or written, between them with respect to use of the program. This agreement may be modified only with the mutual written approval of authorized representatives of the parties.

C. The terms and conditions of this Agreement shall prevail notwithstanding any different, conflicting, or additional terms or conditions which may appear in any purchase order or other document submitted by you. You agree that such additional or inconsistent terms are deemed rejected by GREENSOCK.

D. GREENSOCK and you agree that any xerographically or electronically reproduced copy of this Agreement shall have the same legal force and effect as any copy bearing original signatures of the parties.

Copyright 2006-2013, GreenSock, Inc. Updated 2012-08-28

I'd like to learn how to get bonus plugins, update notifications, SVN access, and more.
To continue, you must agree to the following license: