Hi, I wrote this list of ideas recently[12], and thought I should re-post here those items which are SVG related (which is a majority of the full list.)
" Things I'd like to program if only I had the time. Please let me know [1] if you're aware of already existing projects which come close to any one of these. Also let me know if you're interested in any of these. Of course, if you'd even like to sponsor one of these projects then I could probably take the time for it. + An X3D to SVG converter. It would take a 3D mesh and camera settings, apply projection, do back-face culling, sort polygons by z- order, dividing intersecting polygons, apply comic shading. Gouraud shading would also be possible, using gradients, but using only a finite number of shades has its advantages. We can then combine adjacent polygons of the same color and shade, and replace the outlines' faces with cubic bezier curves based on normals. This allows us to render smooth 2D representations from low polygon models. + A Greasemonkey script which adds SVG font support to Firefox. For the actual outlining of text Jason Gallicchio's SVGFontKit[2] could be used. The important part is that the script should add DOMMutationEvents[3] which update the text outlines, so the font script works nicely together with most other scripts. For example, it should work well in comination with FakeSmile[4], which also is a Greasemonkey script which fixes lacking web standards support in Firefox, so making them incopatible would drastically limit the usefulness of the project. + An XHTML deploy script, which transforms XHTML documents to something even the Microsoft Internet Explorer can interpret correctly. There are two options. It can be transformed to correct HTML, or, if XML features like foreign namespaces are actually needed, to XHTML following the HTML compatibility guidelines[5] with PHP code for choosing the MIME type depending on the Accept field of the HTTP request header. So the options are HTML or PHP. In a PHP document the processing instructions Internet Explorer needs so it can handle certain foreign namespaces would be added automatically by the script. It could also support XHTML+SMIL[6] by making it compatible with HTML+TIME 2 for Internet Explorer, and linking in the FakeSmile[4] script for other browsers. Conditional comments[7] make such a thing possible. For deploying inline SVG for Internet Explorer there are several options. ASV, conversion to an alternative VML version, rendering to a raster image format... The basic idea is that the author should write plain XHTML, and the deploy script works around many of the browser specific problems which one normally needs to consider. Web design is fun again. Without much reading about browser specific issues one can use things which normally wouldn't simply work, like SVG, and object tags for images. They would still work better in some browsers than in others, but when the workarounds can be added automatically, people would start using these technologies more widely, which would also increase pressure on browser vendors to improve their standards support. That's the idea. Of course it wouldn't really work this way. But it could be useful for me, and maybe a few other people. + An SVG editor Greasemonkey script. I've already got some ideas for the interface. Important features would be optional rounding of values to integer numbers, to create small files; and support for all SVG path segment types, as is already implemented in my current FeSVG path data editor[8], plus some additional path segments, which can be transformed to SVG's standard path segments. A neat feature would be z-scrolling: press the Z key, then move the mouse vertically to put more or fewer elements into a group element at the top, which ignores pointer events and is transparent, so you can easily edit elements which were partially hidden. Most commands would be invoked by keyboard events, not by buttons as those I use in my current FeSVG path data editor. + SVG font diacritical combiner. One feature I'm missing in the current SVG fonts specification is good support for combining diacritical marks. The concept for how this should work comes from FontForge[9]. Glyphs could contain information on where to position diacriticals, stored in elements of a foreign namespace. We would have to define multiple anchor points. One anchor point where diacriticals would be added above the glyph (diaeresis, tilde, grave accent, etc.), one anchor point for diacriticals below (cedilla, comma accent). It should be possible to use an arbitrary number of anchor points, to not limit the set of scripts for which this would work. Then we need combining diacritical elements, which are syntactically similar to glyph elements, but they don't have a progression width. When added to a base glyph a diacritical is positioned relative to one of the anchor points, and it moves the anchor point by some offset, so other diacritics can be added atop of, or below it. Sometimes it might be necessary to adjust the positioning for certain combinations. For this purpose we should define elements which work similar to hkern elements, but with a horizontal and vertical offset, instead of just one kerning parameter, and with an optional scaling parameter. Some diacritics, as COMBINING ENCLOSING CIRCLE (U+20DD) or COMBINING LONG SOLIDUS OVERLAY (U+0338), might need to be resized for specific base characters. Sometimes it's necessary to change the shape of the base glyph. In these cases extra glyphs with the unicode attribute set to the sequence base character plus combining diacritical can be used. We just need to clarify that such pre-combined glyphs always take precedence. Once we've got a syntax for combining diacriticals we'd like to implement them in some way which works for existing browsers. They could be implemented into the SVG font Greasemonkey script mentioned above. Another solution is to write a program which creates a plain SVG font, automatically building combined glyphs with up to a requested number of combining diacriticals. It would systematically go through all combinations of available combining characters. + An SVG viewer Java applet, which just checks whether Apache Batik [10] is available to use for displaying an SVG document, and if it isn't then it should direct the user to instructions for downloading Batik and adding its location to the class path[11]. The applet itself would be rather small. It could be used as fallback content for non SVG enabled browsers (of course, this could be added automatically by the XHTML deploy script mentioned above). One could also use the applet as the only method for presenting SVGs to the user. This way one wouldn't have to deal with browser specific limitations in SVG support. Batik would be the only implementation in which the content needs to work. Even non-standard extensions, implemented in additional classes stored on the server, could be used, but that would probably be more complicated to handle, and would therefore not be supported by the first release version of the applet. -- [1] http://purl.org/NET/2008,frankbruder/contact [2] http://svgkit.sourceforge.net/SVGFontKit.html [3] http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/ events.html#Events-eventgroupings-mutationevents [4] http://leunen.d.free.fr/fakesmile/ [5] http://www.w3.org/TR/xhtml1/#guidelines [6] http://www.w3.org/TR/XHTMLplusSMIL/ [7] http://msdn.microsoft.com/en-us/library/ms537512.aspx [8] http://frankbruder.fr.ohost.de/FeSVG/pathEditor02.svg [9] http://fontforge.sourceforge.net/ [10] http://xmlgraphics.apache.org/batik/ [11] http://java.sun.com/j2se/1.3/docs/tooldocs/findingclasses.html [12] http://de.blog.360.yahoo.com/blog-rW.z7QIjfqIuNkZiEK3N?p=75 ------------------------------------ ----- To unsubscribe send a message to: [EMAIL PROTECTED] -or- visit http://groups.yahoo.com/group/svg-developers and click "edit my membership" ----Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/svg-developers/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/svg-developers/join (Yahoo! ID required) <*> To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/