CreateJS / EaselJS

The Easel Javascript library provides a full, hierarchical display list, a core interaction model, and helper classes to make working with the HTML5 Canvas element much easier.
http://createjs.com/
MIT License
8.11k stars 1.97k forks source link

CreateJS Consortium #1040

Open danzen opened 4 years ago

danzen commented 4 years ago

Might we propose a CreateJS Consortium that helps with CreateJS updates? I suppose that is what GitHub and Open Source are all about. Perhaps if we recognize the need and the commitment it will help organize things.

I am committed to using CreateJS - if you have not seen ZIM yet, please have a look - it extends CreateJS with many conveniences, components and controls. Personally, I treat CreateJS as complete otherwise, growth would go in the direction of ZIM ;-) As a complete project, the focus would be on maintenance for example adjusting for various Browser and device changes - bug fixes, etc. A secondary focus might be improvements to existing elements - but in general, I think what we have is working great! There may be different visions?

@owendwyer @willkara @jedateach @djipco @dijitaletkinlikler and I am sure a bunch of others might be interested? Of course it would be nice to know @gskinner and team are on board. Not even sure exactly what we would be doing differently... but it would be good if we could get to know one another a little better and help each other out with issues, etc.

djipco commented 4 years ago

@danzen That is a great idea. Unfortunately, in my case, it might come a bit too late. I have been using CreateJS in class for a few years. However, seeing that development basically halted, it was becoming increasingly hard to sell its usage to my students (and fellow teachers).

That's too bad because I really liked the fact that it wasn't a gaming engine per se but more of an all-purpose engine. I also liked that it was based on the scene-graph approach which made it simpler to use (in various use cases) than other projects such as p5.js. Having said that, when we look at it objectively, many things now found in other engines never made it inside CreateJS.

Grant Skinner and his team have done great work with CreateJS but they seemed to have moved on... An example of that is the fact that the CDN version has been stuck on v1.0 even if many important fixes have been available in the NEXT version for a long time.

In any case, I really hope that you can find a group of talented people to move this project forward. Good luck!

Cheers!

danzen commented 4 years ago

Hi @djipco Jean-Philippe - thanks for your input. I feel the same way about CreateJS because it is not a gaming engine like PhaserJS and not as set in its ways as P5js and is more commercial facing. What we did when we wanted something extra is we built a library of extra code that extends CreateJS. Over five years, this became ZIM. We now have a CodePen Topic page which nicely demonstrates perhaps what you are looking for https://codepen.io/topic/zim please have a close look and hopefully, you might be able to stay in the family!

Yes... I have been seeing the gSkinner team working on Flutter. At first glance, I was concerned as it seems very hot and well supported, etc. Then I got looking into it... there is a lot of structure and perhaps more for power-coders. Certainly less free-form creation. So I concluded it was more for the Web Development community to make information apps which was never particularly what the canvas is for. I think we still need a general Interactive Media framework and as far as I can tell... that would be ZIM powered by CreateJS much like Phaser is powered by PixiJS. We just need to grow community and user-base.

Of course, Flash was a general Interactive Media platform... and Animate and CreateJS still work together for many. ZIM works with that too see https://zimjs.com/animate/ but personally... I prefer just coding without Animate. However, the tie between Animate and CreateJS is certainly helpful. Showing some action here might help that connection.

It is tricky when libraries/frameworks/platforms reach maturity. People see the lack of change as stagnation - it is really unfair. That is one of the things in my mind that caused the "death" of Flash. It was mature. The changes announced at conferences were minimal and beyond the immediate need of the audience, etc. I think the same to some degree has happened with CreateJS - it was built so well... that there was less of a need for new things. If you want new... that's what we did with ZIM... and now... we are reaching maturity... dum dum dum. We will probably stay at ZIM TEN.

I don't mean to go on about ZIM... it just might put things in perspective about the direction of CreateJS as to where it might have gone or help identify what CreateJS is and is not. At the moment, CreateJS minified is 240K and ZIM minified is 600K. ZIM has distill that lets you tree-shake to often somewhere around 100k. These numbers are probably pretty similar to Pixi and Phaser.

