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.


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

Reply via email to