SVG's Past and Promising Future
December 4, 2002
A year ago XML.com published the first SVG column, "SVG - Where Are We Now?". In it I examined the way the SVG 1.0 Recommendation was being embraced by XML and graphics vendors. In this column I want to update the state of SVG by examining what's been happening lately.
Among technical people around the world SVG awareness has risen dramatically over the last year. The SVG-Developers list has reached the 3,000 subscribers, while more specialized lists, ranging from job postings to pure coding, have popped up. Popular tech sites like Slashdot and News.com have covered SVG. This was also the year of success for the first SVG conference, SVG Open, held in Zürich last July; it attracted more than 200 visitors, presenters, and exhibitors. SVG has been discussed at various high-profile conferences, too: including JavaOne, XML 2001, XML Europe, SIGGRAPH, WWW10, and O'Reilly's Open Source Convention.
Over the past year vendor support for SVG has significantly broadened. With the notable exception of Macromedia, most graphics vendors have shipped updated versions of popular products with new support for SVG. Corel followed Adobe's Illustrator 10 with the release of Draw 11, which has extended support for SVG (including import and export). SVG also appeared in more specialized packages like Toon Boom Studio (cartoon-oriented) and Swift 3D (3D-oriented). Other vendors haven't hesitated to make SVG the centerpiece of product offerings. PCX Software has pitched a suite of SVG-centric tools which are currently in development (some beta releases are available from their site).
Corel back in the game
Hot on the heels of Draw 11's release, Corel made some very promising announcements concerning SVG. First, Corel has committed to providing its own SVG Viewer plug-in; there's already a technology preview available. While a very early release, this viewer already supports the SVG fundamentals: basic shapes, paths, linear gradients, clip paths, masks and text. On the scripting side, Corel has provided basic DOM support by implementing DOM Level 2 Core interfaces. Also Corel has taken the opportunity to support features which Adobe doesn't support, particularly DOM 2 Mutation Events (about which more has been said in these pages in October). There's a document detailing viewer specifications which Corel promises to update soon with further details. For 1.0 release of its viewer, Corel plans full script support, filter effects, radial gradients, text selecting, searching, copying and pasting, text decoration, SVG font support, animation, patterns, markers, dash lines, and printing. Corel has obviously called for the SVG community to send as much feedback as possible so they can progress rapidly and with greater efficiency toward such a promising final release.
Richard Bennett kindly provides the SVG Switch, a utility which allows one to switch between Adobe SVG Viewer and Corel SVG Viewer on the fly. Corel's ambitious plans for this product will make for a healthy competition in the SVG plug-in market.
Additionally, Corel has released one of the first Tablet PC applications, Grafigo. Grafigo is graphics software focusing on day-to-day mobile graphics tasks, like " sketching, annotating, creating graphics and collaborating". Grafigo offersd some intelligence when you sketch and write. Its shape recognition turns your dodgy hand-drawn ellipse to a geometrically perfect one. Same goes for text with the handwriting recognition engine. Grafigo works with SVG, allowing perfect export and import of your data through SVG. On the gossip side, Grafigo is kindly regarded by Microsoft, which links to it from its Tablet PC pages.
SVG Mobile Almost Done
SVG has also progressed through releases of new W3C specifications. SVG 1.1 has just made it to Proposed Recommendation. While SVG 1.1 does not bring anything new to SVG per se, it modularizes the large SVG 1.0 spec. By isolating functionality, SVG 1.1 makes it possible to define lightweight profiles of SVG for more devices other than the desktop computer. In that spirit SVG Mobile has also made it to Proposed Recommendation. SVG Mobile specifies two new SVG profiles. SVG Basic is a subset of SVG targeting PDA devices. SVG Tiny is a subset of SVG Basic targeting mobile phones.
SVG Basic is rather close to SVG Full in terms of features. One of the main differences is that SVG Basic has limited support for filters and clip paths. SVG Tiny goes further in stripping scripting, filters, gradients, patterns, opacity, and CSS support. Animation is preserved in SVG Tiny; it's one of the most requested features for graphics on mobile phones. SVG Tiny is a mandatory part of MMS (Multimedia Messaging Service), the highly touted next-generation successor to SMS. High-profile mobile companies like Nokia and Ericsson have contributed their experience to supply reasonable feature sets for both profiles.
While some expected implementations of these two profiles haven't been announced, some vendors have already deployed implementations. ZoomOn has deployed its SVG Viewer on several mobile platforms. BitFlash has released its mobile SVG SDK. Intesis provides an SVG-embedded solution with its eSVG product. Most of these companies also provide authoring tools tailored for special types of content delivery. There is great industry momentum behind the mobile profiles, and it shouldn't be too long before we see large-scale implementation announcements.
A Glimpse at SVG 1.2
While SVG 1.1 is a great leap forward for the mobile market, it adds no new functionality. The W3C SVG Working Group released two weeks ago the first public draft of SVG 1.2, which introduces several anticipated enhancements. It's a very early draft, but it already shows the areas in which SVG is progressing.
One of the most-requested new features for SVG is text wrapping. I even tried to solve this problem by creating a simple SVG extension based on SVG 1.0. The SVG Working Group has listened to sensible user requests and done some advanced work on text wrapping in the SVG 1.2 draft. SVG 1.2 introduces a host of new elements (and accompanying W3C XML Schemas snippets) to support text wrapping.
The idea is to split text into lines that are displayed in a given shape. In SVG 1.2 you can define multiple types of geometry (paths and basic shapes) in which the text is wrapped. The draft provides detailed algorithms and illustrations. The elements mention flowing (all elements are prefixed by flow), which hints at possible support for text flowing further down the road. Text flowing takes text wrapping further by providing not only one shape in which the text is to be wrapped, but numerous shapes so that a block of text can be flowed across multiple geometric regions, offering further separation of content and rendering.
Further, the Batik team has been working on support for the new elements. For now they're supported in a different namespace (Batik's) but are functionally similar. This implementation experience was helpful for the Working Group. It ensures that the solutions provided by the specification are in synch with the real world.
Also in Sacré SVG
The SVG WG has also looked at DOM enhancements. Conversion of mouse coordinates has proved too daunting for developers; the new draft
promises to add DOM routines to improve the situation. Back when Adobe SVG Viewer
released, users used the proprietary Adobe
Window interface. It was a big help
for many reasons: direct access to current
SVGDocument, simplified interactions
with the SVG parser, server connections, client size queries, etc. Here again the
Group listened to the community and provided the
SVGWindow interface. The current version presented in the spec is very close
to the one offered by Adobe (and partly supported in Batik); work is already underway
There are other significant things to highlight in SVG 1.2. Although not as detailed as text wrapping or DOM extensions, some are very anticipated by the SVG community. The WG is looking at more extensive integration with other XForms and SMIL, as well as ways to ease the rendering of arbitrary XML with SVG. Two other promising areas are streaming and modification of drawing order. SVG watching in 2003 should be as exciting as it was in 2002.