« TAO party | Main | WPF Notes I »

March 20, 2006

Intro to Sparkle

Intro to Sparkle: The actual event name was... [rummaging through papers]... "Introducing Microsoft Tools For Professional Designers: An Overview of Microsoft Expression". I think "Expression" is the name of a line of tools, like "MX" was awhile back. This was actually about "Microsoft Expression Interactive Designer", the tool formerly-and-more-fetchingly known as "Sparkle", which descended from the Creature House Expressions tool, marketed at one point awhile back by Fractal Design or MetaCreations, and which I first knew for its innovative "skeletal strokes" demo at SIGGRAPH 1994. I walked out of the session thinking "Well, I've seen demos for Flex, and I've seen demos for Fireworks". (Yes, I'm King Of All Snarkdom these days, no need to remind me. ;-) More notes in the extended entry....

The Expression approach's key uniqueularity: a single XML format across all tools, for all users. Key unanswered question: what happens when all instructions for a multi-contributor project are contained within a single XML file? The approach used in multimedia and WWW development is copy by reference, where a designer can change a PNG unendingly so long as the markup compositor knows the resource's final address. Expression seems to use a copy by value approach, where a single file holds all resources. There seems to be a need for very capable version-control abilities here, which I suppose would be handled by another Microsoft offering. Still, a single live file which can be modified by both designers and developers seems like it would also have unique strengths; I'll need to think on this a bit more before I get a clearer idea of the whole picture.

Speaking of "designers and developers", this theme made regular appearances during various presentations today. This was a key idea behind the Macromedia Designer & Developer Center, first named "desdev", later named "devnet", introduced toward Feb 2002. Microsoft has traditionally been focused on a straight developer audience, though, so this adaption does seem a natural and necessary progression.

Most of the demo was a "now I'll give this stroke a yellow brush, now I'll make it 2-point size, whoops, now I'll undo and resize this over here, next I'll choose this context menu and....." There was some apparent use of realtime 3D rendering for a spaceship, but I wondered why this rendering was done on the client instead of pre-rendered during authoring... probably reduces transfer costs from server to client, but increases computational demands on the client, limiting the audience. One nice thing was that they could then animate between any two states of the object (in this case, different views of a spaceship), but I'm not sure whether this decrease in bandwidth costs would outweigh the need for increased clientside computational cycles. Risk: designers will need some experience to determine when they overload the computational resources of their audience's machines... it's easy to say "hey i can render in realtime" but harder to predict "this is how much i can ask them to render before performance becomes unacceptable".

I think Gates may have a conflict here. The top-level line is about user experience, but the toolset itself focuses on "user experience for those who have a new PC and who run on hardware-accelerated Vista". Audiences are diverse... not everyone invests in their hardware and system as frequently as computer professionals... the change from fullsized computers to mobile communication makes this even more pronounced. "Whose user experience?" is one of the questions that keeps running in my head after this day of sessions.

One of the ideas that came up during the timeline segment was an emphasis on how Sparkle marks events by time, rather than by frames. This is true, and has been an animation issue for a dozen years now... MacroMind Three-D offered the first commercial parameter-based keyframing, and Specular's Infini-D made a big deal of how it could easily change the number of frames-per-second at render time rather than at the start of design, although keys were set when any parameter of the object changed (position, rotation, shading, etc) rather than different keys set when any parameter of that object changed. Macromedia Extreme 3D was the first commercial tool I recall to quickly interconvert between frame-based animation and time-based animation. Adobe Premiere used a strict time-based approach, later adopted by AfterEffects, which added MM3D's parameter-based keying. I'm not sure there's really a winner either way here. One advantage of a frame-based approach is that it maps easily into a state-based approach, the "one-frame movie" or "four-frame button" or current Flex "state" approach. I don't have a conclusion; still open to persuasion.

In the Q&A, the mic was vacant at first, so I got up and asked "What are we supposed to call this, Microsoft Expression Interactive Designer? Wasn't 'Sparkle' a bit more catchy? What do you want us to call it?" The answer was along the lines of "Yes, call it MEID" or something like that. We'll see... I'm guessing a more sustainable name will eventually emerge.

Another questioner asked "Who is the actual audience for this work?" and the reply was along the lines of "Well, most designers have at least one PC for testing", which seemed to me to confuse the audience they were selling into (designers/developers) and the actual people who would be using these interfaces (consumers).

Another question I noted down was about mobile development, multiple screen sizes and CPU capability, the whole Beyond The Computer approach. I don't have notes on the reply.

Branden Hall sat down near me towards this part -- he was one of the many web luminaries here whose attendence costs were paid for by Microsoft -- and he asked me when Sparkle would ship. I'm not sure... I think I remember hearing that, because it was built atop Longhorn that it would require Longhorn/Avalon/Vista to ship before they could lock it down and ship... I'd spend more time searching a reference but I'm not sure whether things would change again by actual delivery time.

My take: Same as before... Microsoft is doing something quite ambitious and commendable with its new operating system, and to guard this investment they'll need to make sure talented designers and developers can create dedicated content for it, so dedicated des/dev tools are a natural. Vectors and editability and micro-refreshes and declarative programming and all these other techniques are good techniques, so it's natural there would be overlap with what other des/dev tools have already been accomplishing. At the same time Microsoft needs to counter the "only in Microsoft" constraint, so some type of concession towards univerality needs to be made. It's a tough problem.

The next session in this room was about "Quartz", the codename for the new Frontpage HTML editor whose full formal name I don't recall, but I bailed for a session on Windows Presentation Framework, which I'll hit in the next report....

Posted by John Dowdell at March 20, 2006 09:05 PM

Trackback Pings

TrackBack URL for this entry:
http://weblogs.macromedia.com/mtadmin/mt-tb.cgi/7196

Comments

Don't be too hard on these guys. In the Video demo I've seen on MSDN there were a llot of wow-features, like real-time 3D. Believe me, pre-rendered is a pain in the ass most of the time.

Integratin with the OS at Sparkle levels is something Flash can only dream of. Perhaps it's time for flash to borrow a trick or two from Director?

Posted by: Sander at March 21, 2006 01:34 PM


I wondered why this [3D] rendering was done on the client instead of pre-rendered during authoring... probably reduces transfer costs from server to client, but increases computational demands on the client, limiting the audience.

If you are on a Mac and you minimize a window and it does that cool flying-page zoomy-shrinky effect, do you find yourself thinking "I wonder why they didn't render that on the server... computation costs ... " etc?

Mac OS X applications have used the 3D pipe for enhancing 2D UI effects for years now. That's the real win of switching to the 3D rendering engine, not the flying spaceship. Microsoft will start adding those kinds of effects to Vista apps too.

Focusing on bandwidth and CPU and server-side rendering is wearing a Web 1.0 hat. Thousands of Windows and Apple applications are downloaded and installed, rather than streamed over the web. Streaming and resource usage is far more of a concern to the advertising community (Flash's main revenue base) than to companies who build sticky apps which are installed locally and have full access to the CPU.

More and more Web 2.0 apps will include a local installable component (e.g. Google Desktop or Skype). Vista will accelerate that trend. And for those apps, access to the client-side 3D pipe (especially for doing 2D UI effects) makes great sense.

Posted by: jonmeyer at March 23, 2006 03:48 AM

Good example on the Mac Genie windows (a 2D effect, btw), but that wasn't the demo I was shown. No UI chrome was a 3D object; it was a rocketship, of simple 3D geometry, which was rotated. Didn't even do the realtime geometry/shading manipulations common in Director/Shockwave the last few years. Just spun a simple 3D model around.

Put another way, I was questioning that demo, not the overall idea of realtime 3D. No need to lecture *me* on the benefits of realtime clientside 3D rendering... not only have I evangelized the full-interactive 3D construction kit in Shockwave 3D, but one of the reasons I joined Macromedia was after seeing a demo of Young Harvill's pioneering realtime navigation/interactivity engine which was briefly known as "Smart3D", and the whole thing that brought me into the field in the first place was from being blown away by that first generation of Swivel work, and I got hired in large part because of my skill in writing in RenderMan Shading Language.

I like 3D. But the Sparkle demos, I'm still wondering why the content shown could not have been done in a regular, non-WPF/E-enhanced HTML browser.

"Focusing on bandwidth and CPU and server-side rendering is wearing a Web 1.0 hat." For the record, if you ever said that to my face I'd probably kick you in the shins.... ;-) No, seriously, your desktop computer and regular home connection are probably beefy by now, but we're also moving to a handheld market, a ubiquitous computing market, and also a global market, and these cannot be defined away simply by waving a popular-yet-underdefined BlogInfluential label like "Web 1.0". I'm not sure of stats, but I'm pretty sure more people "compute" via tiny ARM chips now than regular Intel/AMD chips. We've still got a hardware/services curve to climb.

(I did see a lot of UI demos which used mock-3D effects, quad distortions of bitmaps arranged along a calculated 3D space. I believe the underlying rendering calculations were distinct in technology from the "rotating spaceship" demo we were shown... call them "3D" and "3D-like" to avoid confusing them. The rotating-spaceship demo did have an advantage over prerendering in that multiple orientations could be defined, with each step between any two arbitrarily-chosen orientations handled on-the-fly... much less of an audience constraint on transfer costs, but at much higher cost of computational power and hardware/OS acceptability.)

Posted by: John Dowdell at March 23, 2006 08:12 AM

I don't take that Web 2.0 label seriously either. But I'll wear shin guards at the next FlashForward just in case:)

I totally agree that with mobile devices (for now) its back to ten-year-old techniques: BitBlt and an alpha-blend or two. Watch out for animations, too, cos that render loop sure eats battery!

Just like radio has never gone away, the ubiquity and low bandwidth/cpu profile of Web 1.0-style apps mean they are likely here to stay.

I also agree about the spaceship demo. The promise was "desktop compositing" style effects, why throw us a the 3D spaceship model!

I'll get excited when I start to see UIs that seamlessly mix in procedural pixel shaders, vector effects, mesh distortions, lighting effects, blurring, noise, textures, blending, antialiasing - the very things you wrote in RSL, but accelerated in real time and to massive high-definition scale by a modern GPU. Anark lit the torch. Apple gave it the nod. But where is the design tool that will unleash that new generation of UI magic?

With Avalon, Microsoft has made one step towards this: Their new rendering platform pushes all 2D graphics calls over the 3D pipe so they can be composited and mixed with the GPU. Great. But so far Sparkle demos have not exploited this much.

[jd sez: Good points, thanks Jon. No shinguards needed. ;-) ]

Posted by: jonmeyer at March 23, 2006 09:50 AM

Hey jd - Expression Interactive Designer did not descend from the Expression product that we acquired from Creature House. That would be Expression Graphic Designer.

[jd sez: egads, I got it wrong... thanks for the catch, Joe! That's right, Sparkle is EID, and Acrylic was the Hong Kong code... I owe ya one.]

Posted by: Joe Marini at March 23, 2006 02:45 PM