<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nothing new</title>
	<atom:link href="http://brian.sol1.net/svg/feed/" rel="self" type="application/rss+xml" />
	<link>http://brian.sol1.net/svg</link>
	<description>News about my attempts to shape and implement animation in Mozilla and on the Web</description>
	<lastBuildDate>Tue, 15 Jan 2013 05:08:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Help with math(s)</title>
		<link>http://brian.sol1.net/svg/2013/01/15/help-with-maths/</link>
		<comments>http://brian.sol1.net/svg/2013/01/15/help-with-maths/#comments</comments>
		<pubDate>Tue, 15 Jan 2013 01:57:57 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>
		<category><![CDATA[Web Animations]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=198</guid>
		<description><![CDATA[UPDATE: I originally prepared this post before others working on the Web Animations spec assured me they would find a solution. I posted it password-protected for their sake not realising it would show up on planet! Sorry! Anyway, here is the original post for those who were curious. There are already some folks working on [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE:</strong> I originally prepared this post before others working on the Web Animations spec assured me they would find a solution. I posted it password-protected for their sake not realising it would show up on planet! Sorry! Anyway, here is the original post for those who were curious. There are already some folks working on this, but other input may still be useful!</p>
<p>One of the limitations of CSS and SVG animations is that you can&#8217;t do a bouncing effect. That is, you can&#8217;t easily do this:</p>
<figure style="text-align: center">
  <iframe style="width: 100%; height: 200px" src="http://people.mozilla.org/~bbirtles/blog/bouncing.svg" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<caption>Bouncing in SVG. Click the circle to restart.<br />
(If the image fails to show, try this link: <a href="http://people.mozilla.org/~bbirtles/blog/bouncing.svg">http://people.mozilla.org/~bbirtles/blog/bouncing.svg</a>.)<br />
</caption>
</figure>
<p>You can emulate it (as above), but it really should be the job of the timing function to do this kind of easing.</p>
<p>In <a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/web-anim/index.html">Web Animations</a> we&#8217;ve been trying to address this. At first I tried creating a simple smoothing function where you&#8217;d specify a series of points and it interpolates smoothly between then. This proved more complex than expected so I narrowed the problem down to just spring-like animations.</p>
<p>It&#8217;s easy to generate a spring-like function&mdash;I found a sine wave plus exponential dampening plus some scaling of the period does ok, but in terms of parameterisation I <b>think</b> you probably want the following handles:</p>
<dl>
<dt>overshoot</dt>
<dd>How far past the target value to reach on the first cycle of the spring-like motion. 1.5 means overshoot by 50% (when exposed to CSS and SVG, this parameter might be exposed as just &#8217;50%&#8217; instead of 1.5). This is particularly useful if, for example, you&#8217;re animating something inside a container and want to be sure the effect won&#8217;t fall outside the bounds of the container.</dd>
<dt>elasticity</dt>
<dd>How much should it bounce back and forwards before converging on the target value? Higher numbers mean more bouncing. After discussing with the others working on Web Animations spec, this may or may not be the most suitable parameter. If at all possible however we want to reduce the number of parameters to avoid being <a href="http://qt-project.org/doc/qt-4.8/qml-springanimation.html">as complex as QML</a>.</dd>
</dl>
<p>Parameterising the spring function in those terms proved a bit beyond my mathematical abilities. I made the following prototype but it&#8217;s all kinds of clumsy.</p>
<figure style="text-align: center">
<iframe style="width: 100%; height: 400px" src="http://jsfiddle.net/CZ3Kn/11/embedded/result/" allowfullscreen="allowfullscreen" frameborder="0"></iframe></p>
<caption>
If the iframe above doesn&#8217;t appear, try this link: <a href="http://jsfiddle.net/CZ3Kn/11/embedded/result/">http://jsfiddle.net/CZ3Kn/11/embedded/result/</a>.<br />
Note that it won&#8217;t work in Internet Explorer since IE doesn&#8217;t support SVG animation.<br />
</caption>
</figure>
<p>Problems:</p>
<ul>
<li>Doesn&#8217;t work in all ranges. For example, for an <var>overshoot</var> of 5, the second peak is higher than the first. An <var>overshoot</var> of 1 also doesn&#8217;t work.</li>
<li>The first part of the curve (on the initial path to the overshoot value) seems wrong&mdash;sometimes there are lumps or kinks in it.</li>
</ul>
<p>Rough requirements for the function, <code>f(x)</code>:</p>
<ul>
<li><var>overshoot</var> is a value in the range [1,&infin;)</li>
<li><var>elasticity</var> &mdash; not even sure if this is the right parameter. It would probably be ideal if <var>elasticity</var> of 1 simply made the animation go to the overshoot value and then return to 1 without any bouncing. A value of 2 might make it overshoot once, dip below 1, then return on 1.</li>
<li>For 0 &le; <var>x</var> &le; 1 the global(?) maximum of the function is <var>overshoot</var> and this should also be the first maximum in the range</li>
<li><code>f(0) = 0</code> and <code>f(1) = 1</code></li>
<li>When elasticity is high or overshoot is high it should probably reach the overshoot value sooner since the bounce component will take longer to complete</li>
<li>The function should probably not go negative initially, unless <var>overshoot</var> > 2 in which case it might be ok.</li>
<li>Not sure if the first part should be ease-in.</li>
</ul>
<p>As I said, there are already some folks working on this, but if you want to have a try you can <a href="http://jsfiddle.net/CZ3Kn/11/#fork">fork the fiddle above</a> and hack away. Alternatively, there is an <a href="http://people.mozilla.org/~bbirtles/blog/timingfunctions.xls">Excel spreadsheet</a> or <a href="http://people.mozilla.org/~bbirtles/blog/timingfunctions.ods">OpenDocument spreadsheet</a> version.</p>
<p>On the other hand, if you think this is not the most useful function or something more general is possible, feel free to suggest that too!</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2013/01/15/help-with-maths/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Animations</title>
		<link>http://brian.sol1.net/svg/2012/10/31/web-animations/</link>
		<comments>http://brian.sol1.net/svg/2012/10/31/web-animations/#comments</comments>
		<pubDate>Wed, 31 Oct 2012 07:06:20 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>
		<category><![CDATA[Web Animations]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=189</guid>
		<description><![CDATA[It must be time for my biannual blog post and this time I&#8217;d like to introduce a new development in animation for the Web, called, creatively enough, Web Animations. Some of you may have heard rumblings of an attempt to overcome some of the limitations with both CSS and SVG animations and unify them at [...]]]></description>
			<content:encoded><![CDATA[<p>It must be time for my biannual blog post and this time I&#8217;d like to introduce a new development in animation for the Web, called, creatively enough, Web Animations.</p>
<p>Some of you may have heard rumblings of an attempt to overcome some of the limitations with both CSS and SVG animations and unify them at the same time. Well, that&#8217;s what some folks at Google, Adobe and myself (Mozilla) are trying to do.</p>
<p>I&#8217;ve put together a video of some of the ideas we have so far:</p>
<figure style="text-align:center">
  <video controls><source src="http://people.mozilla.org/~bbirtles/pres/svgopen-2012/web-anim-demo-1-with-captions.mp4" type="video/mp4"><source src="http://people.mozilla.org/~bbirtles/pres/svgopen-2012/web-anim-demo-1-with-captions.webm" type="video/webm"></video></p>
<figcaption>
    An in case the video gets synderadicated here&#8217;s a Youtube link: <a href="https://www.youtube.com/watch?v=VvNQNtIfXXI">https://www.youtube.com/watch?v=VvNQNtIfXXI</a><br />
  </figcaption>
</figure>
<p>If you&#8217;re interested in the details, the latest version of the spec is here:</p>
<div style="margin-left: 2em; margin-right: 2em">
<a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/web-anim/index.html">https://dvcs.w3.org/hg/FXTF/raw-file/tip/web-anim/index.html</a>
</div>
<p>A few points to bear in mind:</p>
<ul>
<li>There are still lots of holes. The behaviour of pausing and reversing is particularly in flux at the moment and the integration with media is still just thoughts, yet to be fleshed out and spec-ified.
<li>The integration with CSS and SVG will be specified in <a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/web-anim/css-integration.html">separate</a> <a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/web-anim/svg-integration.html">documents</a> (just placeholder text for now).
<li>If you&#8217;ve got suggestions, please feel free to send feedback to <a href="http://lists.w3.org/Archives/Public/public-fx/">the public-fx W3C mailing list</a> with the subject <code>[web-anim]</code> at the start of the subject.
<li>Progress from my end has slowed down recently due to some workshops I&#8217;ve been involved in but I&#8217;ll hopefully be back into it by the end of November.
<li>We have a shim in the works (that&#8217;s what the video uses) but it&#8217;s currently awaiting approval for release. Should be ready soon.
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2012/10/31/web-animations/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
<enclosure url="http://people.mozilla.org/~bbirtles/pres/svgopen-2012/web-anim-demo-1-with-captions.mp4" length="14425481" type="video/mp4" />
<enclosure url="http://people.mozilla.org/~bbirtles/pres/svgopen-2012/web-anim-demo-1-with-captions.webm" length="8914111" type="video/webm" />
		</item>
		<item>
		<title>Parapara Animation</title>
		<link>http://brian.sol1.net/svg/2012/01/27/parapara-animation/</link>
		<comments>http://brian.sol1.net/svg/2012/01/27/parapara-animation/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 08:40:01 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=173</guid>
		<description><![CDATA[About a week ago Mozilla Japan put on a two-day event in Tokyo called Mozilla Vision 2012. It was a great weekend with several hundred people coming to talk about what it means to be Open, and, in very Japanese-style, see some cool robots (courtesy of Takahashi Tomotaka-san). Personally, I was involved in running the [...]]]></description>
			<content:encoded><![CDATA[<p>About a week ago Mozilla Japan put on a two-day event in Tokyo called <a href="http://mozilla.jp/events/vision/2012/">Mozilla Vision 2012</a>. It was a great weekend with several hundred people coming to talk about what it means to be Open, and, in very Japanese-style, see some cool robots (courtesy of <a href="http://www.robo-garage.com/">Takahashi Tomotaka-san</a>).</p>
<p style="text-align: center;"><a href="http://brian.sol1.net/svg/wp-content/uploads/2012/01/takahashi-san.jpg"><img class="size-full wp-image-174 aligncenter" title="高橋智隆さん" src="http://brian.sol1.net/svg/wp-content/uploads/2012/01/takahashi-san.jpg" alt="" width="400" height="470" /></a></p>
<p>Personally, I was involved in running the Parapara Animation Workshop* where kids enjoyed drawing simple frame-based animation on a tablet which was then added to a much bigger animation projected on the walls. The purpose of the project was to teach kids the basics of animation as well as to encourage them to be not just web spectators but web makers.</p>
<p style="text-align: center;"><a href="http://brian.sol1.net/svg/wp-content/uploads/2012/01/parapara-icon.jpg"><img class="size-full wp-image-175 aligncenter" title="パラパラアニメーション" src="http://brian.sol1.net/svg/wp-content/uploads/2012/01/parapara-icon.jpg" alt="" width="360" height="240" /></a></p>
<p>It&#8217;s a workshop that was <a href="http://minism.jp/parapara/workshop.html">originally done by a group of Keio University Students</a> and they helped run it again this time. The main difference is that last time it was mostly iOS-based, this time it was all Web.</p>
<p>Christian Heilmann has <a href="http://hacks.mozilla.org/2012/01/mozilla-vision-2012-day-two-here-come-the-web-makers-of-tomorrow/">written up a great summary of this part of the program</a> including a quick interview where you can see how it worked.</p>
<p style="text-align: center;"><a href="http://vid.ly/7n1q8b"><img class="aligncenter size-full wp-image-176" title="Parapara workshop interview. Select to watch the video." src="http://brian.sol1.net/svg/wp-content/uploads/2012/01/parapara-video-thumb.jpg" alt="" width="537" height="353" /></a></p>
<p>Japanese kids are really creative so it was a really fun time. But not only was the event fun, the technology side was really fun too.</p>
<p><strong>Some of the technology used</strong></p>
<ul>
<li><strong>SVG</strong>—heaps of SVG. The hand-drawn paths, UI widgets, all of the animation, all of it is SVG. In particular we used a lot of <a href="https://developer.mozilla.org/en/SVG/SVG_animation_with_SMIL">SVG Animation</a> and even <a href="https://developer.mozilla.org/En/Applying_SVG_effects_to_HTML_content">SVG applied to HTML</a> to provide the glowing effect on the form text (as per the designer&#8217;s prototype—not my idea!)</li>
<li><strong>Fennec</strong> (Firefox for Mobile)—Just a regular release build (version 9), plus <a href="https://addons.mozilla.org/ja/mobile/addon/full-screen-252573/">Matt Brubeck&#8217;s Full Screen add-on</a> and a few config tweaks.</li>
<li><a href="https://developer.mozilla.org/en/DOM/Touch_events">Touch events</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/calc">CSS calc</a></li>
<li><a href="https://developer.mozilla.org/en/CSS/CSS_transitions">CSS Transitions</a></li>
</ul>
<p><strong>What went well</strong></p>
<ul>
<li>SVG&#8217;s native motion on a path (<code>&lt;animateMotion&gt;</code>) saved us so much time. The auto-rotate feature (<code>rotate="auto"</code>), path APIs (<code>getPointAtLength</code>), and ability to calibrate the path length (<code>pathLength="1"</code>) also made it easy to position animations at just the right place so they would appear on the screen as soon as the user pressed &#8220;send&#8221;.</li>
<li>Using SVG made it really easy to do the drop shadows. Just a transform and a blur filter and we were done.
<p style="text-align: center"><a href="http://brian.sol1.net/svg/wp-content/uploads/2012/01/drop-shadow.jpg"><img class="aligncenter size-full wp-image-177" title="Character with SVG drop shadow" src="http://brian.sol1.net/svg/wp-content/uploads/2012/01/drop-shadow.jpg" alt="" width="274" height="330" /></a></p>
</li>
<li>SVG animation was surprisingly fast. I expected it to be really slow but it was the fastest of the alternatives we tried. That said there&#8217;s still a lot more work to be done (see below).</li>
<li>Overall SVG just proved really versatile. Being able to show a faint greyed outline of previous frames just by setting an attribute was great. Likewise being able to do all the animation work on the client-side and then just serialise the subtree and send it to the server was so much simpler than the previous version.</li>
<li>Deployment over the Web was great. Just refresh the page to pick up the bug fixes! Likewise when we ran out of tablets at one point we could just load up the editor URL on a laptop and keep drawing.</li>
</ul>
<p><strong>What didn&#8217;t go so well</strong></p>
<ul>
<li><strong>The app marketplace.</strong> We badly wanted to package it all up as a Web app using the framework developed by the <a href="https://apps.mozillalabs.com/">Mozilla Labs Apps project</a>. We hoped that would give us full-screen display and stop the user from accidentally navigating to other pages. We had high hopes but were shattered to find the Android runtime launched the app in a Webkit runtime which didn&#8217;t even support SVG.</li>
<li><strong>Going full-screen.</strong> Due to some technical reasons we were stuck with an old version of Fennec and old UI which took some coaxing to go full-screen and stop the chrome from flying in when the user was drawing. Fortunately the bugs that stopped us from using a more recent version of Fennec appear to have been fixed so next time we can hopefully use <a href="https://developer.mozilla.org/en/DOM/Using_full-screen_mode">the Fullscreen API</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=603008">multi-touch</a> for drawing with all your fingers at once (something the really young kids really wanted to do!)</li>
<li><strong>CSS and UI layout.</strong> Countless hours were sunk into trying to convince CSS to layout widgets on the screen. In the end I gave up and did half of it in script. I&#8217;m told <a href="http://www.w3.org/TR/css3-flexbox/">CSS flexbox</a> can help a lot here but I spoke to one implementer of flexbox who said that some of the things we were trying to do weren&#8217;t possible even with flexbox.</li>
<li><strong>Graphics performance.</strong> For the combined animation we badly need a boost to our SVG rendering performance. On Windows the performance was generally ok (if you don&#8217;t have a loud fan!) but occasionally got jittery. On Mac it looked terrible. We still have a way to go here. Apart from the graphics performance there&#8217;s still lots of room to optimize SVG animation itself too. For the editor running on the tablets, I have <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=629200">one patch awaiting review</a> which I hope will make using SVG&#8217;s path APIs faster and speed up the drawing and erasing operations.</li>
</ul>
<p><strong>The result</strong></p>
<p style="text-align: center;">The gallery of animations:<br />
<a href="http://parapara.mozlabs.jp/MozillaVision2012/"><img class="aligncenter size-full wp-image-178" title="The wall gallery" src="http://brian.sol1.net/svg/wp-content/uploads/2012/01/wall.jpg" alt="" width="600" height="513" /></a><br />
<a href="http://parapara.mozlabs.jp/MozillaVision2012/">http://parapara.mozlabs.jp/MozillaVision2012/</a></p>
<p style="text-align: center;">The editor:<br />
<a href="http://parapara.mozlabs.jp/MozillaVision2012/editor/"><img class="aligncenter size-full wp-image-179" title="Animation editor" src="http://brian.sol1.net/svg/wp-content/uploads/2012/01/editor.jpg" alt="" width="500" height="330" /></a><br />
<a href="http://parapara.mozlabs.jp/MozillaVision2012/editor/">http://parapara.mozlabs.jp/MozillaVision2012/editor/</a></p>
<p>And, of course, <a href="https://github.com/birtles/parapara">the code is waiting for your help at github</a>!</p>
<p><strong>Feedback</strong></p>
<p><strong>“That&#8217;s a web page?!?”</strong> I&#8217;m certain that most people who used the demo were oblivious to the fact they were using the Web and that&#8217;s probably the greatest success of this demo. Without exception, everyone who asked about the technology was surprised it was Web-based. Everyone assumed it was a native Android app or otherwise Flash.</p>
<p><strong>“That&#8217;s SVG?!?</strong>” The web developers who came were also surprised at the use of SVG. Most had never really thought of making use of it. They assumed we were using canvas.</p>
<p><strong>“I want to cry, this is the first time I&#8217;ve seen Fennec used for something other than reading the news”</strong></p>
<p>Although a lot of the features we used are still in development it was very rewarding to see how much is already possible with Open Web technologies. We&#8217;ve had many requests to run this workshop elsewhere and, <a href="https://github.com/birtles/parapara">with your help</a>, it will hopefully get better each time. Thanks very much to the Parapara Animation team and to everyone who contributed to Fennec, Gecko and the Web standards that this is built on.</p>
<p>* For anyone wondering what “parapara” means, it&#8217;s the sound of flipping paper and its use here comes from “parapara manga” which means “flipbook comic”. It&#8217;s also the name of a kind of hand dancing so we might have to reconsider the name so as not to disappoint the kids.</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2012/01/27/parapara-animation/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>It&#8217;s about time…</title>
		<link>http://brian.sol1.net/svg/2010/10/13/its-about-time/</link>
		<comments>http://brian.sol1.net/svg/2010/10/13/its-about-time/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 02:34:47 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=127</guid>
		<description><![CDATA[Firefox 4 is going four dimensional! Time dimensional! (Ok, for those who know physics, just pretend :) There&#8217;s CSS transitions for all sorts of animated eye-candy, major JS speed-ups to give scripted animations a boost and mozRequestAnimationFrame to get keep them smooth and in sync, and a whole host of other graphics and video improvements. [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox 4 is going four dimensional! Time dimensional! (Ok, for those who know physics, just pretend :)</p>
<p>There&#8217;s <a href="https://developer.mozilla.org/en/CSS/CSS_transitions">CSS transitions</a> for all sorts of animated eye-candy, major JS speed-ups to give scripted animations a boost and <a href="http://hacks.mozilla.org/2010/08/more-efficient-javascript-animations-with-mozrequestanimationframe/"><code>mozRequestAnimationFrame</code></a> to get keep them smooth and in sync, and a whole host of other graphics and video improvements. Oh, and <strong>SMIL in SVG</strong>!</p>
<p>Speaking of which, I thought I&#8217;d bring you up to speed on some of the recent progress on the SMIL front.</p>
<p><strong>Event timing</strong></p>
<p>One of the more recent additions to our implementation is the ability to key animations off DOM events such as mouse clicks and key presses.</p>
<p>This paves the way to creating widgets of questionable aesthetic value:</p>
<p style="text-align: center;"><a href="http://brian.sol1.net/svg/demo/button.svg"><img src="http://brian.sol1.net/svg/demo/button.png" alt="That button" width="200" height="100" /></a><br />
(<a href="http://brian.sol1.net/svg/demo/button.svg">View demo</a>. You&#8217;ll need to be running <strong><span style="text-decoration: underline;">a recent nightly</span></strong> to experience this button is all its tacky glory. <em><span style="text-decoration: underline;">With the latest Firefox 4 beta the motion will be jerky</span></em> due to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=557885">bug 557885</a>.)</p>
<p>However, SMIL animations need not only be keyed off SVG events but any event in the current document is fair game. So, for example, suppose we want to add a tape animation that runs whenever a certain video is in play, we can do it with this piece of SMIL:</p>
<div style="margin-left: 3em; text-align: left;"><code>&lt;animate attributeName="stroke-dashoffset" from="0" to="90"<br />
dur="1s" repeatCount="indefinite" fill="freeze"<br />
<span style="text-decoration: underline;">begin="video.playing"</span> <span style="text-decoration: underline;">end="video.pause; video.ended"</span>/&gt;</code></div>
<p style="text-align: center;"><a href="http://brian.sol1.net/svg/demo/video.html"><img src="http://brian.sol1.net/svg/demo/video-with-animation.jpg" alt="Demo of video with SMIL-animated icon synchronised with the video playback state" width="339" height="317" /></a><br />
(<a href="http://brian.sol1.net/svg/demo/video.html">View demo</a>)</p>
<p>In addition to events, you can also key animations off:</p>
<ul style="text-align: left;">
<li>key presses: <code>&lt;animate begin="accessKey(a)+1s"…</code></li>
<li>other animations: <code>&lt;animate begin="otherAnimation.begin-2.5s"…</code> (and this is generally a <em>much better choice </em>than event timing when you want to keep animations in sync. Although you <em>can</em> write <code>begin="otherAnimation.beginEvent"</code> you may get surprising results when a seek is performed. Use <code>begin="otherAnimation.begin"</code> instead.)</li>
<li>repeat iterations: <code>&lt;animate begin="otherAnimation.repeat(2)+25ms"…</code></li>
<li>plain old time offsets: <code>&lt;animate begin="12.3h"…</code></li>
<li>all of the above! <code>&lt;animate begin="rect.click; accessKey(a)+1s; otherAnimation.begin-2.5s; otherAnimation.repeat(2)+25ms; 12.3s"…</code></li>
</ul>
<p><strong>SMIL and script are friends</strong></p>
<p>There are a lot of advantages to using SMIL over script (it&#8217;s generally easier for a start!) but sometimes it can&#8217;t do everything you need. In those cases you can use both together!</p>
<p><strong>SMIL → Script:</strong> To synchronise script with SMIL, just listen for the relevant <a href="http://www.w3.org/TR/SVG/animate.html#InterfaceTimeEvent">time events</a> generated when animations start (<code>beginEvent</code>), repeat (<code>repeatEvent</code>), and stop (<code>endEvent</code>). If you need a bit more context you can always query <a href="http://www.w3.org/TR/SVG/animate.html#InterfaceSVGAnimationElement">the animation&#8217;s start time and current time</a> too.</p>
<p><strong>Script → SMIL:</strong> To go the other direction, that is, to kick-start SMIL from script, just use the appropriate <a href="http://www.w3.org/TR/SVG/animate.html#InterfaceElementTimeControl">time control interfaces</a> <code>beginElement</code>, <code>endElement</code> on the target animation, or seek and pause all animations in the <code>&lt;svg&gt;</code> block as a whole with <a href="http://www.w3.org/TR/SVG/struct.html#InterfaceSVGSVGElement"><code>setCurrentTime</code>, <code>pauseAnimations</code> and friends</a>.</p>
<p><strong>SMIL outside the box</strong></p>
<p>While we&#8217;re only supporting SMIL for SVG content that doesn&#8217;t mean it&#8217;s entirely off limits to your HTML content. Not only can we tie SMIL to HTML events as above but we can also <a href="https://developer.mozilla.org/En/Applying_SVG_effects_to_HTML_content">apply various SVG features to HTML</a>, and these places can play host to a bit of declarative animation too.</p>
<p style="text-align: center;"><a href="http://brian.sol1.net/svg/demo/woah.html"><img src="http://brian.sol1.net/svg/demo/woah-woah-woah.png" border="1" alt="Woah woah woah! Example of a SMIL-animated SVG filter applied to HTML content." width="263" height="43" /></a><br />
(<a href="http://brian.sol1.net/svg/demo/woah.html">View demo</a>)</p>
<p><strong>What&#8217;s left?</strong></p>
<p>Still, there are a few features missing in our SMIL implementation that are yet to come. I&#8217;m maintaining <a href="http://brian.sol1.net/svg/status.php">a somewhat detailed summary</a>, but in short we&#8217;re missing:</p>
<ul>
<li><strong>Mexican waves</strong> — There are still a few SVG data types that can&#8217;t be animated yet. Paths are very much on the way, but lists of points are yet to come. That means all your squiggling, warping, barrelling, twisting, waving lines and stars will have to wait a little longer to mesmerise the world. Hopefully most of this will be done in time for Firefox 4.</li>
<li><strong>Hyperlinking</strong> — The ability to <a href="http://www.w3.org/TR/smil-animation/#HyperlinkSemantics">trigger animations from a hyperlink</a> is also yet to come but will probably not make it&#8217;s debut until after Firefox 4.0.</li>
</ul>
<p><strong>What&#8217;s <em>not</em> on the radar?</strong></p>
<p>There are also a couple of features that are neither done, nor likely to get done in the foreseeable future. These are:</p>
<ul>
<li><code>&lt;animateColor&gt;</code> — So long as <code>&lt;animate&gt;</code> honours <code>color-interpolation</code> then <code>&lt;animateColor&gt;</code> isn&#8217;t necessary and only complicates the Web. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=436296">See bug 436296</a>. We recommend using <code>&lt;animate&gt;</code> instead. (This issue was <a href="http://lists.w3.org/Archives/Public/www-svg/2010Oct/0069.html">recently discussed on www-svg</a>.)</li>
<li><strong>Wallclock timing</strong> — That is, the ability to set up an animation to begin at <code>2011-01-01T00:00:00+09:00</code>. Real uses cases for wallclock timing <a href="http://lists.w3.org/Archives/Public/www-smil/2010AprJun/0006.html">were discussed on www-smil earlier in the year</a> but it seems the syntax provided by SMIL, at least as far as it is used in SVG, is insufficient for these use cases. For the time being, we&#8217;d rather not clutter the Web platform by implementing something half-baked. For most use cases, it should be possible to provide this sort of functionality by adding a sprinkling of script to your SMIL.</li>
</ul>
<p><strong>UPDATE:</strong> I just noticed Robert Longson (who&#8217;s played a big part in us getting to this point) beat me to reporting much of this news, so for more details on where we&#8217;re up to <a href="http://longsonr.wordpress.com/2010/10/12/svg-news">see his post too</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2010/10/13/its-about-time/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Synchronising SMIL</title>
		<link>http://brian.sol1.net/svg/2010/01/13/synchronising-smil/</link>
		<comments>http://brian.sol1.net/svg/2010/01/13/synchronising-smil/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 09:36:53 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=121</guid>
		<description><![CDATA[Our SMIL implementation passed another little milestone yesterday when we landed syncbase timing. We&#8217;ve still got a long way to go but this was always going to be the hardest feature for the timing model. I thought I&#8217;d just take this chance to acknowledge some of the people who&#8217;ve helped get us here. Particularly Daniel [...]]]></description>
			<content:encoded><![CDATA[<p>Our SMIL implementation passed another little milestone yesterday when we landed syncbase timing. We&#8217;ve still got a long way to go but this was always going to be the hardest feature for the timing model.</p>
<p>I thought I&#8217;d just take this chance to acknowledge some of the people who&#8217;ve helped get us here. Particularly Daniel Holbert for his incredible helpfulness and for just being awesome at everything he does; Jonathan Watt for all his help with SMIL recently and for always looking out for me; Robert O&#8217;Callahan for his oversight, invaluable input, and support technical and personal; and Chris Double for keeping SMIL moving in the early days.</p>
<p>Also, as alumni of the <a title="UTS" href="http://www.uts.edu.au/">University of Technology, Sydney (UTS)</a> I used <a title="UTS Library" href="http://www.lib.uts.edu.au/">their library</a> a number of times last year as a kind of virtual office. It&#8217;s a great library where they really try to help the students, allow you to eat at your desk, and even let you <a title="Food for fines" href="http://www.lib.uts.edu.au/news/articles/8156">pay for your fines with canned food</a> that is then given to an Australian charity group. Thanks UTS!</p>
<p>Finally, thanks to <a title="Solutions First" href="http://www.solutionsfirst.com.au/">Solutions First</a>, specialists in Open Source and Linux solutions and a whole lot more, and who have generously provided me with this web space for longer than I can remember. Cheers guys!</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2010/01/13/synchronising-smil/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Beached as bro</title>
		<link>http://brian.sol1.net/svg/2009/01/22/beached-as-bro/</link>
		<comments>http://brian.sol1.net/svg/2009/01/22/beached-as-bro/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 05:29:03 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=116</guid>
		<description><![CDATA[One last post as I race out the door. It appears my attempt to quash the enthusiasm surrounding SMIL doesn&#8217;t seem to have worked. It seems like some people are genuinely interested in SMIL and not just for Acid3! This weeks developments: &#60;animateTransform&#62; SVGAnimationElement interface Fixes to better synchronise the DOM state with the animation [...]]]></description>
			<content:encoded><![CDATA[<p>One last post as I race out the door. It appears my attempt to quash the enthusiasm surrounding SMIL <a href="http://arstechnica.com/news.ars/post/20090121-smil-animation-and-3d-canvas-library-for-firefox.html">doesn&#8217;t seem to have worked</a>. It seems like some people are genuinely interested in SMIL and not just for Acid3!</p>
<p>This weeks developments:</p>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=468996"><code>&lt;animateTransform&gt;</code></a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=473702">SVGAnimationElement interface</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=474357">Fixes to better synchronise the DOM state with the animation state</a></li>
<li>A couple of other <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=474257">small</a> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=474740">fixes</a></li>
</ul>
<p>Today I ran up against some questions about <a href="http://lists.w3.org/Archives/Public/www-smil/2009JanMar/0001.html">zero-length</a> <a href="http://lists.w3.org/Archives/Public/www-smil/2009JanMar/0002.html">intervals</a> so if you have any insights there I&#8217;d be glad to hear from you! I&#8217;ve <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=474739">adjusted our timing model</a> based on what I <i>think</i> SMIL intends.</p>
<p>That brings to an end my stint with the NZ office. I had a <a href="http://weblogs.mozillazine.org/roc/archives/2009/01/mountain_fun.html">great time</a> with the fellas here&#8211;cheers guys! Or as some people here say, &#8220;chur!&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2009/01/22/beached-as-bro/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wet blanket</title>
		<link>http://brian.sol1.net/svg/2009/01/17/wet-blanket/</link>
		<comments>http://brian.sol1.net/svg/2009/01/17/wet-blanket/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 03:17:20 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=107</guid>
		<description><![CDATA[Well, SMIL has finally landed on mozilla-central! It&#8217;s been a long road since I first started out on this project nearly 5 years ago but we&#8217;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&#8217;Callahan, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, SMIL has finally landed on mozilla-central! It&#8217;s been a long road since I first started out on this project nearly 5 years ago but we&#8217;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&#8217;Callahan, Chris Double, and Tim Rowley for their massive contributions. It&#8217;s been a team job all the way.</p>
<p>But althought we&#8217;ve come a long way I want to emphasise that we still have a long way to go. I&#8217;ve updated <a href="http://brian.sol1.net/svg/status.php">the status page</a> 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&#8217;t work without this. Also, syncbase timing is a big job.</p>
<p>The good news is <code>&lt;animateTransform&gt;</code> is in the pipeline (ready for review any day now) and for maybe the first time ever, there&#8217;s a little bit of momentum behind SMIL.</p>
<p>Update 16 Feb 2011: Thanks to Patric Conrad for <a href="http://webhostingrating.com/libs/wet-blanket-be" hreflang="be">a Belorussian translation</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2009/01/17/wet-blanket/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>ただ今！</title>
		<link>http://brian.sol1.net/svg/2009/01/01/tadaima/</link>
		<comments>http://brian.sol1.net/svg/2009/01/01/tadaima/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 05:25:12 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=100</guid>
		<description><![CDATA[Yay, back to SMIL! This is just a brief update to let you know about the state of SMIL in Mozilla! Here&#8217;s the low-context summary: Daniel Holbert has been taking on this work and pushing it along steadily (thanks a million Daniel!!) I&#8217;ve joined the Auckland office for my summer break (from December to the [...]]]></description>
			<content:encoded><![CDATA[<p>Yay, back to SMIL! This is just a brief update to let you know about the state of SMIL in Mozilla!</p>
<p>Here&#8217;s the low-context summary:</p>
<ul>
<li>Daniel Holbert has been taking on this work and pushing it along steadily (thanks a million Daniel!!)</li>
<li>I&#8217;ve joined the Auckland office for my summer break (from December to the end of January) to work full-time on SMIL.</li>
<li>A (very) <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=216462">basic patch</a> 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&#8217;ve updated the <a href="http://brian.sol1.net/svg/status.php">status page</a> to reflect the features of this patch.</li>
<li>A <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=468996">proper implementation of <code>&lt;animateTransform&gt;</code></a> is also ready but needs review. I&#8217;ve written up (in painfully boring detail) <a href="http://brian.sol1.net/svg/animatetransform-issues/">some spec issues I encountered regarding <code>&lt;animateTransform&gt;</code></a>.</li>
</ul>
<p>Next on the agenda I hope to be working on syncbase timing.</p>
<p>Thanks again for all your support and Happy New Year! Godt nytår! あけましておめでとうございます！ 新年もよろしくお願いいたします！</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2009/01/01/tadaima/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Farvel</title>
		<link>http://brian.sol1.net/svg/2007/04/05/farvel/</link>
		<comments>http://brian.sol1.net/svg/2007/04/05/farvel/#comments</comments>
		<pubDate>Thu, 05 Apr 2007 11:38:33 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=18</guid>
		<description><![CDATA[You&#8217;ve probably worked it out, but I&#8217;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: #216462 [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve probably worked it out, but I&#8217;m no longer working on SMIL at the moment. <a href="http://weblogs.mozillazine.org/tor/">tor</a> has very kindly helped out and has been doing some work on this but it will not make it for Firefox 3.</p>
<p>From now on, if you want to track the progress of SMIL in Mozilla I recommend:</p>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=216462">#216462 Implement SVG (SMIL) Animation</a></li>
<li><a href="http://weblogs.mozillazine.org/tor/">tor&#8217;s weblog</a></li>
</ul>
<p>As for me, I&#8217;m travelling around Asia (check the <a href="http://airgiardia.blogspot.com/">blog</a> [removed] if you&#8217;re really curious), so unless someone can sponsor me to work on this in Asia I can&#8217;t really offer much time to the project.</p>
<p>Thank you to everyone who helped me to get SMIL this far. I hope that someone else can pick it up.</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2007/04/05/farvel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMIL</title>
		<link>http://brian.sol1.net/svg/2006/07/25/smil/</link>
		<comments>http://brian.sol1.net/svg/2006/07/25/smil/#comments</comments>
		<pubDate>Tue, 25 Jul 2006 03:17:25 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Status updates]]></category>

		<guid isPermaLink="false">http://brian.sol1.net/svg/?p=17</guid>
		<description><![CDATA[Wow, what a heading! Some would call it lack of imagination, I like to think of it as artistic restraint &#8211; it&#8217;s just too easy to make puns with &#8220;SMILe&#8221;! Progress on SMIL continues, albeit in slow motion. Just a really quick note for those one or two people who want to know what&#8217;s going [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, what a heading! Some would call it lack of imagination, I like to think of it as <em>artistic restraint</em> &ndash; it&#8217;s just too easy to make puns with &ldquo;SMILe&rdquo;!</p>
<p>Progress on SMIL continues, albeit in slow motion. Just a really quick note for those one or two people who want to know what&#8217;s going on:</p>
<ul>
<li>Not only does it compile it now runs too!</li>
<li>All my visual tests pass again</li>
<li>All my unit tests pass again</li>
<li>My early attempt at <code>&lt;animateTransform&gt;</code> is up and running again and seems to work.</li>
</ul>
<p>I need to do some tidying up before it&#8217;s ready for review. Most of all:</p>
<ul>
<li>Some deCOMtamination</li>
<li>Making better use of Moz utilities (string iterators, <code>nsTArray</code> etc.)</li>
<li>Removing redundant code</li>
<li>Fixing the scope of the animation controller</li>
</ul>
<p>It&#8217;s hard to give a timeframe for this &ndash; it depends a bit on my workload with other things (Japanese, Bible college, surfing, life &ndash; not to mention my day job). Hopefully a month?</p>
<p>As for new feature work, I&#8217;ll have to re-negotiate with work before I can do that. So I&#8217;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!</p>
]]></content:encoded>
			<wfw:commentRss>http://brian.sol1.net/svg/2006/07/25/smil/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>
