Today I’m attempting to kick off a new project called SavageSVG, a complete SVG library for Mono/.NET.
First of all, what is SVG?
From Wikipedia:
Scalable Vector Graphics (SVG) is an XML markup language for describing two-dimensional vector graphics, both static and animated, and either declarative or scripted. It is an open standard created by the World Wide Web Consortium.
Modern browsers such as Firefox and Opera have built-in support for rendering SVG images. If you’re using one of these browsers, you should see a pretty butterfly on this page, and if you look at the source code, see the raw SVG document.
What will SavageSVG do?
The goal of the SavageSVG project is to create a fully managed (C#) SVG library that will make it easy to for developers to add beautiful and interactive SVG graphics into their applications. In addition to basic rendering, the goal is to fully support a DOM, CSS, scripting, and animations.
SavageSVG didn’t start from scratch, it’s a fork of the abandoned windows-only SharpVectorGraphics library, so many things already work.
What’s been done so far?
I’ve taken the SharpVectorGraphics code and done a fairly major cleanup. Here’s a fairly vague overview of what’s been done:
- Autotoolized the entire thing so it’s easy to build on linux
- Removed various un-needed code that was causing issues with mono
- Removed all references to System.Windows.Forms, so everything but the winforms svg viewer (and the related components assembly) will build without it
- Moved the unit tests into their own assembly
- Wrote a very simple GTK# SVG viewer
What needs to be done?
A lot. Many things that the SharpVectorGraphics website boasts don’t work, even on windows using their binaries.
I’ve started a list of tasks that anyone interested in the project could work on. Please see that page for more information. There’s also a bug tracker, which would be another good place to start.
The Savage project needs YOU!
If you’re interested in joining the project, please contact me. We can use help from anyone - at any skill level.
The best way to reach me is using jabber, my ID is eric@extremeboredom.net. The same address works for email, too.
…almost forgot….screenshots!
Here’s how things are looking right now on my linux box.
4 Comments
Hi,
I have tried to compile you code but not succeed because need nunit 2.2.0 whereas I have the last mono and nunit package is in it .
I have search for a rpm or something for linux on nunit website but nothing…
So can you put a little wiki page to explain where get dependency.
I have dev on many project on windows side and I am more and more interesting in linux side
;)
++
I’d be interested in pitching in but that Mercurial SCM is a bummer to cope with. You’d snag more help if you used Subversion.
cleveridea: If someone *really* wants to help out with a project, something like this is totally irrelevant, and really, just a lame excuse for not doing anything.
If you’re serious about working on the project, I’d love your contributions. Please send me an instant message, I’ll point you at some documentation on Mercurial, I’m sure you’ll quickly see why I chose it over subversion.
I would like to contribute. Could you direct me on how to go about it.
2 Trackbacks
SVG, Mono, and Mapping…
I just found a link for a project working on SVG and it works with C# and on Mono. I’m really excited about that because if I ever get back to my recursive mapping program, I’ll have the ability to actually render it in proper SVG. Of cours…
[...] Eric’s vector graphic manipulation library, SavageSVG [...]