Oracle Blog

Programming

Round 3 - Usability

Although our long term objective with this project included incorporating Anthony's tool design, given our available resources (1 artist, 2 programmers), our short term objective beginning last December was to create a multimedia production system consisting of just Maya + Photoshop + Illustrator + Scripting, with the intent of eventually sticking Anthony's tool in the middle, and have it incrementally assume some of the work performed in Maya/Photoshop/Illustrator and some of that performed by scripting.

2D Usability

As mentioned, due to performance and functionality requirements, this is fundamentally a 3d system. Nevertheless we expect to be able to script 2d graphics with the same ease or better, as compared to javafx 1.x.

Although, it's based on a 3d scene graph, the user experience of creating 2d-only content is quite similar to that of javafx 1.x, for example:

The Camera2D provides a parallel projection with pixel coordinates corresponding to the coordinate system normally used in 2d, and lighting is turned off.

There are a number of discrepancies, however. As mentioned, we use linear algebra directly, so concatenation of transformations is represented by multiplication, rather than by a JavaFX script sequence as in javafx 1.x. Matrix constructor functions are provided for convenience:

We (as humans) often prefer a relative origin in describing 2 dimensional and 3 dimensional objects, e.g, "from the top", "from the middle", "from the front". In this system, based on artist input, by default most 2d objects have the origin of their vertices at CENTER/MIDDLE. However, this can be overridden declaratively. This includes the above mentioned rectangle, so in actuality to make it correspond to a rectangle in javafx 1.x, I'd write:

In this case I've declared Button's baseline to be that of the text it uses as a label. Then, simply by declaring a Button with a baseline origin, I can automatically align it with text or other elements which have meaningful baselines, regardless of font size, as in the following snippet:

As you can see in this picture the button is properly baseline aligned with the orange and the white text.

As a side note, this system has no UI controls, by artist decision. Whenever they need them, the artists want to create their own buttons, sliders, and etc, Nevertheless, the system does have all the capabilities to support so-called UI controls if such were desired.

There's a lot more I could and should say about expressing 2d graphics in this system, but that will have to wait for a later post.

Thanks for blogging about this project. Personally, it sounds more like cutting-edge work which I felt has been missing from the official JFX releases to date. I guess the obvious question I have it--will this be released as open source? I assume the answer is "no", which is too bad--I hate to see hard work like this go to waste.

Alternatively, maybe you could get the OK to post some videos online so we could see how good the rendering was (outside of just static images).

In my opinion, the same approach can be used for enterprise software tools integrated with Web Services as in Sun Java CAPS. Note that as above nobody is going to say "Hey, here you go, why don't you test your enterprise tools on my enterprise". Instead in each case we need to simulate the enterprise software problem that our tool is supposed to solve. http://www.aygulum.nethttp://sohbetcide.com

In my opinion, the same approach can be used for enterprise software tools integrated with Web Services as in Sun Java CAPS. Note that as above nobody is going to say "Hey, here you go, why don't you test your enterprise tools on my enterprise". Instead in each case we need to simulate the enterprise software problem that our tool is supposed to solve.http://www.memleketchat.com