ericdrowell / KineticJS

KineticJS is an HTML5 Canvas JavaScript framework that extends the 2d context by enabling canvas interactivity for desktop and mobile applications.
http://www.kineticjs.com
3.98k stars 753 forks source link

Do we need a fork? #1052

Closed lavrton closed 9 years ago

lavrton commented 9 years ago

What is your thoughts guys? Do you need any support for KineticJS? Who is using KineticJS on what kind of projects?

pmuston commented 9 years ago

After Eric's fantastic work, it would be brilliant to see the project live on supported by a vibrant community. I am very nervous about relying on an abandoned project. I have been pondering about looking elsewhere, or to invest time in creating my project that is a subset. I only use a subset of the functionality and feel Kinetec would be too complex to maintain my own fork. Of course my prefered option would be for the project to get a new, active "owner"? I am not sure how these things works on github. Perhaps I could contribute. I am using Kinetec to build an internal tool which is very simple pipeline editor hooking together dataflows between predefined functions. I see myself extending and adapting it as requirements grow.

leohenning commented 9 years ago

It is in a good state currently and meets my needs. I feel each browser release brings improved performance. I think the need for kineticjs is still growing.

AlvinPLeung commented 9 years ago

I use it for a microchip company internal project.

Pmleader commented 9 years ago

I am currently in process of converting one of our companies main products to a webbased app where we heavily rely on Kinetic.

So far everything has been going perfectly with Kinetic as canvas framework. But I am scared for the future if Kinetic has no continued support and development.

dave-ledsign commented 9 years ago

I am using it as a critical part of a large project. Everything is working but I am nervous and am thinking about a rewrite of the critical part unless someone else is willing to pick up the ball. I don't want to write any more code for kineticjs just in case it breaks with future browser versions.

Arduinology commented 9 years ago

Same boat as @dave-ledsign , we as a community should come together and support this. Just noticed today that their site is all but gone along with the documentation I relied on. Lets get this moving, how can I help?

confile commented 9 years ago

