Originally Published: Monday, 24 September 2001 Author: The Staff of Linux.com
Published to: enhance_articles_multimedia/Multimedia News Page: 1/1 - [Std View]

Linux.com Interviews Lauris Kaplinski

On September 5th 2001, the World Wide Web Consortium released the Scalable Vector Graphics 1.0 Specification as a recommendation. With the SVG standard gaining popularity and acceptance, Linux.com spoke to Lauris Kaplinski, a GNOME developer and the author of Sodipodi - a vector-based SVG drawing application, about a few technical insights into the standard, Sodipodi and GNOME in general.


Lauris Kaplinski lives in Tartu, Estonia with his family. He studied molecular biology and philosophy, and started a small family computer shop in 1994, when he first came across Linux. Lauris says his first computer was a Commodore 128 in the late 1980s, and the first coding projects he was involved in was in Z80 assembler. He currently works for Ximian.

Lauris is the author of a recent and popular drawing application called Sodipodi It has drawn the attention of many graphics artists and web developers around the world due to the fact that it is a true SVG editor and vector-based drawing application. It is the first of its kind available for GNOME. Linux.com spoke to Lauris about Sodipodi and his views on the SVG standard.

Linux.com: Please give us a brief history of Sodipodi. Who are all the developers involved in Sodipodi?

Lauris Kaplinski: I was deeply impressed by CorelDraw 3 back in 1993 and have used it since occasionally to do simple graphics, like business cards, book stickers and so on. For some reason I have always felt myself better with vector than raster graphics - so although impressed by The GIMP later, it found it to be of little use.

Sodipodi started with gnome-canvas, originally created by Federico Mena and Raph Levien. I was not the only one, seeing it as good starting point for starting something comparable to Corel at last. But canvas lacked bezier path object class, so I started developing one - little parts of my work found place in the gnome-print preview widget. About that time I was introduced to project Gill (Gnome Illustrator) of Raph Levien. It was an ambitious project, trying to implement a SVG editor entirely on top of DOM tree and callback events. Unfortunately there was not even nearly usable DOM library available for Gnome, so Gill development was very slow - plus it was unclear, how good user experience one could achieve on top of the slow and complex DOM.

I started playing with Gill code. Initial Sodipodi was born, as heavy sub classing of canvas objects (Gill used mainly stock canvas items), while still relying on DOM. Later I rewrote the object system several times, but there is still some original code present in SVG parsing. Initial Sodipodi was a standard single-window, toolbar, and menubar Gnome application. Current GUI is mostly the work of Frank Felfe. Me and Frank are the only active developers at moment.  My brother Lemmit works on external projects, like writing webpages and collecting clipart for Sodipodi.


Sodipodi has chosen W3C SVG as its native file format, while targeting to be a generic drawing application, while most other programs have developed their own file formats. What good and bad sides do using published standards for file formats such as SVG have?

Lauris Kaplinski: Well, it was not Sodipodi's decision - I shamelessly borrowed it from Gill. The good thing about using a published standard is that I do not have to spend time creating an imaging model. I just have to implement it. No extra headache keeping file format upwards/downwards compatible. Using SVG natively may give Sodipodi slight advantage in web development, as it will preserve 99.9% of hand-written structure.

The bad part is that SVG is created for display. Editing requires all kinds of fancy tweaks, that often need to keep serious meta-information in addition to SVG. For example, referenced objects (like gradients) can be everywhere in a document, not only in some standard place.

The SVG standard is quite complex, so supporting most of it is hard. Editing adds extra burden here, as we do not like unsupported features to be silently overwritten. SVG document format natively links external objects, like texts and images. While saving these into a single file is possible, it renders (in case of images) it unreadable.

Linux.com: How do you compare the SVG standard to Macromedia's Flash? What do you think are the advantages and disadvantages?

Lauris Kaplinski: I know too little about Flash, to do a fair comparison. Recently there has been lot of talking about SVG as W3C's answer to the growing popularity of Flash - this is partially true - but there are important differences too, so they can as well be considered complementary, not competing, technologies.

