Software for Research, Part 2: Sozi for Presentations

1 Comment

Today I'll introduce you to a wonderfully simple piece of software that should free you from using Powerpoint or other outdated presentation software. It's called Sozi.

Sozi is an extension for Inkscape which is a program designed to create pictures, particularly vector images in SVG format.

click on image to go to next 'slide' or click here to open presentation in new tab left button or right arrow key to advance, middle mouse button for menu

Essentially Sozi allows you to create a presentation by making an image which is zoomed into to show different aspects. In this regard, it's like Prezi, a web based version of the same concept. But Sozi is open source and cross platform and you don't need to be connected to the web to use it.

Then the file can be displayed directly by loading it in a compatible browser. Firefox has excellent SVG support as do most other browsers (IE notably lacking - prior to version 9). It even works on most mobile browsers.
There's probably more possibilities here with the use of SVG animation properties (indeed there is, see edit below).

Also, SVG files are an open format and the file format is well suited to producing posters as well as presentations.
SVG files can also be edited using Adobe Illustrator and can be exported from Omnigraffle if you prefer but you'll still need to do the final edit in Inkscape.

I had a bit of difficulty installing Inkscape on OS X as the packaged version is outdated, should be simpler on Linux. Here's a relatively simple way to get it working on Snow Leopard (see below for newer, easier method):

  • Install MacPorts
  • sudo port install inkscape py26-gtk gtk-theme-switch gnome-themes
  • the version installed is currently inkscape-0.48.2_0+python26.darwin_10.x86_64
  • sudo mv /usr/bin/python /usr/bin/python-disabled need this step to make sure correct python selected
  • sudo ln -s /usr/bin/python /opt/local/bin/python
  • sudo port select python python26
  • follow Sozi install instructions,
  • I installed Sozi files to /opt/local/share/inkscape/extensions
  • you'll need to start Sozi from the command line or make an icon to start it
  • don't worry about the "Xlib: extension "RANDR" missing on display ..." warning, it's harmless
  • if inkscape crashes on startup, see this page for a fix.

[---edit 09/07/13---] With newer python versions in Macports, installation is now much easier

  • sudo port install inkscape
  • in some cases you may need to specify the compiler by passing the option "configure.compiler=apple-gcc-4.2"
  • sudo port install py27-pygtk
  • download and install sozi to ~/.config/inkscape/extensions/
  • or install to /opt/local/share/inkscape/extensions for all users
  • there is a bug in XQuartz (on OS X) that makes vectors paste as bitmaps, change the "XQuartz Preferences >> Pasteboard >> Update Pasteboard when CLIPBOARD changes" to unchecked

Edit 01/10/2011

Managed to get a bit more fancy with sozi after learning some SVG.
You can link to images rather than embedding them in the SVG, this allows a cleaner SVG file (but remember to change the links to relative paths if you're moving the flles around!).
It is possible to link to ogv videos as well as embed SVG animations.
One trick with animations is to add them to their own group as suggested here, then it's easy to move them around using the transform property,
for instance I wrapped my anim in:
<g id="g5750" inkscape:groupmode="layer" inkscape:label="TOA_anim" transform="translate(300,300)"> INSERT OBJECTS HERE </g>

Have a look at this presentation for an idea of what you can do with a bit more tweaking:

click on image to go to next 'slide' or click here to open presentation in new tab left button or right arrow key to advance, middle mouse button for menu.

Animation in SVG surprisingly easy, for example, the animation in the bottom left is composed of this code:

Edit 25/10/11

After using sozi "in the field", I thought I'd post a couple more thoughts about the experience. The presentation was at the ASBD 2011 Conference and was well received by the audience. One audience member commented on the use of live animations in the presentation and was impressed with what sozi could do.
Although I intended to present the talk using my Macbook Air 11" and a Kensington USB Presenter, the projector connections at the conference were difficult to access, so I copied the presentation to a flash drive and onto the Windows computer there (and installed Firefox!). It was with a little bit of trepidation that I started the presentation, put Firefox into fullscreen mode and found... that it all worked as planned. I had also uploaded the presentation to this web server but bandwidth was a little lacking although this is not an issue once the presentation loads). So what did I learn from the experience:

  1. Sozi works as planned in a hostile environment!
  2. It was well received and I felt like I had more flexibility while presenting
  3. Zoom is too slow and inaccessible from most presentation remotes
  4. It would be nice to have a 'reveal' function, in which a zoomed frame reveals another layer
  5. Relative image links are a must for an uploaded presentation (a patch is available here)
  6. Embedded animations need a right click and "play" to start it (fixed in development version of sozi)
  7. Need to convert 'reflowed text' to normal text using the >>Text>>Convert to Text menu item

In summary, I was happy with how sozi performed and will use it in the future, but would also note that inkscape has a bit of maturing to go before it is for the casual user, notably it can be a bit tricky to install to support sozi properly, has some weird things you need to remember to do before using the presentation (convert text, change absolute to relative links) and performance especially with text handling can be a little slow. These are foibles that are being actively addressed by developers and will make a very powerful program more accessible.

[---edit 10/7/13---]
SVG documents can also include javascript, which allows a feature that makes sozi even more useful: hiding objects.

The code for this effect can be found here.
It's fairly simple to implement, as described here


Nice brain Frank!

13-10-2011 1:19 pm