Hi Lalonde, I have been using Piccolo2D for several years and recently was interested in a javascript version. I pulled down piccolo2d.js and it seems to work.
I was wondering what the current state of it was. I noticed there hasn't been any activity on it since 2010. Has the community kinda of given up on it or is something else replaced it? I have checked out several other javascript scene graphs but I am still kind-of partial to piccolo2d. Cheers. On Tuesday, May 4, 2010 3:48:56 PM UTC-4, allain wrote: > > Hi Lucas, > > I'm glad someone else has some interest in pushing piccolo2d in that > direction. > > You may want to take a look at the source code in the repo there's an > entire branch dedicated to doing pretty much what you're talking > about: > http://code.google.com/p/piccolo2d/source/browse#svn/piccolo2d.js/trunk > > You may also want to see it in action at > http://www.machete.ca/piccolo2d.js/ > > I'd love to collaborate on pushing it forward. > > Let me know, > > Allain Lalonde > > On May 4, 3:32 pm, lucasjordan <lucasjor...@gmail.com> wrote: > > I seem to have started down a possibly foolish path and I wanted to > > get some feedback. I have started porting Piccolo to the new HTML5 > > Canvas API. Mind you I am only a few hours into this, but here are my > > thoughts up to this point. > > > > After reviewing the Canvas API I noticed that it is rather similar to > > Graphics2D, which makes sense since it is solving a similar problem; > > writing raster graphics. I have not had the chance to do a feature by > > feature comparison, so there is probably something missing which will > > bit me down the road. > > > > After looking at the implementation of a number of the PNode > > subclasses, it looked to me like a number of them could use Canvas to > > accomplish at least a similar visual effect. Things like PImage and > > PPath looks like they should work and hopefully PText will work as > > well. I suspect PHtmlView will never work, but maybe that's ok. > > > > Basically I am using GWT to take as much of the Java Code from > > Piccolo2D and use the project gwt-canvas to provide the Graphics2D > > type functionality. Since Piccolo depends so heavily on java.awt and > > java.awt.geom and the awt packages are not supported in GWT I am > > including a copy of those source files in the GWT project. For > > example, Piccolo depends on java.awt.Rectangle, so I copy the existing > > Rectangle class to a java.gwt.Rectangle and simply change the import > > statement in the Piccolo code. > > > > Copying the awt classes looks like it is going to work in general but > > there are few problems which have shown themselves. First, most of the > > geometry type classes (Rectangle2D, Point2D, etc) only depend on them > > selves and java.lang.Math, so this makes them viable classes to be > > used with GWT, but some of them depends on internal sun.java.bla.bla.* > > classes, which I don't currently have the source code for. The second > > problem as I have not had a chance to review the legal issue in > > reusing Oracle's code in this way. I has occurred to me I might have > > better luck taking the code from Apache's project harmony, but again I > > have not gotten that far. For that matter I am not sure about altering > > the Piccolo2D code either. > > > > It is my intention to make all of the work I am going here as free as > > possible, so if someone has some experience with this, helping me make > > sure that everyone's licenses are being properly honored, please let > > me know. > > > > Another concern of mine is that Piccolo does a lot more than just draw > > a scene, it also provides node picking and other input events, I am > > not sure how well that is going to work. A HTML5 Canvas element is > > able to receive mouse and keyboard events, I just don't know if those > > will be descriptive enough work with the existing Piccolo APIs. > > > > Another issue is that JavaScript (which GWT code ultimately becomes) > > does not support a double precision floating point values. GWT allows > > you to use Java doubles in your code, but behind the scene they are > > actually using two single precision float values to store the data and > > they do some magic to manage those values for you. It is stated in the > > GWT docs that this includes some overhead. So, since I am basically > > copying all of the awt classes, I could just turn every double into a > > float and then do the same to the piccolo code.... I have not started > > doing this, but this is another topic I would like some feedback on. > > > > So those are basically my technical concerns up to this point. But you > > might be asking, "why are you doing this?" and basically it comes down > > creating a cross platform scene graph API. I have worked with Piccolo > > in the past and know that it is a solid scene graph API. I have also > > worked a lot with JavaFX and know that that brings an excellent scene > > graph API as well, plus it has properties and value binding, it is a > > real pleasure to work with. But both of these APIs are dependent on > > the presence of a modern JVM and frankly I don't see a real JVM > > showing up on the devices I want to develop for. But on all of the > > devices I want to developer for there is HTML5 compliant browser, this > > includes, all desktop computers, Apple's i products, set top boxes, > > Android and any other future google device, and many more. > > > > I considered SVG, which also has pretty good cross platform support, > > but there are limitations, especially coming from the Microsoft side > > of things which claim they will not be including the animation > > features. > > > > Anyway, thanks for reading all this, I would love to get a reality > > check here :) > > > > -Lucas > > > > Resources: > http://www.piccolo2d.org/http://code.google.com/webtoolkit/http://code.google.com/p/gwt-canvas/http://harmony.apache.org/ > > > > > -- > > Piccolo2D Developers Group: > http://groups.google.com/group/piccolo2d-dev?hl=en > > -- > Piccolo2D Developers Group: > http://groups.google.com/group/piccolo2d-dev?hl=en -- Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en