SVG | Dedicated page...


Microsoft is going to support SVG in IE - It's official now

2010-3-16 | svg

Wow, after phenomenal Opera 10.50 filling majority of browser related articles during couple of previous weeks, here comes new exciting event. MSIE will support SVG!! Finally...
Several unsorted notices and thoughts:

Presentation: Yet Another SVG Introduction

2010-3-12 | svg | evangelization

Our company largely supports internal education of employees. I decided to have one about SVG and a little bit evangelize it even more. And because I've spent quite a lot of time with creating it, I'm giving it now freely available to everyone.
It is titled Yet Another SVG Introduction and its purpose was/is simple: draw some more attention to this great technology! It contains a lot of resources taken randomly from web (with references listed down, of course ;-), linked directly and also couple of small demos prepared directly for the sake of this presentation (like propeller or car demo). I hope you will like it as well, yesterday's sixteen attendees did (or I rather hope they did... ;-)
During making presentation I discovered three important facts (for me at least, they are new):

- current Firefox trunk has broken some masking cases, like Adobe's Wonder demo, working properly some weeks back
- Webkit has bug in SMIL timing model; if there are only animate elements in <defs>, they are not triggered to start as long as there is no direct animate element as well; so workaround to trigger them add one and it will start working; practical example is there: Spirit animation not animating in Webkit and spirit animation animating in Webkit (with added one more, direct animation, for smile)
- both latest Opera(Presto) and Webkit have somewhat working implementation of <foreignObject> already, wow...

GECKO SVG/SMIL Progress

2010-2-24 | svg

Although there is no official buzz around Gecko SMIL/SVG improvements, gus at Mozilla are not sleeping and working hard. I assume this from the fact that recent Gecko version is able to correctly render and animate many demos failing in the past. For example:

Go on guys, and thank you!! :-)

SVG SMIL Clouds Demo II.

2010-1-17 | svg

Inspired by Daniel Holbert's Clouds Demo I asked him, if can I use it and modify it a bit...
He kindly agreed and, as a result, after effort slightly longer than two hours, I'm coming out with extended version, where major changes are rewritten timeline based animations to sandwich (syncbase) model, improved graphics and added couple of new effects. I hope you'll like it... ;-) Fonts are of different sizes in different SVG browsers; this demo is, however, best viewed in Gecko trunk nightbuilds.

SVG Cowboys Game cross-browser experiment

2010-1-13 | svg | game

Back in the early 2004, I created game called SVG Cowboys for Adobe SVG Viewer (exclusively), depending heavily on SMIL. Today, since SMIL/SVG implementation in common browsers is getting quite mature, I tried what I always wanted: patch the game in a way, to be playable/runnable in Gecko, Presto and Webkit. And this dream comes true! It is not perfect and this version is simplified and not as good as original, but still... decent attempt, I'd say. During compatibility conversion I was forced to face many problems and there is (brief) list of what I did:

I know about many and many issues, in this conversion, but I'll welcome your bug reports, of course!!
PS: For Gecko users - do not forget to use latest trunk nightly build, release from version 20100113 on!

Gecko has SMIL syncbase support now

2010-1-13 | svg

Many and many thanks to Brian, Daniel and others - Gecko in the development trunk has from today patch, enabling one of the hottest SMIL features - support for begin and end attributes of declarative animations based on other animation (named) events state (aka sandwich timing model). Bravo!! guys ... and thank you again!!!

SVG Cavern Fighter 1.03 bugfix release

2010-1-2 | svg | game

Only bugfixes in this minor update + compatibility table extended. Changes are:

Browser / Platform SMIL Animations (2p) Audio Support (1p) Audio Prefetching (1p) Crashes (1p) Number of files / Size to download (1p) Feature Points
Firefox 3.5.6 / Wxp,W7,Linux,MacOsX no yes, perfect (ogg) yes, via data:base64 embedding never 1 / 154kB 4
Firefox 3.6 Beta 5 / Wxp,W7 no yes, perfect (ogg) yes, via data:base64 embedding never 1 / 154kB 4
Firefox 3.7a / Wxp,W7 yes yes, perfect (ogg) yes, via data:base64 embedding never 1 / 154kB 6
Firefox 3.7a / Linux yes, but not fluent yes, with glitches(ogg) yes, via data:base64 embedding never 1 / 154kB 4.5
Opera 10.10 / Wxp,W7 yes yes (wav) partial, via loud preloading (bad solution) never 21 / 1349kB 4.5
Opera 10.10 / Linux,MacOsX yes, but not fluent yes, with glitches (wav) partial, via loud preloading (bad solution) never 21 / 1349kB 3.5
Opera 10.5a1 (2009 build) / Win7 yes yes (wav) partial, via loud preloading (bad solution) a lot 21 / 1349kB 3.5
Opera 10.5a2 (2010 build) / Win7 yes yes (ogg) yes, via data:base64 embedding sometimes 1 / 154kB 5.5
Chrome 4.0.249 / Wxp,W7 yes yes, but with glitches (ogg) yes, via data:base64 embedding sometimes 1 / 154kB 5
Chrome 4.0.249.43 / MacOsX yes yes (ogg) yes, via data:base64 embedding never 1 / 154kB 6
Safari 4.0.4 / Wxp,W7 yes no no never 1 / 154kB 4
Safari 4.0.4 / MacOsX yes yes (ogg) yes, via data:base64 embedding never 1 / 154kB 6

Three perfect browsers are now available for game play - Firefox 3.7 on Windows and Safari/Chrome on MacOsX and latest alpha of Opera browser is almost as good. Sound glitches and not fluent animation in majority cases is due to the out of CPU performance issue, so really really looking forward to HW acceleration of graphics and sound...
Performance tip for fluent gameplay: disable Object's mark and Decorations options (and in the extreme disable also Sound support)

SVG Cavern Fighter 1.02 compatibility and optimization release

2009-12-28 | svg | game

Today I spent part of my sickday by tuning compatibility of the game for other browsers and solving audio prefetching issues. I did quite well and cross-browser compatibility is much better now.
Switching for Firefox from more individual files wav audio to single file and ogg + compression brings many benefits:
* 23 files to download previously versus 1 file now
* 1005kb to download previously versus 154kB now
* audio prefetching working well versus working perfectly now
* 346kB has non-compressed single file versus 154kB with best gzip compression available
and performance drop is minimal (by my amateurish measurements ;-)
Changes are:

Table of current game's compatibility and features

Browser / Platform SMIL Animations (2p) Audio Support (1p) Audio Prefetching (1p) Crashes (1p) Number of files / Size to download (1p) Feature Points
Firefox 3.5.6 / Wxp,W7 no yes, perfect (ogg) yes, via data:base64 embedding never 1 / 154kB 4
Firefox 3.6 Beta 5 / Wxp,W7 no yes, perfect (ogg) yes, via data:base64 embedding never 1 / 154kB 4
Firefox 3.7a / Wxp,W7 yes yes, perfect (ogg) yes, via data:base64 embedding never 1 / 154kB 6
Opera 10.10 / Wxp,W7 yes yes (wav) partial, via loud preloading (bad solution) never 21 / 1349kB 4.5
Opera 10.5a / Win7 yes yes (wav) partial, via loud preloading (bad solution) a lot 21 / 1349kB 3.5
Chrome 4.0.249 / Wxp,W7 yes yes, but with glitches (ogg) yes, via data:base64 embedding sometimes 1 / 154kB 5
Safari 4.0.4 / Wxp,W7 yes no no never 1 / 154kB 4

As you can see, game is best playable with Firefox 3.7, then Chrome and stable Opera, follow Safari, Opera alpha and Firefox 3.5 and 3.6 are the last, because of missing support for SMIL animations.

SVG Cavern Fighter 1.00 Released

2009-12-27 | svg | game