At least we should write a migration guide from KineticJS to PixiJS (http://www.pixijs.com/) Pixi uses WebGL Renderer with canvas fallback so it is much faster than Kinetic. What do you think of my idea?

dave-ledsign commented 9 years ago

I hadn't heard of PixiJS before @confile, so I can't comment on its quality, but a quick look suggests it will have the future support I am looking for. WebGL is an example of the advancement in browsers that I need to keep up with, and I am guessing kineticjs is already behind and probably can't catch up now.

Arduinology commented 9 years ago

I had not heard of PixiJS before either, can anyone comment on their experiences with this? What sort of work would it take to migrate to it?

confile commented 9 years ago

As you can see here: http://jsperf.com/js-anim/28 Pixijs performs most of the time much better than any other lib especially KineticJs.

I suggest we open a github project which documents how to migrate to PixiJs.

I created a project for this purpose here: https://github.com/confile/Kinetic2Pixi

Anyone how wants to join can contact me and I make you a collaborator on this project.

bensquire commented 9 years ago

I'm in a similar position to @dave-ledsign and @Arduinology , kineticJs plays a pivotal role in quite a complex system... It'll take many many hours to port the existing codebase over. I suspect we'll end up running the current version until it becomes completely unfit for purpose.

lavrton commented 9 years ago

Hello everyone. I decided to create a fork. As a contributor of current repo I think I can support KineticJS in a new fork. Repo and link will be ready in ~ one week.

Pmleader commented 9 years ago

Hello, I'm very happy to read this! Our project is run completely with KineticJS and rewriting it would take A LOT of time. Much appreciated that you are taking initiative with continuing this great project!

pmuston commented 9 years ago

Excellent news. I spent a few days porting my code base to FabricJS, while discovering it was a poor fit for my use. KineticJS's rich eventing model works better for my use case (an object graph editor), allowing parents and children within the visual hierarchy to have different handlers. The convenience of switching on and off layers is a wonderful trick to be able to employ. While these techniques are reproducible in Fabric, but I found myself creating many more ancillary structures in my view model not related to my underlying model but to manage click targets when in a particular state and to compensate for Fabric's less rich event model. Eric did push forward the state of canvas frameworks to abstract this. So I'm on board to continue with this great project.

bensquire commented 9 years ago

@lavrton Many thanks for picking up the mantle, If I can help somehow then just let me know.

confile commented 9 years ago

I think moving to PixiJs is much more promising because Pixi has a much greater support audience. Pixi also has WebGL support which makes you app super fast.

So feel free to join our project to migrate a KineticJS app to PixiJS https://github.com/confile/Kinetic2Pixi

lavrton commented 9 years ago

@confile agree, PIXI (and Phaser) is really great. But it is different framework. In my opinion PIXI is best for games. But if you need a lot of "vector" graphics (such as text) you will have problems. This is my experience. I was thinking to move to Phaser in my main mind map application. In the app I need to draw a lot of nodes (with text) on canvas. It is possible to create custom graphics with PIXI. But for each graphics PIXI has separate canvas element in memory (You can not just draw text into webgl context, you have to convert text to image first, then you can display that image). So I had big memory leak. I was not able to find solution for this case.

dave-ledsign commented 9 years ago

Text in all kinds of fonts is the main thing I need. If Pixi is not great with text then that would be a deciding factor. I would like to help with Kinetic support if I can, at least until I know more about Pixi and/or other frameworks. I will be running my own tests and would like to hear as much as possible about anyone else trying out other frameworks.

pmuston commented 9 years ago

@lavrton from your use case, our needs are somewhat similar - graphs (of the nodes and edges variety). WebGL based frameworks do not fit my use case at all. If the gamers are going to split off to PIXI then it would inform the future direction of Kinetic if we had a good idea of how the remaining Kinetic tribe are using it. I could be an active (i.e. useful) contributor if the project's abstraction was to further advance support for its role as a "direct manipulation interface" view controller, rather than to say adding WebGL support. For example, I am using Kinetic as a view controller (rendering, hit testing and subsequent modal interaction) hooked up to my underlying domain model which holds the ultimate truth. An example is dragging from one connector to another creating an edge between nodes in the model. Adding native support for a model (beyond the visual hierarchy, as in MVC) would be an excellent direction.

bensquire commented 9 years ago

We're developing a tool that allows users to proof read (markup) documents. Which means we have potentially hundreds of shapes grouped which can be manipulated (moved, resized, have events attached to them). We render vector shapes and text on the canvas and rely on the ability to stack the canvases as well. The whole thing is then wrapped up inside angularjs.

screen shot 2015-01-09 at 14 51 17

dave-ledsign commented 9 years ago

If I could add something to the wish list for future work in Kinetic, it would be more documentation. Not just method names and parameters, but what methods actually do below the surface, what are best practises and why, and as many "Hello World + one feature at a time" examples and tests as possible. I should stress that everything is working for me at the moment (thx Eric), it is the long-term for Kinetic and my project that I am thinking about.

pmuston commented 9 years ago

@bensquire very nice!

confile commented 9 years ago

Okay I suppose this is the new base repo https://github.com/lavrton/KineticJS

@lavrton How active will you be in development and bugfixing?

Arduinology commented 9 years ago

Right now I am at an impasse, PixiJS has more performance (WebGL is just fast) but it does have issues with text. That being said I was able to get bitmap text in fairly easily once I found the tool for the job. The problem with PixiJS is that the text doesn't scale well, it is a linear scale for WebGL, this is supposedly going to be fixed but that was over a year ago. Text support just seems poor.

dave-ledsign commented 9 years ago

Bitmap text would not work for me. I need vectors so users can play in real-time with fill color, transparency and gradients, stroke width and color, shadows, etc. I am fine with converting fonts to vectors, but after that I need what Kinetic is currently doing for me. Can anyone comment on PixiJS vectors, or is it 100% raster at this time?

AlvinPLeung commented 9 years ago

My corporate internal app requires similar capability for Anton's mind map app. Rich event model is a must. Bitmap text with memory leak is a no go. I need the browser to stay healthy. It does not make sense to force my users to quit their browsers after using my web app.

Alvin

On Fri, Jan 9, 2015 at 9:06 AM, dave-ledsign notifications@github.com wrote:

Bitmap text would not work for me. I need vectors so users can play in real-time with fill color, transparency and gradients, stroke width and color, shadows, etc. I am fine with converting fonts to vectors, but after that I need what Kinetic is currently doing for me. Can anyone comment on PixiJS vectors, or is it 100% raster at this time?

— Reply to this email directly or view it on GitHub https://github.com/ericdrowell/KineticJS/issues/1052#issuecomment-69364462 .

lavrton commented 9 years ago

Hello everyone. I made a fork. https://github.com/konvajs/konva The homepage is http://konvajs.github.io/

maxkorp commented 9 years ago

Has anybody talked with Eric regarding posting a link in the readme?

bensquire commented 9 years ago

It did have a link up until 3 hours ago, but @ericdrowell seems to have removed it?

lavrton commented 9 years ago

Ops. I am really sad to see this... Waiting Eric's answer.