As if I didn’t have enough going on already, I’ve started on a new project: an SVG-based Cocoa drawing application, tentatively titled XVG. Actually the focus will be more on creating it as a library, with a sample application to show off the library’s features.
This will be an open source project, and my plan is to use it in Icon Machine 4.0. In effect, I’ll be releasing a large part of Icon Machine as open source. Hopefully other people will participate and find uses for it in other applications.
As I think I’ve described before, I want to go with SVG for Icon Machine because it has nearly all the features I use in Photoshop when I’m creating my own icons - especially filters (I think the only thing that’s missing is inner/outer glow). Another advantage of choosing a public standard such as SVG is that it provides a well thought out and well defined feature set that I can use as a target.
The goal will be to make it what is officially termed a Conforming SVG Generator and a Conforming Static SVG Viewer (except I don’t plan to support conditionals). If someone else wanted to join the project and add the animation and interaction features, that would be fine with me. I plan to make the project officially public once I have the basic shapes working for reading, writing, rendering, and editing… unless someone wants to join in sooner than that.
If you’re wondering how this relates to the Inkscape project, there are two major differences. First, XVG will be Mac OS X native, using Cocoa and Core Graphics (Quartz). Second, Inkscape is intended specifically to be an SVG authoring tool, including the ability to view the SVG source for the drawing. My goal with XVG is to have a drawing program whose feature set and file format corresponds to that of SVG, but without exposing those implementation details to the user. That’s why I don’t plan to slavishly follow the definition of a Conforming Static SVG Viewer. This, of course, is because Icon Machine would have no cause to expose its SVG underpinnings. But again, if someone with different needs were to join the project, I’m sure we could work something out.