So, doing faster than expected, I'm releasing version 1.0 of my latest game ... right now!! :-) I updated a lot of minor features and hope you'll enjoy all enhancements with pleasure.
Do not forget to upgrade to latest nightly version of Firefox, even day or two elder versions (before 2008-12-27) are crashing! Opera is also performing quite well, except of in-game music playback (lacks support for ogg format) and is a bit slow, but good enough (latest stable version 10.5 alpha is fine). Webkit based browsers still miss support for dynamically created animations :-(
I do not plan to add more features to the game so far, only fix reported bugs (Thank you, Petr Hubacek, for excellent betatesting!). Only feature I've still bad feeling about is audio prefetching - all advices are welcome.
My intention had been to pack all audios using base64 and embed to the single document using "data://" protocol. Unfortunately, audio HTML5 JavaScript API does not support it and Opera does not support foreignObject properly (where data protocol should work in source attribute of <audio> tag), so if I'll discover/know some better way of prefetching, I'll definitely try it! List of changes in this major version is:

Update on 2009-12-28 12:00

Opera 10.5 Alpha

2009-12-25 | svg

Pre-release version of incoming Opera version looks very promising - although stability is not good, performance of both JavaScript and rendering is really really good!

SVG Hourglass demo

2009-12-24 | svg

!!!Happy Christmas to all SVG believers!!! :-) :-) :-) Today I'm announcing my another small demo - SVG Hourglass - as a gift for you ;-)
Has a lot of imperfections, primarily due to the Gecko limitations (missing support for animateMotion, animate begin=event etc.), but it is good enough to be published already, esp. on such occasion ;-)
So, enjoy it, and again, HAPPY CHRISTMAS, EVERYONE!!
It runs great in Firefox 3.7+, Opera 9+, ASV and Chrome 3+/Safari 4+

Minor update of Cavern Fighter 0.88

2009-12-15 | svg | game

Because there's not enough of free time, and probably till the end of year it will go no better, I'm releasing this minor and primarily bugfixing release of my recent game. Betatesters still more than welcome!! ;-) Changes are:

SVG Cavern Fighter 0.87

2009-12-13 | svg | game

So, Christmas shopping and packing almost done (Imagine! Me and my girlfriend bought and packed more than 70 gifts!!). Unfortunately, baking of sweets barely started... :-(
Anyway ... I had been able to spent couple of hours on updating and fine-tuning the game even more as well. Below you can, as usually, found log of changes made. Enjoy it ;-)

SVG Cavern Fighter 0.86

2009-12-7 | svg | game

Thank some of you for feedback. I'm trying to do progress primarily in mentioned areas. Safari on Windows is working strangely, but references from Mac are not so bad... Change log for this version is:

SVG Cavern Fighter 0.85

2009-12-5 | svg | game

Another couple of hours spent and I really feel game is becoming quite good looking and funny. Added above else audio support and changed look a lot.
Firefox 3.7 on Windows is my development and target platform, I do not deny, so I welcome feedback/hints from other platforms. Just now, during this release, I discovered that Opera is terribly slow (even with small window) and sounds are not working in Chrome (is it possible Chrome does not support WAV?) and window.resizeTo() seems to be working only in Firefox...
But, it's still beta version, remember ;-) Now I desperately need beta testers, feature sugestors, code/graphics/sounds contributors - simply, every help is welcome!!
Please, contact me / give me your feedback / via e-mail on marek(dot)raida(at)gmail(dot)com
Changes from last public version are:

Update 2009-12-6: Opera browser performance could be improved a bit by decreasing SVG target frame rate (about:config, SVG fold, Target Framerate, set value to 15, and optionally also Rendering Quality, set value to 15), followed by browser restart...

SVG Cavern Fighter Update (v0.83)

2009-12-1 | svg | game

Thank you for your feedback. Most requested is better visualization of collision and here comes an update... ;-)
Change log:

Game: SVG Cavern Fighter Public Beta

2009-11-30 | svg | game

I feel that I've spent quite enough time on my latest game to announce it public beta and gather some feedback or obtain even some hints/advices/help on further development ;-) Rough idea is based on good old speccy Scramble like Cavern Fighter game. My game is playable already and although many ideas are not implemented yet (and maybe never will), many features are in place already:

What is not implemented and should be, before can be game considered at least version 1.0 is:

I appreciate any help, especially related to performance tweaking, cross OS/Browser compatibility, audio, but also with graphics, game ideas or bugs. Contact me via e-mail, please, marek(dot)raida(at)gmail(dot)com. My goal is to make game fully working in
Firefox 3.7+ with SMIL turned on (about:config => svg.smil.enabled = true) and Opera 10.x. Chrome 3+/Safari 4+ suffers from current Webkit's issue with dynamic generation of SMIL animations, so elements in cave are static, not movable :-(
Support for ASV is not part of my plans!
..and... thank you for your feedback ;-)