Anyway - blah blah - sorry for the essay.

djipco commented 4 years ago

It is tricky when libraries/frameworks/platforms reach maturity. People see the lack of change as stagnation - it is really unfair.

I'm not sure that's the case here. Maturity and stability are good things. However, with CreateJS many issues have been left unfixed in the "official", CDN-released version. Here's an example (among others). There are many outstanding (and verified) bugs still listed on GitHub, some of which are many years old.

If maturity was the goal, many little changes would also have been made over the years. For instance, why is it still necessary to cache shapes and texts displayed on StageGL? I don't really see why the engine forces us to do that manually instead of automatically caching these elements with sensible defaults. This is not in the bells and whistles department. Another example is the fact that addEventListener() does not work like the current living standard (no support for the options parameter). These are examples of small things that should have been ironed out in a mature version.

Just to be clear, I am not throwing blame here. I'm thankful @gskinner et al. brought this project to the open source community. But, obviously, they have moved on. To me, CreateJS is not currently in a "mature" state, it is in a "sunset" state.

Hopefully, if your consortium idea takes off, this could change and I would be happy to somehow participate!

P.S. Are you going to FITC Toronto this year? Maybe we can grab a beer and chat about all this! Cheers.

owendwyer commented 4 years ago

I'm happy to commit to this. I have content built with CreateJS that I'll need to maintain for at least 5 years. For me, the focus should be on maintenance and organization with the aim to keep the library working on all devices and browsers. It would be good to have a current version that is checked and tested by a range of people.

danzen commented 4 years ago

@djipco an FITC meet sounds nice. I may not officially attend, but would love to meet for lunch. We can work out details - give me a message at door@danzen.com - anyone else, I am sure would be welcome - the dates are April 19-21https://fitc.ca/event/to20/

danzen commented 4 years ago

A list of issues that folks have on their minds might be good to compile with links to the issues here if on GitHub. I mean, that's GitHub issues in general... but as Jean-Philippe says, there are many. Unfortunately, I suck at pull requests... but I guess I can learn. Then we need some idea from @gskinner and team as to what to expect on their side or how we might deal with things. I have had a promising e-mail about a month ago - I will see if I can rekindle this. In the mean time - initial thoughts from some others would be great.

danzen commented 4 years ago

BTW - I mentioned Grant and team working on Flutter... I saw a tweet of theirs pointing to https://blog.gskinner.com/archives/2020/02/flutter-creating-a-flippable-card-with-tweenanimationbuilder.html - so rebuilt something like it in CreateJS and ZIM at https://codepen.io/danzen/pen/gOpwWbY - the Flutter code is commented at the bottom of the Pen and aside from it being TWICE as much code... I really do get the sense of complex structure (and some complex words). Probably it is easier to just use out of the box things... but even the ones I was looking at can quickly get complex - I went through about 60 short tutorial videos.

With respect to the Flippable Card example, it will be nice when the Canvas adds a row and col to the matrix to get perspective... will that happen? That actually brings up another point here... where is the "marketing" from the HTML world for the canvas? It was all buzz buzz buzz for a year and then almost total silence from Browsers companies, etc. Am I wrong?

dijitaletkinlikler commented 4 years ago

hello, because files published with adobe animate use version 1. pressmove will not work on windows touch screens. it is very interesting not to notice this. Either users do not use windows touch screen or do not care about adobe. Someone with little knowledge of javascript like me is trying to find solutions to createjs problems. as if there is trouble. If I can see the problems, it is impossible for Grant and his team to not see the problems. But with the decision I see, Dan works. Great things can be done with Zim.

jedateach commented 4 years ago

My use case is building a web-based designer tool: text + shapes + images. I'm investing a bit of time in txtjs, which another abandoned createjs based project to try and ensure cross-browser font rendering consistency. I've also been working on a free transform tool. I need node (server rendering) support.

I've put all my efforts under a new org, thinking along the lines of a consortium: https://github.com/ReCreateJS I'm trying to configure the projects with good tests, and CI/CD via Travis.

