<p>I'm considering developing a website similar to stackoverflow, but the answers may also consist of drawings (schematics, in this case).  I want to have an area in the answer form where they can make this schematic without requiring special plugins, etc.  </p>

<ol>
<li>Are we to the point where SVG has or should have critical mass soon (1-2 years) such that designing a website where script-run SVG as a primary feature is reasonable (ie, requiring Firefox or another SVG/AJAX compliant browser)?</li>
<li>What are some good resources for learning cross platform SVG scripting (likely in javascript)?</li>
</ol>

<p>-Adam Davis</p>

[{'answer_id': 33448, 'author': 'Pete Kirkham', 'author_id': 1527, 'author_profile': 'https://Stackoverflow.com/users/1527', 'pm_score': 2, 'selected': False, 'text': '<p>1/ probably never - if IE wanted to add it, then I would have though it would have done so by now; but there are workarounds using <a href="http://www.intertwingly.net/blog/2007/05/04/Inline-SVG-in-MSIE" rel="nofollow noreferrer">SilverLight</a> and <a href="http://starkravingfinkle.org/blog/2006/03/svg-in-ie-update/" rel="nofollow noreferrer">Gecko</a> to provide rendering. On the other hand, there are cross-browser graphics APIs available. I\'ve done largish front ends using XULRunner and SVG, but nothing on the web which had to cater for IE.</p>\n\n<p>2/ The two I referred to most often were the <a href="http://www.mozilla.org/projects/svg/" rel="nofollow noreferrer">SVG pages on mozilla.org</a> and this <a href="http://phrogz.net/ObjJob/objects.asp?langID=1" rel="nofollow noreferrer">SVG DOM reference</a> . All of my SVG links are here on <a href="http://delicious.com/MachineElf/svg" rel="nofollow noreferrer">delicious</a></p>\n\n<p>There\'s one existing editor at <a href="http://www.bpel4chor.org/editor/" rel="nofollow noreferrer">http://www.bpel4chor.org/editor/</a>; also if all you want is schematics where all arcs are on a grid, you can do that quite well using divs and images without SVG. Or you could just go the <a href="http://www.tincancamera.com/blog/2005/03/lo-fi-uml.html" rel="nofollow noreferrer">lo-fi route</a></p>\n'}, {'answer_id': 33502, 'author': 'Jörg W Mittag', 'author_id': 2988, 'author_profile': 'https://Stackoverflow.com/users/2988', 'pm_score': 4, 'selected': True, 'text': '<p>Unfortunately, I don\'t have an answer, but I do have three pointers to projects that you could look at.</p>\n\n<p>The first is the <a href="http://Research.Sun.Com/projects/lively/" rel="noreferrer" title="Lively Kernel">Lively Kernel</a> by Dan Ingalls (yes, <em>the</em> Dan Ingalls) at Sun Labs. It is an implementation of a Smalltalk Virtual World in JavaScript on top of SVG. More precisely, it is an implementation of the Morphic GUI framework from Squeak Smalltalk in JavaScript using SVG and a port of (parts of) Squeak Smalltalk in JavaScript.</p>\n\n<p>Or, if you\'re not a Smalltalker and the above doesn\'t make sense to you: it\'s an Operating System, written in JavaScript with the JavaScript interpreter as the CPU, SVG as the graphics card and the browser as the computer.</p>\n\n<p>This is about as extreme as it gets, when it comes to JavaScript and SVG. And it only <em>fully</em> works in Safari 3 and partly in Firefox 3, although there is an experimental port to Internet Explorer as well.</p>\n\n<p>The second project is John Resig\'s <a href="http://EJohn.Org/blog/processingjs/" rel="noreferrer" title="Processing.js">Processing.js</a> port of the Processing visualization language to JavaScript. It uses the <code>&lt;canvas&gt;</code> element instead of SVG precisely because of the problems that you mentioned. This one however, only works in Firefox 3.</p>\n\n<p>The third one is <a href="http://UselessPickles.Com/triangles/demo.html" rel="noreferrer" title="Triangles in JavaScript">Real-Time 3D in JavaScript</a> by Useless Pickles. It uses <em>only</em> JavaScript, DOM and CSS and <em>no</em> SVG or <code>&lt;canvas&gt;</code> or Flash or whatever. <em>And</em> it is portable to almost any browser, including Internet Explorer 7 and up. Doing 2D should be even easier than this.</p>\n\n<p>Between those three projects you should be able to find some inspiration and also to find some people who tried to push the envelope with JavaScript and SVG or JavaScript and Graphics and can tell you what works and what doesn\'t.</p>\n\n<p>Conclusion: doing cross-browser SVG or cross-browser <code>&lt;canvas&gt;</code> is nigh impossible, but with a little bit of craziness, cross-browser graphics <em>without</em> SVG or <code>&lt;canvas&gt;</code> is possible.</p>\n'}, {'answer_id': 33602, 'author': 'Brian Gianforcaro', 'author_id': 3415, 'author_profile': 'https://Stackoverflow.com/users/3415', 'pm_score': 2, 'selected': False, 'text': '<p>As @jwmittag mentioned <code>&lt;canvas&gt;</code> is an option. </p>\n\n<p>It works in Saffari and Firefox 3, Opera 9, and <a href="http://arstechnica.com/news.ars/post/20080819-mozilla-drags-ie-into-the-future-with-canvas-element-plugin.html" rel="nofollow noreferrer">people are developing support for IE</a>.</p>\n\n<p>You could easily capture mouse clicks associated with the current tool and properties. \nRedrawing the canvas on every page display. </p>\n\n<p>I just finished a project using <code>&lt;canvas&gt;</code> and it\'s a simple and very powerful API to work with, especially if you have ever done any OpenGL or Cairo work. </p>\n\n<p>Good Luck, sounds like a cool project. </p>\n'}, {'answer_id': 63261, 'author': 'Jim T', 'author_id': 7298, 'author_profile': 'https://Stackoverflow.com/users/7298', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://raphaeljs.com/" rel="noreferrer">Raphael</a> looks like an interesting take on the problem of cross-browser vector graphics.</p>\n'}, {'answer_id': 6034452, 'author': 'Owen', 'author_id': 692493, 'author_profile': 'https://Stackoverflow.com/users/692493', 'pm_score': 2, 'selected': False, 'text': '<p>SVGWeb is a script that adds near-native SVG capabilities to IE using flash. All the other major browsers support SVG.</p>\n\n<p><a href="http://code.google.com/p/svgweb/" rel="nofollow">http://code.google.com/p/svgweb/</a></p>\n'}]
['https://Stackoverflow.com/questions/33347', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/2915/']