SMIL disabled for Firefox 3.6

2009-11-12 | svg

...and this time finally, so Firefox 3.6 beta 2 is the last official build where could be SMIL turned ON (about:config => svg.smil.enabled = true). So, guys, from now on we should look forward to 3.7 even more eagerly!!

Rotate and Jump with Reflection

2009-11-04 | svg

So, another experiment is out. I started with reflection effect on the water (sea), then added couple of other animations. Result is far from complex animation, but worth of publishing as version 1.0 (my opinion, yes), especially considering fact, that it could, like many and many other experiments, remain hidden and forgotten on some local computer... ;-)
So here comes my animated text with sea water reflection effect during sunset. It is really simple, couple of texts stupidly duplicated to another transformed group to achieve reflection and (almost) nothing else. How do you like it?
As you may notice, animations are not so fluent in Firefox, but this a bit simplified version works very fluently even in Firefox (with dropped gradient animations, transparencies and cloud movements). I believe it to be only matter of time, before Mozilla guys will tweak the drawing performance a bit more (and I'm really really looking forward to the public release of version 3.7!)
It runs great in Opera 9+, Firefox 3.6a-b2, 3.7+ with SMIL turned on (about:config => svg.smil.enabled = true) and ASV. Chrome 3+/Safari 4+ have not implemented masking yet and so there is no reflection at all :-( (FFX 3.6 does not animate gradient's stop colors, but 3.7+ does!)

Jack-o'-Lantern in SVG

2009-11-03 | svg

Reminded by Jeff and his Halloween Vomit theme I started thinking about some nice Halloween SVG I saw couple of years back. After googling a while I found the original (by Eric), and it really is nice, despite its origin in year 2001.
However, as expected, it works in ASV only. But I've spent 15 minutes and updated it to be compatible enough to run well in all common SVG browsers. So enjoy this old-but-gold piece!
Runs great in Opera 8+, Chrome 2+/Safari 3+, Firefox 1.5+ and of course ASV. Gecko & Webkit miss hover support on buttons, but this is only minor feature... and old FFX does not support tref nor opacity...

SVG Dance! (Text Effect)

2009-10-28 | svg

Today I've spent three hours of our national holiday by further experimenting with SVG text. I discovered that Firefox does not support direct animation of text element ('cause it is list, not just number), but encapsulation in group element solved the problem. Another known issue with Webkit is that it's not possible to dynamically create SMIL animation, so this demo is the static one, to achieve best cross browser compatibility.
Original idea to generate via script (which is logical approach in this case) o lot of texts with different timing to achieve "tailing effect" had been simplified in the end, but despite it, final effect is roughly what I planned from the beginning...
Runs great in Opera 9+, Chrome 3+/Safari 4+, Firefox 3.7+ with SMIL turned on (about:config => svg.smil.enabled = true) and also ASV (ASV is surprisingly performing worst in case of many text transformations, hmmm...)

SVG Chisel Text Effect

2009-10-25 | svg

Another demo which demonstrates power of SVG - popular chisel effect on text, implemented in SVG. I'm personally not sure, if it is better with or without SMIL animations, but both are nice.
Runs well in Opera 9+, Chrome 3+/Safari 4+, ASV and Firefox (it works good and without animations in version 3.0 or later and could be considered even nicer than animated one).

SVG Image Gallery Firefox Update

2009-10-19 | svg

Firefox has been patched and supports now floating values for SMIL animations. So, as a results, now works properly old wonder Adobe SVG demo and I prepared also different version of my SVG Image Gallery (and yes, also the simplified static version).
Because Firefox does not support <set> yet I used <animate> with calcMode="discrete" instead, to do the trick of semi-transparency, which Gecko has been not supporting previously!)
However, it causes Firefox to crash after some dozen seconds (probably on remove action from DOM of element with SMIL animation using floating values - my guess), but it's surely some temporary bug and I filled in some crash reports already) - Patched - thx Daniel! ;-)
Updated code runs great in Opera 9+, ASV and Firefox 3.7+ with SMIL turned on (about:config => svg.smil.enabled = true); in Chrome 3+/Safari 4+ dynamic insertion (via JavaScript) of SMIL events does not work and it is known bug, so I'm not able to fix it in no way...
Update 2009-10-19, one hour later: I discovered that if SMIL animation finishes before removing from DOM, we're able to avoid the problem ;-) , but it's still there :-(...

SVG Image Gallery (ZX Nostalgy Vol. II)

2009-10-15 | svg

So, I worked a bit on my next idea - animated SVG image gallery - and there comes my first attempt. It is far from complete state, but working already. I used again ZX Spectrum screenshots as presentable images (static gallery of 256! nice speccy titles), but they could be easily reconfigured to something else. Goal is to prepare easily installable and configurable image gallery script.
It uses SMIL and scripting altogether and works great in most of browsers, except of Webkit, but it is just a matter of time to find out what's wrong (I hope).
It runs great in Opera 9+ and ASV. Firefox 3.6a-b2, 3.7+ with SMIL turned on (about:config => svg.smil.enabled = true) runs fine, but without semi-transparencies during flipping image; Chrome 3+/Safari 4+ seems to be not working on dynamic creation of SMIL animations... :-(
However, there is compatible, more simple version of gallery, working in Chrome/Safari as well! ;-)
Animated GIFs with blink effects were converted to static images to avoid problems in Opera etc., so Bruce Lee and Batman are back!

ZX Spectrum SVG Loader 1.0 (with sound)

2009-10-11 | svg

Not satisfied with synchronization issues and really really missing sound support, there is final version of my ZX Loader.
Using good old sound manager (SWF based, for achieving cross browser functionality), and thus also HTML/iframe encapsulation is must. Also synchronization problems were solved; not relying anymore on SMIL & JS sync, animations are chunked and every chunk is started from script always (so SMIL and JS are both still in use, but keeping sync via scripting.)
Also random screenshot picking mechanism had been changed to array shuffle, to achieve better order experience. ;-)
Please, be patient for animation to start for the first time...
No changes to compatibility - it still runs great in Opera 9+, Chrome 3+/Safari 4+ and ASV but not Firefox.

ZX Spectrum SVG Loader 0.75

2009-10-07 | svg

Keeping another of my promises, here comes ZX Spectrum Loader demo. It contains more than one hundred randomly loaded title screens from the most famous Speccy games. SVG and SMIL is in use for for creating loading border stripes and I hope final effect is very close to the real ZX loading effect (you can compare it to for example this video ;-)
It runs great in Opera 9+, Chrome 3+/Safari 4+ and of course ASV. Sadly, no Firefox this time, it freezes hopelessly on used animations and do not support's SMIL event starts... :-(
SMIL timed events and JS timed events are not synchronized and after some time you'll be able to notice it, but never mind... it's juts short demo! ;-)