I'm for bringing new life to CreateJs and related projects, as long as it is governed with quality standards, and could be brought back in line with gskinner, should they re-emerge.

I'm moving off Raphael.js, which is based on svg. I have assessed fabric.js, and pixi.js as options. Fabric is reasonably featured, but stuck on a non-esmodules class system. Pixi seems too geared to games.

The lack of maintenance/ownership of createjs does concern me. I'm prepared to move to a better tool, if I am convinced something is more suitable, but I need to start settling down.

danzen commented 4 years ago

So - here we are after a few days... perhaps we are a Fellowship? While we wait for some others to comment... let me try contacting Grant and see if he has any suggestions for us. Will let you know how it goes.

varyndev commented 4 years ago

CreateJS was considered an open source project, but it was completely under the stewardship of gskinner and PRs were only accepted if they chose so. Any form of a roadmap was completely managed and controlled by them. Moving this project to community development would require some considerable changes to strategy and stewardship. Before considering this Fellowship idea any further we really need to hear from someone who currently maintains the control over this repo over what they see the future is or should be. Maybe gskinner has plans and scrubbed them or postponed them or just all together moved on. We need to understand that first before we can determine where this is going.

@lannymcnie @gskinner - any comments?

gskinner commented 4 years ago

Hi everyone

Apologies for not chiming in sooner.

I am very interested in supporting this movement. I have absolutely loved building CreateJS, and really want it to have a long and healthy life. Unfortunately, with the lack of any (direct or indirect) monetization model, and little to no support from Adobe, we've never found a way to justify it from a business perspective.

That means updates happen only when appropriate members of our team are sitting idle. In the past year, we've been keeping super busy - good for gskinner, but bad for CreateJS.

We are all too aware of this. It has been super frustrating to be sit on a bunch of updates that have yet to make it into a released build. As a result, I reached out to Dan in December to get him thinking about how the community could become full participants in the library's future, and was thrilled to see him start this thread.

It probably goes without saying that I have never managed a transition like this, so I'd appreciate any thoughts or idea on how this might go.

Me, and our team would continue to contribute as possible - we would likely be a lot more active, without being weighed down by the sense that the "next big release" seems like too large of a mountain to climb given our fragmented availability. If we can get some community momentum, I'll work to free up our dev time to be more active where possible as well.

Let me know whatever I can do to help, encourage, and support. I'd be proud to be a member of a thriving CreateJS community, instead of a founding dictator. :)

Best, Grant.

paulmignard commented 4 years ago

@gskinner - Thanks so much for the update, we use createJS in some capacity and it's so nice to hear something other than silence! 👏

ROBERT-MCDOWELL commented 4 years ago

@gskinner The best moments of the web was when you were creating wonderful Actionscript 2/3 classes and I'm the one who discovered your nice work, then google inc. demons with unlimited money and steve jobs killed everything.... Well, not everything since webassembly is coming and a lot of rebirth will happen (check ruffle) and javascrap will be the worst language to develop for the web.

danzen commented 4 years ago

Thanks Grant - that response brought tears to my eyes... the eyes that see code 80% of my waking life. I would propose that we start a Slack channel to help organize this. I have been running ZIM community on Slack as well as our Sheridan Interactive Media... and am a member of CodeCamp Hamilton and 100DaysOfCode - it is really easy to set up and use. If this post gets a few thumbs up, I will create the workspace and provide an invite link here.

carlschooff commented 4 years ago

Thanks for popping in @gskinner. Great to hear something official. I've have had very high hopes for CreateJS / EaselJS since Pirates Love Daisies. Really enjoyed playing that too.

It's a real shame that Adobe (the company, not the Animate dev team) hasn't taken CreateJS, Animate, or its users seriously in a very long time. With Flash Player finally being phased out in all the browsers this could have been a HUGE opportunity to flaunt the powers of Animate + CreateJS.

Regardless of the current state of CreateJS and Adobe's lack of concern, I still believe the Animate + CreateJS + GSAP combo gives people an amazing toolset for generative art, scripted animation and interactive gizmos. There's nothing else like it.

