Chris Oliver's Weblog
- All
- F3
- JavaFX
- Programming
- Research
The real slim shady
The below are a few examples from a project I've worked on for the past 1+ years - all written in javafx script (and all run at 60fps) with a modified compiler and from the ground up custom runtime written by me and a few others - one of them Ken Russell - who sadly just left Sun. We weren't able to obtain the support we needed for this project to continue, which took its toll. For those of you who may be disappointed about this - as I am - you can blame me. It was my job to be persuasive enough to gain sufficient support for our efforts, and in the end I wasn't able to do that.
Extruded text with 3d physics animation
Physics animation with hinge constraints
Vanilla 2d vector graphics


Interactive, animated 2d vector scene inside a 3d model. 60 sec screen capture. Note the screen capture does not reflect the smoothness of the actual animation.
Particles
XHTML rendered with fixed-function 3d graphics primitives (uses Flying Saucer for layout)
The interesting part in this context is that on layout the entire document is baked onto one set of vertex arrays. The minimal number of draw calls are then issued based on overdraw requirements and texture mapping, yielding high performance - in this case around 5x that of webkit
GPU rendered antialiased 2d vector graphics with perspective transform
3d blend shape animation

Normal maps imported from Maya
Posted at 09:27PM Jul 08, 2009 by Christopher Oliver in Research | Comments[39]
Interesting stuff. Can you tell us more about the goal of the project and what will happen to the effort now?
Posted by Pär Dahlberg on July 08, 2009 at 11:34 PM PDT #
Interesting? This is awesome! Will we see any of this in JavaFX? Where did Ken Russell (who did an excellent job with JOGL) go?
Posted by pron on July 09, 2009 at 01:56 AM PDT #
Chris,
looks good. Where did Ken go?
Posted by Thom Theriault on July 09, 2009 at 03:37 AM PDT #
Google?
Posted by Robbin Banks on July 09, 2009 at 05:18 AM PDT #
Very impressive and unfortunate. Was that prism, chris ?
Posted by Rémy Rakic on July 09, 2009 at 05:46 AM PDT #
re: @myself, i guess it is prism, i didn't notice the name was in the first screenshot. That's very unfortunate, i was eagerly waiting for it. Is there anything the community can do to help ?
Posted by Rémy Rakic on July 09, 2009 at 05:52 AM PDT #
Hi,
Does this have something to do with scenegraph 3d?
I am eagerly waiting for scenegraph3d do you know something about it?
Posted by Pedro Duque Vieira on July 09, 2009 at 06:23 AM PDT #
@Rémy Rakic:
Take a look at this: http://kenai.com/projects/openjfx-compiler/sources/soma-master/revision/5192
Posted by pron on July 09, 2009 at 07:18 AM PDT #
It's really sad to hear that this project is being delayed (or discontinued?). Somebody has got to stand up to all this Chrome OS/HTML 5 insanity out there. JavaFX is our best shot, keep making it better. It would be a "day of infamy" in technology the day we are reduced to only using Google HTML5 to write UI apps.
Posted by Mike Azzi on July 09, 2009 at 07:47 AM PDT #
@Remy
No, this project was separate from "Prism".
Posted by Christopher Oliver on July 09, 2009 at 08:56 AM PDT #
Ok thanks chris, still, that's too bad. I'm sure the guys at JGO would love to have the kind of power those screenshots imply.
Posted by Rémy Rakic on July 09, 2009 at 09:26 AM PDT #
I would like that power also for doing 2D animations mixed with 3D animations. What else did it do?
Posted by Tim West on July 09, 2009 at 09:48 AM PDT #
@Per
Although I believe in it, I'm just personally too worn out to keep this project going
@Tim West
GPU accelerated 2D and 3D vector graphics (both fixed-function and programmable)
High quality cpu-generated text and antialiasing for 2D vector graphics with Saffron
GPU shader generated 2D antialiasing using the technique of Loop and Blinn (see GPU Gems 3).
Animation including key-framing, blend shapes, skinning, inverse kinematics, rigid-body
dynamics
Integrated 2D+3D lazily evaluated JavaFX script scene graph with transform hierarchy, bounding volume
hierarchy, collision detection and picking
Extreme Maya importing: including key frame animation, cameras, lights, geometry, shading
networks, light maps, constraints, 2 bone inverse kinematics, rigid-body dynamics, fields, motion paths, particles, and
utility nodes including math and logic
Posted by Christopher Oliver on July 09, 2009 at 10:19 AM PDT #
wow. the single most impressive thing I have seen JavaFX do and it is not continued/supported by Sun? I'm speechless.
Posted by Sakuraba on July 09, 2009 at 11:22 AM PDT #
Very impressive list, there isn't a whole lot of available engines with those features. So *that* was the slimshady project that was mentioned last year in the bug parade, now i understand the title of the blog post.
Posted by Rémy Rakic on July 09, 2009 at 12:01 PM PDT #
A very impressive list indeed. OK, so where does Prism fit in this picture then? Does it share/benefit from any of the great features that this project has. I'd hate to see all this great effort not leveraged in one way or another within JavaFX.
Posted by Mike Azzi on July 09, 2009 at 12:13 PM PDT #
@Mike Azzi
The system mentioned in this post, although a functional superset of Javafx 1.x is necessarily incompatible with javafx 1.x apis - in order to deliver the functionality and performance mentioned.
It's my understanding that Prism will remain compatible. How many of the above mentioned use cases can be carried out with that restriction remains to be seen.
Posted by Christopher Oliver on July 09, 2009 at 12:56 PM PDT #
Hi Chris, if there is a great time to break backward compatibility in JavaFX, now is that time while the install base is fairly minimal. So please don't hold back on that account. Also, if it's not politically possible within the 1.x release time frame, why not do it for the 2.x release. Just a thought.
Thanks.
Posted by Mike Azzi on July 09, 2009 at 01:10 PM PDT #
That's awesome stuff !!! It's seems to me that it's really unique in its kind ;) Sun should really should continue this, 3D begins to be the rage these days with GPUs on average PCs being the beasts they are now (who do not want to play 2D games nowadays ?). For example Silverlight does only fake 3D, and Flash has a bad performance for 3D IMHO (and I think also for 2D, but it's a personal opinion).
Posted by Hervé on July 09, 2009 at 04:50 PM PDT #
damn:
3D begins to be the rage these days on standard apps with GPUs on average PCs being the beasts they are now (who do not want to have a PC that can play 3D games nowadays ?)
Posted by Hervé on July 09, 2009 at 04:52 PM PDT #
@Christopher Oliver
I'm very sad to hear that :( Keep up the good work!
@Mike Azzi
I agree. There's probably still time to break backwards compatibility. There's a big install base thanks to the Java platform, but as of yet I haven't heard of anyone outside the Java community talking about JavaFX. Still only Flash and some minimal talks about Silverlight.
Would be cool to ramp up the power while we still can.
Posted by Pär Dahlberg on July 10, 2009 at 01:33 AM PDT #
Would Slim Shady work on all the target platforms?
Posted by Curious on July 10, 2009 at 02:31 AM PDT #
@Curious
This system requires GPU hardware, as the use cases it targets cannot be carried out with adequate performance without hardware acceleration. It's compatible with any Java platform that can support Java 1.5 and a JRE subset equivalent to CDC Foundation Profile. This excludes the CLDC VM, but includes both embedded Hotspot and CVM, as well as all desktop systems and browsers.
Posted by Christopher Oliver on July 10, 2009 at 11:00 AM PDT #
Very impressive stuff, I hope it's not wasted effort. As we discuss this, Microsoft just launched Silverlight 3 which exposes HLSL programming, I think only for pixel shading effects - and they will promote this level of gfx power as the most advanced thing evar. And JavaFX 1.2 has a very interesting, although still modest, Effects framework, but it is plagued by severe performance limitations as the current JavaFX rendering pipeline is clearly much behind slimshady in efficient GPU acceleration (check my latest blog). Please work with the powers that be, to deliver at least some part of this research in a future release of JavaFX or anything that we can actually use... or just open source it and let the Java graphics/gaming community pick it up.
Posted by Osvaldo Pinali Doederlein on July 10, 2009 at 12:31 PM PDT #
Does this mean there won't be any 3d on javafx?
Does this have something to do with scenegraph3d? or is it a separate project?
Posted by Pedro Duque Vieira on July 11, 2009 at 07:00 AM PDT #
Reading through the comments I realized that my previous question doesn't make much sense.
Posted by Pedro Duque Vieira on July 11, 2009 at 06:46 PM PDT #
Drat! That's exactly what I had hoped javafx would become. Thanks for your excellent work!
It would be a shame for all of this excellent work to get dumped into the garbage heap... is there any chance it could live on in some form?
Also... I'm curious to hear if you liked the Saffron type stuff.
Posted by Mark M on July 12, 2009 at 01:27 PM PDT #
@ Pedro "Does this mean there won't be any 3d on javafx?"
Have a look at 'JavaFX 3D powered by Java 3D' http://forums.sun.com/thread.jspa?threadID=5373702
Posted by August Lammersdorf, InteractiveMesh on July 13, 2009 at 01:34 AM PDT #
@ August
wtf is that! I have a feeling what Chris is posting here is way beyond the deader then dead world of Java'out-of-touch'3D, Who in the right mind would ever use that for anything these days? Get out more dude...
Posted by Jim Rice on July 13, 2009 at 02:21 AM PDT #
nothing good dies: http://blogs.sun.com/ant/
slim is still shading.
Posted by Anthony Rogers on December 07, 2009 at 02:27 PM PST #
This is a great description.
Posted by links of london on December 13, 2009 at 09:49 PM PST #
jean style jean style jeans stylejeans style mens jean style mens jean style skinny jean style skinny jean style blue jeans style blue jeans style seven jeans style seven jeans style new jean style new jean style latest jean style latest jean style jeans styles jeans styles boy style jeans boy style jeans men jean style men jean style jean style
Posted by jean style on December 17, 2009 at 10:10 PM PST #
we only require 2d, 3d, and 4d vectors and 2x2, 3x3, and 4x4 matrices. These types are provided in a new package called javafx.math, http://www.watchgy.com/ namely Vec2, Vec3, Vec4, Mat2, Mat3, Mat4. Since rotations may be represented as a pair of angle/axis, or quaternion form, in addition to matrix form, we also provide the types AngleAxis, and Quat. http://www.watchgy.com/tag-heuer-c-24.html
Posted by replica rolex on December 29, 2009 at 05:17 AM PST #
just open source it and let the Java graphics/gaming community pick it up.
in this case around 5x that of webkit
Tavla
http://www.gercektavla.com/
Tavla İndir
http://www.gercektavla.com/tavla-indir/
Tavla haberleri
http://www.gercektavla.com/tavla-haberleri/
Tavla makaleleri
http://www.gercektavla.com/tavla-makaleleri/
Tavla fotoğrafları
http://www.gercektavla.com/tavla-fotograflari/
tavla videoları
http://www.gercektavla.com/tavla-videolari/
Posted by Tavla Oyunu on January 05, 2010 at 11:55 AM PST #
http://revizyonorganizebrnckvvtmllttrhaberi.co.tv saglam icerikli http://revizyonmatbaacilikbrnckvvtmllttrhaberi.co.tv
Posted by revizyon ile organize matbaacılık brnckvvtmllttrhaberi on January 14, 2010 at 03:48 PM PST #
This is a great description.
Posted by revizyon ile organize matbaacılık brnckvvtmllttrhaberi on January 29, 2010 at 12:02 AM PST #
Drat! That's exactly what I had hoped javafx would become. Thanks for your excellent work!
It would be a shame for all of this excellent work to get dumped into the garbage heap... is there any chance it could live on in some form?
Posted by revizyon ile organize matbaacılık brnckvvtmllttrhaber on January 29, 2010 at 12:03 AM PST #
thanks
http://emlakx.net
http://emlakx.net/haberler
http://emlaksay.com
http://parcakontor1.com
http://saays.com
http://arslantekniksogutma.com
http://cerkezkoyemlakofisi.com
Posted by emlak ilanları on January 30, 2010 at 05:04 AM PST #
thank realy goods work
Posted by medyum on January 30, 2010 at 02:25 PM PST #