Update: Removed animated images cousing troubles (batman1, brucelee, swordsofbane) and total number of screenshot finalized to magic number 128!
If you wish to see them all, there is the gallery page (mostly taken from www.worldofspectrum.org ;-)

ZX Spectrum SVG demo 2.0

2009-09-24 | svg

Keeping my promise from couple days back, I got back to ZX Spectrum demo and done massive update.
There are all the buttons text, properly positioned. I have been forced to avoid use of tspan, 'cause it behave "ugly" during scaling and is inconstent between different browsers. So you can scale freely now and it keeps basic formatting sufficiently. Animation is very fluent on small scale, but texts are not legible, se we've to cope with bigger size :-(
And voila! ...here we go! With gradient on buttons, animated gradient rainbow effect and masked text I consider it worth of version 2.0! I have ideas for other effects and improvements and hope to create some other variant after my just starting vacations :-)
It runs great in Opera 9+ and Firefox 3.6a-b2, 3.7+ with SMIL turned on (about:config => svg.smil.enabled = true) and Chrome 3+/Safari 4+, with exception to text masking, too. ASV does traditionally well, but is not able to display some UTF-8 characters, huh :-(

Old Adobe SVG Samples

2009-09-23 | svg

Selected samples from old Adobe SVG samples web and updated to work, at least partially, in modern browsers. Although old, still quite inspirational and showing, which modern web browser is best in SVG implementation. It is, without suprise, Opera, followed by Firefox and Webkit core. Webkit has better SMIL implementation than Firefox but is beaten down in the area of filters. See and compare, yourselves, enjoy them... ;-)