It's absolutely amazing what @danzen has been able to do with ZIM. Adobe should be stumbling over itself to throw money at that project, especially with its focus on kids / education / creativity. ZIM really makes CreateJS shine and I'm glad to see it being taken to the next level.

I totally understand that it isn't practical to maintain CreateJS without time or funding. Hopefully the community can find a solution that allows it to be enhanced, documented and supported. Thanks for doing all you did to give us old Flash guys hope for a second life.

jedateach commented 4 years ago

A slack sounds useful, and worth setting up. I'd be less able to contribute in real time, but rather in stops and starts, given my timezone and available time.

An RFC process will help for making clear, collective decisions. Here's Emberjs' one https://emberjs.github.io/rfcs

jedateach commented 4 years ago

Has anyone here got experience setting up governance of an open source project? I read https://producingoss.com a while back, which may have some good guidance.

danzen commented 4 years ago

Hi folks, here is an invite to a CreateJS Slack Workspace. Please join here: http://shorturl.at/lISY9 and make an avatar for yourself ;-). I have added a few channels and a couple posts under planning. For the most part, discussion should happen there rather than here. Any new folks to the issue, are welcome to post here to say hi... or just come on in to Slack. At this point, the more the merrier.

jedateach commented 4 years ago

That short url doesn't appear to work?

owendwyer commented 4 years ago

I had a read through the book recommended by jedateach and made some notes on things that would be good to think about. Note, I'm not looking for answers to these questions here now; rather, just stating that they would be good to consider.

How will this consortium be organized? The word consortium implies more of a 'consensus based' approach than 'benevolent dictator model'. But then, will voting be necessary as a last resort? And how would that work? Would it be best to have someone from GrantSkinner have a final say? Then also, who gets commit access and who decides who gets commit access?

How would a future release be managed/owned? How would release candidates be tested? Would it be good to have an overall project lead? Would someone from Grant Skinner take responsibility for formal releases?

In terms of a distribution mechanism, how would a future release be made available? What about maintaining and updating https://createjs.com/ ? Same question for the tutorials and documentation.

I think a development status page would be useful too. It could show the current status of the project, releases, how to participate, bug fixes, etc.

The book also talks about setting the tone early and how it is important to get good social norms at the start, so that you set precedents and expectations for the future. 'Foster a collaborative mood' was a key takeaway for me.

danzen commented 4 years ago

Okay - worked in FireFox and not in Chrome - weird! I tried again: https://shorturl.at/frxEU and this seems to work in Chrome. Or here is a long URL https://join.slack.com/t/createjs/shared_invite/enQtOTY5NDM1Mzk5OTM2LWE1NzZhMzA3Yjk3YWQxMmY2MDI1MjA5YTU2Y2EwMThhNTVjMWU2NmE1ZGQ5MTMzMDU1OWY0OGZmMTUxYzg3Mjg If this does not work, I can send out invites to e-mail addresses.

danzen commented 4 years ago

@owendwyer - let's move those excellent thoughts in to the Slack assuming we can get in! Is my dictator tone good for collaborative mood ;-).

joao-cesar commented 4 years ago

Hi!

Thanks, danzen, gskinner, and everybody else for providing all this useful information.

I was worried about the future of this suite but now I'm glad to know that CreateJS will keep moving forward.

And I want to contribute in some way.

Going now to Slack!

Thanks!

nicolasgoudard commented 3 years ago

UP ! So ??? What about CreateJS ? I am a developper who uses Create JS for all my projects. I have chosen this Library because it was recommended by Adobe and Microsoft, and because I translate old AWT Java projects and some CreateJS functionality are similar to select shapes in the canvas. But there is not update now ??? What about the future ??? I am worried too much !!!! Why the developers don't want work anymore on the project ? I see another alternatives as FabricJS or Konva but there is not a big team... What about another alternative ?

owendwyer commented 3 years ago

Hi Nicholas,

I'm in a similar position to you - lots of CreateJS projects that need to be maintained.

