top | item 13419665

Mo.js: motion graphics toolbelt for the web

406 points| hunvreus | 9 years ago |github.com | reply

62 comments

order
[+] alfonsodev|9 years ago|reply
I think it's worth to check the workflow video[1], how it is to actually build those animations. It really surprised me positively! [1] https://vimeo.com/185587462
[+] timdorr|9 years ago|reply
Wow, I'm surprised mojs-player and mojs-curve-editor aren't right at the top of the README and the website. Those are awesome tools!

The best part is they don't try to do too much. Since you invoke them via code, not some all-in-one editor, that makes it much easier to go back to your code when you're done. I feel like that transition is most of the problem when dealing with other tooling (see Photoshop's "copy layer style as CSS").

[+] sago|9 years ago|reply
Wow those embedded curve editors with copy and paste conversion into final code are a terrific idea. I've not seen that workflow before, but it is inspired!
[+] teej|9 years ago|reply
This is really impressive. It helps that whoever is building these is clearly really talented in 2d animation.
[+] gshulegaard|9 years ago|reply
That workflow is amazing! TYVM for the link.
[+] legomushroom|9 years ago|reply
Hi guys, happy to see `mojs` here! I'm the person who've started the project and would be more than happy to answer any questions you have.
[+] jianshen|9 years ago|reply
This is a bit off topic but I'm curious what your background is in? I noticed that not only is your visual design good but also your sound design as well. Were you in animation and media and decided to pick up coding or the other way around?

In any case, thank you for creating this and hope to see this project continue to grow.

[+] Nadya|9 years ago|reply
I've been following this project since the very first time I saw it on Codepen [0].

You've done an amazing job creating an amazing library. One that I advertise every opportunity I get. Thank you!

[0] http://codepen.io/sol0mka/pen/ogOYJj

[+] jastanton|9 years ago|reply
How does a project like this get started / maintained? It's incredibly well done, looks like a ton of work went into it. Is it a side project or apart of some bigger org?
[+] alfonsodev|9 years ago|reply
Can you recommend a resource for understanding conceptually the basics of animation applied to UI ? I'm thinking something similar to how Google explains material design animations[1] I'm always afraid to introduce animations, I'd like to know if there are some principles I could apply to create something with "good taste"

[1] https://material.io/guidelines/motion/material-motion.html

[+] smrtinsert|9 years ago|reply
Say I have three circles moving somewhat randomly through the screen. How do I draw lines through them so they form a triangle?
[+] usaphp|9 years ago|reply
Why in 2017, where we have 8 core processors and 1080 videocards and games that look like real life, even my 2016 high specs rMBP starts to blow fans full speed and lag whenever I try to run this basic animation in the browser, why these basic web animations require so much processing??

btw Great job with this project, I am going to use it for some ui elements in my projects, I especially love the twitter stars animation.

[+] demarq|9 years ago|reply
Are you talking about Mojs animations or web animations in general?
[+] have_faith|9 years ago|reply
A combination of JS and the DOM. The latter being the main culprit if you're moving actual dom elements as opposed to canvas or webgl.
[+] Geee|9 years ago|reply
Must be something wrong with your computer / browser. With my 2011 iMac it is absolutely smooth, and there's no increase in CPU use. It's the same on iPhone 6, and it doesn't warm up at all.
[+] mtrycz|9 years ago|reply
I have a recurrent issue where I have two graphics cards in my laptop (it's practically a standard for years now). A decent high power card, and a simple low power card maybe integrated into the processor.

When you start an application, one of the two cards will handle that application.

I generally can't my browser with the high power card; probably because browser vendors don't want to sacrifice battery life all of the time for some fancy effects a small slice of the time.

But I'm no expert. Chrome seems to handle things better than Firefox, that's why I still have it.

[+] afghanPower|9 years ago|reply
Advanced js animations lag on my desktop computer. (GTX 1080, 16GB RAM, i5 2500k). Javascript apparently isn't that efficient for calculations.
[+] mixmastamyk|9 years ago|reply
I'd guess that javascript is not as fast as C++, and the animations are not hardware accelerated.
[+] alpb|9 years ago|reply
Slightly off-topic, Chrome on my early-2015 MacBook (16GB RAM) lags significantly while rendering most of the demos listed in the repository. If things like this become the norm on the web, one can easily claim that such technologies are not inclusive to most users of the world-wide-web, who do not buy a new latest&greatest desktop computer every 2 years.
[+] legomushroom|9 years ago|reply
`mojs` definitely was created to support old and slow computers(it supports FireFox from version 4 and IE9).

The problems usually with the Chrome browser because it updates frequently and the Chromium team changes it a lot, so what was recently woking well might not work well right now. And problems like these are usually regard rendering performance and CSS transforms. So the issues you might see are related to the demos itself(not library) which were highly optimized for recent browsers' engines and those changed. I will revamp the demos shortly to keep them up to date.

Also, I often found that heavy animations work much better on mobile devices like iPhones than at my MacBook Pro mid 2012.

[+] stymaar|9 years ago|reply
Weird :/

It works well in Firefox on my desktop from 2009 (with 4GB of DDR2) … Do you also have performance issues in Safari or Firefox ?

[+] tothepixel|9 years ago|reply
On a mid-2011 MBP with severe performance issues running stuff like Atom, but these animations work fine for me with zero lag. Something is wrong with your computer.
[+] lukaszkups|9 years ago|reply
I have a Zenbook UX32LN from 2015, with 12GB RAM, elementaryOS linux installed as a system, and on Firefox they work like a charm! Try it on different browser or update chrome?
[+] Gikoskos|9 years ago|reply
Is "toolbelt" an actual term for a piece of software? Every single week I see another github project with a completely new term, similar to this one. If it's real what does it mean?
[+] jianshen|9 years ago|reply
This is a fantastic library but one warning based on past experiences is that you'll hit performance bottlenecks for full screen type animations on mobile browsers. I ended up re-writing some of my animations in plain old CSS3 transitions to utilize the GPU on Chrome for Android but this library made it so much easier for me to visualize on the desktop first.
[+] pedalpete|9 years ago|reply
Are you saying you're re-writing SVG animations into transitions? I thought SVG was more performant, but can't seem to find metrics and comparison benchmarks
[+] colordrops|9 years ago|reply
I wonder why this lib doesn't use CSS transitions.
[+] jaimex2|9 years ago|reply
Another powerful animation library for the web with the same issue they all have: I can't give this to my graphic designers to use.

Am I the only one who thinks we killed Flash and left a void which no one has filled yet it terms of animating with an intuitive UI?

[+] Kequc|9 years ago|reply
You're remembering flash with rose tinted glasses I think. It is completely horrible. If what you want is an animation, render a mp4. If what you want is a responsive interface css3 and js animations more than fill the void.
[+] szx|9 years ago|reply
I would love to see motion and animation get more attention and love from the JS community, but at the same time I shudder at the potential for abuse.

How do you build a powerful tool and avoid that side effect? D3 is one example I can think of for a very powerful, yet constrained and focused tool (I would say opinionated but that word has lost all meaning).

[+] sandebert|9 years ago|reply
Is it for desktop only? Tried it on my mobile and nothing happened. Android 7.1.1 with Chrome 55.0.numbers.
[+] sandebert|9 years ago|reply
Now I tried it on my desktop, found the same demos to be not working. Kind of strange, because my desktop != my mobile. Finally figured out that I actually had to CLICK somewhere for something to happen. Easy to miss after seeing ~10 auto-playing demos, I suppose. Still: D'oh!

ALSO: Very cool, well done.

[+] smrtinsert|9 years ago|reply
Works on my updated Android 6x, latest chrome.
[+] _blrj|9 years ago|reply
Awwwards participants have been creaming themselves since this has been released. Good to see how much progress it's made. It's certainly right there next to GSAP as a designer tool.
[+] KaoruAoiShiho|9 years ago|reply
Can you talk a bit about how this compares to GSAP as a designer tool?
[+] mendeza|9 years ago|reply
Amazing work! What was the motivation for this project? Was it that motion graphics tools for web don't exist, or the tools that exist weren't good enough?
[+] albertTJames|9 years ago|reply
One of those days you really love HN :) This looks amazing
[+] adamredwoods|9 years ago|reply
The demos look nice, but I'm not a fan of dependencies (Babel or Stylus). Are there any raw js + css code examples?
[+] ssiddharth|9 years ago|reply
This looks extremely well done. Great job with the docs too! Gives me something to dig into over the upcoming weekend.
[+] invious|9 years ago|reply
holy moly so much code for the demo animation