ZX Spectrum SVG Tribute

2009-09-23 | svg

Idea from nowhere appeared to me, to create some tribute to good, old (but gold) Speccy. Drawing Speccy itself is not very creative and entertaining process, but I consider it good enough to publish it already. (Although I plan to enhance it even more, in the near future).
I have more ideas so let's hope to find enough time to turn them to become something real. So, it is initial version and from lack of time I prepared only one more, bouncing version. However, it seems to be quite performance demanding :-( , esp. in Firefox.
It runs great in Opera 9+, Chrome 3+, Safari 4+ and Firefox 3.6a-b2, 3.7+ with SMIL turned on (about:config => svg.smil.enabled = true). I do not test other browsers, but expect all my recent demos to be working properly in ASV and Squiggle as well.

Good Spirit Animation

2009-09-22 | svg

I work for LMC company these days and company has in the sign of its flagship Jobs.cz portal GIF animation of flying "Good spirit", created by company's founder in its early days (more than 10 years ago).
Recently, I saw this animated GIF in presentation, stretched to whole screen and it was really ugly, pixelized and, well, ...raster based!
So I found spare 30 minutes and created vector version and with effort of additional 10 minutes slightly more cheery, enhanced version ;-).
It runs great in Opera 9+, Chrome 3+, Safari 4+ and Firefox 3.6a-b2, 3.7+ with SMIL turned on (about:config => svg.smil.enabled = true).
Update 2009-09-25: Added one more Good Spirit version, this time it is Good Spirit with drop shadow effect...

Famous SVG Digging Animation Resurrected

2009-09-21 | svg

Original demo from Antoine Quint has trouble running in other browsers (plugins) than ASV. I modified original file and result you can see.
Now it runs great in Opera 9+, Chrome 3+, Safari 4+ and even Firefox 3.6a-b2, 3.7+ with SMIL turned on (about:config => svg.smil.enabled = true).
For Firefox very limited support of SMIL events, there is, however, some dirty trick in JS in place... but it is working at least acceptably, if not optimally...

SVG Turtles

2006-10-06 | svg

My first SVG game created, compatible with only ADOBE SVG Viewer 3.x/6a but maybe compatibility with Opera should not be a great trouble. I'll see, if there is some time, I could try. Historical HighScores are lost, so at this new location it's starting from scratch again. :-)
Game controls by cursor keys or both mouse buttons (left and right only).

SVG Cowboys

2006-10-06 | svg

My second SVG game created, compatible again with only ADOBE SVG Viewer 3.x/6a. I tried to make it compatible with Opera but current status is, that there is something strange with applying mask/clippingPath elements to the dynamically created elements :-( Avaiable also as compressed one-file package. Again, as to for Turtles, historical HighScores are lost, so at new location it's starting from scratch... Cowboys was my most popular game, having on the highscores list about two thousand of entries after six months of public availability.
Game controls by mouse + mouse buttons (left and middle) and Space.

SVG Bubbles

2006-10-06 | svg

Not a game nor demo. I was just inspired by O2 banners during massive Telefonica's Czech Republic so I created quickly some SVG clones, to prove simplicity of creating something like oxygen bubbles in water in SVG and SMIL. There are also three additional versions available, for Firefox with SMIL script, full-screen with filters and one "vodafonized" version ;-)

SVG Basics in Mozilla (Czech only)

2006-10-06 | svg

Short How-To-Start / Learning article I wrote at the time of Firefox 1.0 when SVG was only in the trunk and not in official builds. However, it was never published... until now, and although a bit outdated, perhaps still usable for many SVG newbies ;-)

SVG Submarine Assault

2006-10-02 | svg

Comeback to the SVG gaming arena after a while... My trully first SVG cross-browser's game, and quite good one, I hope. let's try it and you'll see.v There is even sound support without Adobe's native audio extension, but through Flash sound bridge, so with far larger compatibility. More details available on the game detail page.
Game controls by cursor keys, Space and Shift.