Beached as bro

January 22nd, 2009

One last post as I race out the door. It appears my attempt to quash the enthusiasm surrounding SMIL doesn’t seem to have worked. It seems like some people are genuinely interested in SMIL and not just for Acid3!

This weeks developments:

Today I ran up against some questions about zero-length intervals so if you have any insights there I’d be glad to hear from you! I’ve adjusted our timing model based on what I think SMIL intends.

That brings to an end my stint with the NZ office. I had a great time with the fellas here–cheers guys! Or as some people here say, “chur!”

Wet blanket

January 17th, 2009

Well, SMIL has finally landed on mozilla-central! It’s been a long road since I first started out on this project nearly 5 years ago but we’ve finally reached the first milestone! Thank you very much to many who have helped or even just offered encouraging comments but thank you particularly to Daniel Holbert, Robert O’Callahan, Chris Double, and Tim Rowley for their massive contributions. It’s been a team job all the way.

But althought we’ve come a long way I want to emphasise that we still have a long way to go. I’ve updated the status page to give you an idea of the features still remaining to be implemented. In particular, integration with SVG and CSS is a massive task (although it makes up only two rows of the chart) and by far the bulk of animation demos and tests won’t work without this. Also, syncbase timing is a big job.

The good news is <animateTransform> is in the pipeline (ready for review any day now) and for maybe the first time ever, there’s a little bit of momentum behind SMIL.

ただ今!

January 1st, 2009

Yay, back to SMIL! This is just a brief update to let you know about the state of SMIL in Mozilla!

Here’s the low-context summary:

  • Daniel Holbert has been taking on this work and pushing it along steadily (thanks a million Daniel!!)
  • I’ve joined the Auckland office for my summer break (from December to the end of January) to work full-time on SMIL.
  • A (very) basic patch is nearly ready to land after it undergoes some final review and rework. After that SMIL should be on the trunk but disabled by default. I’ve updated the status page to reflect the features of this patch.
  • A proper implementation of <animateTransform> is also ready but needs review. I’ve written up (in painfully boring detail) some spec issues I encountered regarding <animateTransform>.

Next on the agenda I hope to be working on syncbase timing.

Thanks again for all your support and Happy New Year! Godt nytår! あけましておめでとうございます! 新年もよろしくお願いいたします!

Farvel

April 5th, 2007

You’ve probably worked it out, but I’m no longer working on SMIL at the moment. tor has very kindly helped out and has been doing some work on this but it will not make it for Firefox 3.

From now on, if you want to track the progress of SMIL in Mozilla I recommend:

As for me, I’m travelling around Asia (check the blog [removed] if you’re really curious), so unless someone can sponsor me to work on this in Asia I can’t really offer much time to the project.

Thank you to everyone who helped me to get SMIL this far. I hope that someone else can pick it up.

SMIL

July 25th, 2006

Wow, what a heading! Some would call it lack of imagination, I like to think of it as artistic restraint – it’s just too easy to make puns with “SMILe”!

Progress on SMIL continues, albeit in slow motion. Just a really quick note for those one or two people who want to know what’s going on:

  • Not only does it compile it now runs too!
  • All my visual tests pass again
  • All my unit tests pass again
  • My early attempt at <animateTransform> is up and running again and seems to work.

I need to do some tidying up before it’s ready for review. Most of all:

  • Some deCOMtamination
  • Making better use of Moz utilities (string iterators, nsTArray etc.)
  • Removing redundant code
  • Fixing the scope of the animation controller

It’s hard to give a timeframe for this – it depends a bit on my workload with other things (Japanese, Bible college, surfing, life – not to mention my day job). Hopefully a month?

As for new feature work, I’ll have to re-negotiate with work before I can do that. So I’d really appreciate any help at all. The SVG guys have already been incredibly helpful and have begun preparing the SVG code so it can be animated more efficiently. Thanks guys!

SMIL compiles again

June 12th, 2006

Today is the Queen’s birthday public holiday in Australia. In Sydney the weather is freezing and the surf is huge. All this means I’ve finally got my SMIL work to compile against the trunk again. Now to get it working again!

