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/

Reply via email to