Flash has probably always been a multimedia-oriented web presentation language. SVG was originally created as standard for vector images solely. Still, being XML based, and W3C backed, SVG seamlessly fits into larger framework of web technologies, thus immediately gaining advantage of other projects (ECMAScript, DOM, CSS, etc.). Although SVG embeds SMIL animation features, I think its primary uses for coming years will be static - like with HTML, where you can do animations with JavaScript, but the vast majority of the web is static. SVG will be the markup language for graphs, logos, titles and other design elements, replacing bitmaps as primary design blocks of future web pages. Being XML based and relatively easily editable by hand are certainly major success points for such uses. Flash probably will survive in the multimedia world as language for full-featured multimedia presentations. In that area readability and editability are much less important, than well-supported authoring tools. Also, Flash is more compact and thus better suited for the animation world.

Linux.com: What do you feel about Sodipodi at this point? Is it at a stage where it is useful yet? What is in store for everybody in the future?

Lauris Kaplinski: It is useful for simple tasks, like layout birthday invitations or business cards. To certain extent also to generate web graphics - either raw images to be retouched in GIMP - or vice versa - adding text and vectorial elements to bitmaps.

I am relying on user feedback for improvements, as I do very little graphic work myself. Currently I am writing support for gradients. If completed, the same code can be extended to support patterns. Then there will come some line drawing improvements. And after that I am planning to split the whole thing into viewer and editor parts, thus making it more suitable as bonobo image component.

Linux.com: Sodipodi uses many advanced features of GNOME. How do you describe GNOME as an application framework? What do you feel is required (from the point of a software application developer)?

Lauris Kaplinski: I like Gtk+, although it is overbloated sometimes - but its dynamic object system is really cool (mandatory disclaimer - if used correctly). My feelings with Gnome libraries are more mixed - the bloat/usefulness ratio is slightly worse there. But Gnome is a great framework to get your work started - there is a nice set of basic building blocks - although these are usually not extensible enough for serious application development. You can later replace these one-by-one as needed.

Bonobo is a great framework, although it had a serious problem of being in constant change for a long time (like most of Gnome, actually). This makes keeping applications in sync with libraries major extra work, and also causes lot of installation problems for users later. The biggest problem with Gnome is major lack of coordination between different subsystems. It would be a great development platform with only 10% of current features, if only those 10% would be implemented consistently between different libraries. But well - this is not only Gnome's problem.

Linux.com: How do you compare Sodipodi with GIMP? Do you think many vector-based web-developers would find Sodipodi useful?


Lauris Kaplinski: Nothing compares 2 GIMP ;-)

Serious graphic development needs both vector and raster drawing programs. Many people I know use both GIMP and Adobe Illustrator (plus Photoshop, if they need prepress or do not want to maintain multiple OS-es). Sodipodi's current scope of usefulness is severely limited by functionality and the lack of support of vector graphics in web browsers. But future seems to be quite bright for it, as Sodipodi will slowly get more functionality and SVG support will spread. Comparing to most other drawing applications, Sodipodi has  a unique advantage due to its internal SVG support. There is currently a trend in merging vector and raster drawing applications. It will not solve all out problems, but for certain uses will make things more convenient. It would be interesting, if GIMP 3 will really break most functionality into modular pieces, so other applications can start embedding it more easily. Sodipodi could only win from that.

Linux.com: How do you feel coding on Sodipodi as a hobby? How is it different from working?

Lauris Kaplinski: Currently my work and hobby are intermingled, as I am doing contract work on different Gnome projects, most notably gnome-print. Actually, Sodipodi and gnome-print mutually serve as testbeds for different implementation ideas, which is good for both. The bad side is, that I had to find alternate things for recreation ;)

Linux.com: Lastly, what made you decide on the name Sodipodi for the project? :) What does it signify?

Lauris Kaplinski: Sodipodi means something like 'mishmesh' or 'hotchpotch' in Estonian child-language. When my son was 3 years old, he used to draw a lot, and if tired of trying to draw real things, he filled papers with 'sodipodi'.

At that time I started writing a vector drawing application...

Linux.com: Thank you so much for talking with us Lauris. We wish you all the best in your future.

Lauris Kaplinski: My best wishes.

The following are a few screenshots  of Sodipodi in action: The following are examples of art created by Sodipodi. Please note that these are copyrighted works and you require the permission of the author before you use them.

This is the logo of Sodipodi

This image was created by Ain Saare, a student of Tartu Art College, Estonia.

lodka pes
These images were created by Petr Vlk.