Thanks to the many people who have left very encouraging comments in the meantime. I’ll do my best to get this up and running as soon as possible. One very experienced developer has suggested they might be able to contribute which would really help bring this to reality.

I’ll wait until it’s actually working (and I’ve done some more deCOMtamination) before posting another patch. But thanks for being patient with me!

SMIL Animation in Mozilla report

January 9th, 2006

I’ve published the report I wrote for regarding my project implementing SMIL Animation in Mozilla. At 147 pages and ~700kb it’s fairly detailed but I hope it will be of interest to some. Thanks to all who helped. Here it is:

Also, I was invited to represent the Software Engineering faculty by presenting my project at an Engineering project competition run by my university from which I picked up the prize for innovation which means I got paid for working on Mozilla! Stoked!

Finally, I’m taking a bit of a break from this work at the moment. I nearly went crazy finishing the uni project last year and right now it’s summer so I’m getting back into surfing, swimming, running, riding, squash and maybe even some karate! Maybe in a month or two I’ll be ready to look at the code again and I’ll try to tidy up the SMIL Animation code.

SMIL Animation patch

November 5th, 2005

G’day! I’ve produced a new patch to provide SMIL Animation for SVG. Since last time I’ve added:

  • keySplines
  • keyTimes
  • accumulate
  • restart
  • min, max
  • ElementTimeControl DOM interface

I’ve added a status page showing just what’s been implemented and I’ve also updated the test cases.

This represents all the features I intend to implement this year although I may attempt a draft implementation of <animateTransform> for demonstration purposes. The next obvious thing to implement is syncbase timing although none of this will be of much use until we determine how to represent animated values in SVG and CSS!

For now I’ll be working on a report of my attempts and documenting some difficulties I’ve come across with SMIL.

Here are the patches:

smil-anim-2005-11-03-2024.patch
smil-anim-2005-11-03-2024-wo-configure.patch — The same but without the patch to configure—this is much smaller and more likely to work but requires you have autoconf-2.13.

I’ve (hopefully) fixed the paths in the patch so you should be able to apply it from mozilla with:
patch -p0 smil-anim-2005-11-05-1539.patch

Known issues:

  • An SVG image referenced via <object> will remain paused when returning to the page using the back button if the page is in the bfcache. This is because page transition events are not received. If anyone can help me with this I’d really appreciate it!
  • An SVG document added entirely via script won’t be animated. (See this test case.)

SMIL work: performance and integration

October 16th, 2005

Here’s an updated patch with my latest changes including:

  • Optimised performance–a lot of unnecessary rendering has been filtered out and the profiling I was able to perform suggests this has made a significant difference, especially when the animation is frozen.
  • Animation now pauses and resets when the page is cached in the bfcache.
  • Better thread safety.
  • Animation now starts at the same time as the SVGLoad event (although this has meant a regression in the deferred tree test case).
  • Support for pausing via the DOM (see this test case).
  • Animation is now disabled if the image.animation_mode pref is set to ‘none’ (although I’m not sure if this is a good idea).
  • Fixed the to-animation prioritisation issue Olaf pointed out.
  • The frozen to animation test case now produces the correct result in all cases (although there are still unresolved issues with regard to seeking).

The latest patch is at:
http://brian.sol1.net/svg/patches/smil-anim-2005-10-16-1736.patch.

I’ve also put up my configure script as some people have had trouble regenerating the script from configure.in.

You might like to read Twitwi’s comment for some help on applying the patch.

Fill modes (nearly) there

October 4th, 2005

Aided by flat surf but hampered by perfect weather I’ve spent most of the last week tidying up my code and updating the documentation on the wiki. The latest patch is hopefully much better, or at least not quite as hideous as it was in some parts.

Fill modes are now implemented except for one edge case of a frozen to animation that is stopped in the middle of the simple duration. It’s the third case in this test.

I’m putting feature work on hold for a while to focus on a few obvious optimisations such as suspending the timer when it’s not needed.

Here’s the latest patch: http://brian.sol1.net/svg/patches/smil-anim-2005-10-04-2138.patch