Writings

Documents

Weblogs

Easy 3D (February 16, 2005)

Cool Swing/3D demo! Just checked out a Swing-based Java3D demo from Romain Guy's Weblog and it looks pretty cool. You see books as 3D images from Amazon, and see them rotate in real time to display the spline as well as the front cover. To run it, you'll need to have Java3D installed, from the Java 3D Website.

There are a number of interesting demos for Java3D around, but no killer apps that I've seen. I haven't tried coding in it yet. But had a couple of ideas.

One would be to define a set of utility functions in a "scripting" language like BeanShell to make throwing together Java3D apps easy. It seems like the sort of toolkit where the more experimentation you can do without pulling your hair out over the API, well, the more experimentation you will do. And we need to experiment to see where a 3D interface or 3D-enabled application can be useful.

Then I got an idea for a simple file browser app. The app would show files in a directory, with the standard icons: a folder, a text file icon, a jar icon etc. Click on the icon and it turns out it is a cube, which rotates on each mouse click. Different sides of the cube show different "aspects" of the file: a preview of the contents, a list of file attributes, a little calendar for last modified date, a picture of the author :). It could be easier to quickly look at directory content than the equivalent list of all the file details...who knows.

Or, here's one: a weather icon, again as a cube. One side shows an (actual) picture or stream of the city you're looking up; another side shows weather stats; another side shows driving conditions.

Or, movies: side 1 shows the movie as it's playing, side 2 shows the director and his resume (from IMDB), side 3 shows reviews from rotten tomatoes, side 4 shows how to order it online (in case you rented it).

I know, I'm leaving out two sides of my cube. But then, that's usually the problem, isn't it? How do we "navigate" in a 3D environment? The easiest thing I can think of it to "rotate" the cube just by clicking on it, avoiding mouse-gestures or other special tricks entirely. Key commands? Anyone remember I, J, K, M?

Ok, one last one: instant messaging. Keep multiple conversations going on sides of the cube. And have a separate floating cube that rotates to show a pic of the current speaker (most recently received message).

My guess is it's anyone's guess whether 3D interfaces will be widely useful for anything in particular we need to do.

You can comment on this on the jRoller Website site, the the host for the blog entry above.