Unless I'm mistaken, support from Adobe has been non-existent for a long time now, and that is the main reason for the lack of work/updates. However, CreateJS is still useful and generally a solid library to use.

My plan for the future is to monitor the Github and stay engaged with maintenance and fixes, so that my stuff keeps working on all browsers. This is not something I'm all that worried or concerned about. From time to time, issues will arise, but they will get fixed because the need for them to be fixed exists. My guess/expectation is that CreateJS content will continue to work well for at least the foreseeable future (5+ years).

For future projects, I'm working with Pixi.js and want to try out Konva too.

nicolasgoudard commented 3 years ago

Hi Nicholas,

I'm in a similar position to you - lots of CreateJS projects that need to be maintained.

Unless I'm mistaken, support from Adobe has been non-existent for a long time now, and that is the main reason for the lack of work/updates. However, CreateJS is still useful and generally a solid library to use.

My plan for the future is to monitor the Github and stay engaged with maintenance and fixes, so that my stuff keeps working on all browsers. This is not something I'm all that worried or concerned about. From time to time, issues will arise, but they will get fixed because the need for them to be fixed exists. My guess/expectation is that CreateJS content will continue to work well for at least the foreseeable future (5+ years).

For future projects, I'm working with Pixi.js and want to try out Konva too.

I didn't now Pixi, I think it should be a good alternative because some functionalities are similar (hit area, primitives) and there is a big team. Some people talk about D3.JS too... Sorry I am French my English is not good

danzen commented 3 years ago

@nicolasgoudard - my interpretation of CreateJS is that it is complete. It was built to provide a base to developers that improved the canvas. If you are looking for advancements in the CreateJS world, please have a look at ZIM https://zimjs.com where hundreds of features have been added on top of CreateJS (see a partial list below). Over the five years of development, we have only had a couple issues with CreateJS and these have been solved. In other words, CreateJS is very solid. Please do not mistake lack of new things as a weakness. In general, you do not want to keep adding to a base. The base should be stable. However, a base does need to be maintained to make sure that it keeps working and there can be improvements as new technologies get introduced to the browsers or the canvas. We have a large investment in CreateJS and have offered, with others, to help maintain it. The organization of this has started already and updates will start happening over the summer. We are working things out.

In the meantime, please see if any of these features might be of interest to you:

masandoval commented 3 years ago

@danzen I'm interested in joining the CreateJS Slack you have setup. If it is still active, could you provide an updated invitation link? Thanks in advance.

danzen commented 3 years ago

Hi @masandoval here is an invite link - say hi in the #general section! https://join.slack.com/t/createjs/shared_invite/zt-geomglro-4v3x4817xVRe61A~JvTjMw

nicolasgoudard commented 3 years ago

Hi @masandoval here is an invite link - say hi in the #general section! https://join.slack.com/t/createjs/shared_invite/zt-geomglro-4v3x4817xVRe61A~JvTjMw

the link is not available.

danzen commented 3 years ago

Hi @masandoval - here is a new link (they expire after about three weeks) https://join.slack.com/t/createjs/shared_invite/zt-hibqyfrn-4a9_9V_xITRtLJ8d_63ALA See you there!

nicolasgoudard commented 3 years ago

UP. If nothing is done to improve Bootstrap JS I think I will migrate to PhaserJS or Pixi

danzen commented 3 years ago

Hi @nicolasgoudard - would you like to join us on Slack and perhaps we can work together with the others there to solve the BootStrap JS issue you are mentioning. https://join.slack.com/t/createjs/shared_invite/zt-kpw8ejsw-3IM6cKCaKUiugK__zdJnSQ

dblrsk commented 3 years ago

@danzen, would you be so kind as to open another invite link? I'm interested to see if there's been any movement with regards to community support or stewardship. Thanks.

danzen commented 3 years ago

@dblrsk sorry for the delay - missed this message. Have adjusted this link to not expire! https://join.slack.com/t/createjs/shared_invite/zt-ob9c68wy-zC_Gp5LAm3DS0r6ZjiEl6g