What’s SMIL and why should we use it?

What's SMIL and why should we use it?OK, here comes a geeky article about elearning and data management best practices. Although the issues are very technical in nature, they require the support of well-informed management so that the most appropriate decisions can be made. Understanding these issues from the outset can save you or your organisation a lot of time, effort and going up blind alleys in the not-too-distant future.

What are the issues? If it isn’t broken, why fix it?

Currently, most elearning developers use so called “rapid elearning development tools”, e.g. Microsoft PowerPoint + Adobe Presenter, Adobe Captivate, Techsmith Camtasia, Articulate and Raptivity,  to create and publish content. They present quick and easy solutions to elearning novices, enabling them to create and deploy multimedia rich, highly interactive learning content on the web without learning a great deal of technical skills or knowledge. However, the vast majority of these tools publish content that is “single purpose” or “single use” and elearning content developers may end up spending a lot of time and effort on creating very impressive content that has little effect on learning outcomes and, in the long run, may make elearning courses difficult and time consuming to manage, maintain and develop. Here are some of the drawbacks:

Proprietary dependencies (lock-in)

Rapid elearning development tools create source files that only their software can read and edit. Often, they’re not forwardly compatible meaning that if you want to edit files from a newer version of the software, you’ll have to buy an upgrade. If you want to edit the source files in other tools, it’s usually a breach of copyright and the End User Licence Agreement (EULA) to do so. Additionally, some rapid elearning development tools publish content in out-dated versions of Flash leading to some unexpected problems for developers. Vendors rely on this to keep users dependent on their software and to make it as difficult as possible to migrate learning content development away from their tools.

Inflexible learning content

Published presentations from rapid elearning development tools generally take the form of single or multiple Flash (.swf) files that present the learning content in predetermined sequences. All the text, images, audio, video and animations are locked away inside the Flash file(s). If you want to change the order of a sequence, you have to go back to the source files and re-author and re-publish the new sequence. There’s no access to the published learning content from other software than can re-use and re-purpose it and Learning Management Systems (LMS) cannot allow teachers and learners to access media from the files and use it in presentations of their own or in discussion forums, wikis, glossaries, etc. Now that group learning (AKA social learning or Social Constructivism) is becoming increasingly popular among learners and teachers, this is a severe drawback.

Narrow range of uses

Pedagogically, presentations, slide shows, simulations, etc. have a narrow range of uses. Regular, old-fashioned HTML web pages often have comparable learning outcomes to rapid elearning tool produced learning interactions with video and multimedia. Furthermore, with all the multimedia, audio, video and animation options available at your fingertips, it’s easy to get carried away and to include too much media and too many different types media simultaneously resulting in cognitive overload and a subsequent drop in learning efficacy.

Inappropriate use of quizzes

Most rapid elearning development tools recommend and encourage the use of quizzes before, during and after presentations. Indeed, they pride themselves on providing the best possible editors, training and support for learning content developers to add quizzes to their presentations. However, according to the US Department of Education’s Evaluation of Evidence-Based Practices in Online Learning,

Elements such as video or online quizzes do not appear to influence the amount that students learn in online classes. The research does not support the use of some frequently recommended online learning practices. Inclusion of more media in an online application does not appear to enhance learning. The practice of providing online quizzes does not seem to be more effective than other tactics such as assigning homework.

Source: ED.gov (PDF, page 18)

Can your Learning Management System (LMS) do it?

Most modern LMS’ have well-developed and designed presentation authoring modules built in. They almost all have quiz and exam authoring modules. The results can be comparable to rapid elearning development tools. It’s worth spending some time with your LMS and seeing what it can do. While LMS’ don’t typically have the best support for multimedia, there are a lot of advantages to this option:

  • Learning resources can be edited and created immediately online.
  • No extra software or development tools are necessary.
  • LMS’ are usually database driven which means indexing, searching and maintaining libraries of learning resources in them is powerful, flexible and simple.
  • Some LMS’ have text filters that can automatically add links and tags to learning content and learner generated content to make make them more closely integrated, such as glossaries, wikis and discussion forums.
  • Some LMS’ provide easy to use tools for embedding multimedia into presentations, quizzes, glossaries, etc.

I’m not advocating abandoning rapid elearning development tools altogether (I think they’re very appropriate for one-off, highly particular presentations and simulations) but I think it’s important to understand their limitations and that, in many cases, there are more appropriate approaches to creating, maintaining and managing learning content.

Another option: SMIL XML

The Synchronized Multimedia Integration Language (SMIL), is a W3C.org recommended XML markup language for describing multimedia presentations. It defines markup for timing, layout, animations, visual transitions, and media embedding, among other things. SMIL allows the presentation of media items such as text, images, video, and audio, as well as links to other SMIL presentations, and files from multiple web servers. SMIL markup is written in XML, and has similarities to HTML.

Source: Wikipedia.org

SMIL is currently most commonly used as a subtitle or text captioning format for online video, otherwise known as SMILText, TimedText or RealText, and for media play lists like those used with the JW Player and the Media Player module for Moodle but, as you’ll see in this article, it is capable of far more than that.

How does it work?

A SMIL XML file contains all the data necessary to organise a play list or learning interaction such as a PowerPoint style presentation or a multimedia quiz. Note that the main constituent parts of the learning interaction are kept separate; the multimedia files, the SMIL data files, any styling and the SMIL player. Software developers call this the Model-View-Controller* (MVC) design pattern which is used in almost all web software, such as Content Management Systems (CMS), such as WordPress, Joomla, Drupal and Mambo, and LMS’, such as Moodle, Sakai, ATutor and ILIAS. This means that each part of the multimedia, data, styling and player can be edited, substituted and recombined separately without “breaking” the learning interaction. Also multimedia, which tends to be costly and time consuming to produce, can be re-used and re-purposed easily for other learning interactions. For example, if all the learning interactions display an image, only one copy of that image needs to be stored on the LMS. If we want to change or update it, we only need to edit or replace this one copy and this will be reflected across all the learning interactions that use it, so there’s no need to go through the laborious task of editing and republishing tens, hundreds or maybe even thousands of files just to change one image, which is the case with typical rapid elearning SCORM packages.

SMIL diagram

* In the case of elearning MVC would be:

  • Model – SMIL XML files and multimedia files. Additionally, SMIL files often contain layout data.
  • View – Any styling, which could include colour schemes, fonts, graphics, backgrounds, logos and branding.
  • Controller – The software that manipulates the model and applies the styling to create presentations and other learning interactions.

Platform agnosticism

Perhaps one of the biggest advantages of using a web standard format, like SMIL XML, is that it’s “platform agnostic“, i.e. it isn’t limited to just one operating system, software platform, runtime or playback device. This means that you can develop applications in any language for any operating system or runtime to play SMIL presentations. Options include but are not limited to: Flash and Javascript (for web browsers), Adobe AIR and Java (for desktops), Android apps (mobile phones and tablets) and iOS apps (iPhone, iPod and iPad). The following media players also support SMIL playback: Apple’s Quicktime player, Windows Media Player (WMP) and RealNetworks RealPlayer.

Flexible and adaptable

In addition to playing SMIL files from start to finish, as slide show presentations, it’s also possible to develop custom applications that can use the presentation data to create new activities, for example games, quizzes and reference aids. I develop Flash Multimedia Interactive Learning Applications (MILAs) that read SMIL files and use them to create a variety of learning interactions. With this approach it’s possible to create an almost unlimited range of activity types to your exact specifications.

When should we use SMIL?

SMIL XML is a potential replacement for presentations typically produced by using one of the many rapid elearning development tools. If you find yourself copying and pasting layouts, content, templates, etc. from one presentation to the next or you find yourself doing very repetitive tasks frequently, then that’s a good case for considering adopting a SMIL based approach. Typical rapid elearning development tools that SMIL can replace are:

* OpenOffice.org, the free open source alternative to Microsoft Office, can publish presentations directly to Flash. Additionally, it’s compatible with MS Office documents so it’s one of the cheaper and easier ways to convert old legacy presentations to Flash for web deployment. I previously wrote an article, Open source for elearning, which lists alternatives to commercial, proprietary software.

Why should we use SMIL?

The advantages

  • Open file format – Your typos, spelling mistakes, wrong images, audio or video, etc. can be corrected in seconds with a simple text or XML editor. (Moodle 1.9 allows you to edit SMIL XML files in the course files repository directly online.)
  • Media files are stored separately – Images, animations, audio and video can be updated without having to re-author and re-publish elearning packages. Also screen recordings in either video or Flash are separate from the main presentation structure and can be re-recorded without completely rewriting the whole project.
  • All the data and media is available at a “granular” level so it can be manipulated and re-purposed with software to create an almost infinite variety of learning resources.
  • Web browsers cache media files and, instead of unnecessarily downloading them multiple times, taking up bandwidth and time, they are re-used from the cache. It’s faster and more efficient.
  • Video file formats preserved – As long as video file formats are supported, they are played directly in their original form. This avoids the inevitable loss in quality caused when rapid elearning tools transcode video files imported into them.
  • Presentations can share files and data – It’s possible to re-use media files such as video saving you server storage space and reducing internet bandwidth usage.
  • SMIL is “platform agnostic” meaning that you can develop/use SMIL player applications for use on any operating system or runtime.
  • Course/Site wide configuration – Groups of presentations can be configured using a single, shared file and changes to courses or even whole sites can be made easily. With rapid elearning development tools, it’s necessary to edit and re-publish every single presentation.
  • Smaller file sizes – Most rapid elearning development tools typically produce unnecessarily large files. A combination of SMIL content files and software SMIL players typically produces smaller, optimal file sizes, therefore learning resources download and start faster.
  • No problems with rapid elearning development software versions – You can update image, animation and video production software without worrying if it’ll be compatible with previous or later versions. Additionally, you’re not tied to using any particular software to maintain legacy presentations.

In short, you get a leaner, meaner, faster, more flexible, more editable and ultimately more efficient way of producing elearning presentations and learning resources.

The disadvantages

  • Initial cost of developing a SMIL player (Almost no free or open source web based SMIL players available so please let me know if you know of any)
  • Knowledge of SMIL XML schemata for authoring and editing is required
  • Generally requires some specialised, skilled IT support

Ultimately, the choice is determined by the number of presentations you’re likely to deploy and maintain on your elearning courses. If it’s a small number, then the software development and inconvenience of training or hiring developers with the necessary skills and knowledge outweigh the benefits. However, elearning and blended learning programmes can quickly accumulate large numbers of multimedia learning interactions, which can become difficult and time consuming to manage and maintain and subsequently place unreasonable restrictions on your curriculum development programmes.

More information about SMIL

New Avatar (profile picture) Camera app

New Avatar (profile picture) Camera appIntroducing a new Flash app for the SWF Activity Module for Moodle that is possibly the quickest easiest way for learners and teachers to change or update their avatars (profile pictures). Using your computer or mobile device’s webcam, the app saves your photo directly to Moodle without saving images to your desktop or uploading.

When you’re creating online communities of learning and teaching, the ease at which learners and teachers can personalise their user accounts so that they can recognise each other while communicating and collaborating is vital for success. Indeed, many papers, journal articles have been written and presentations given on the importance of sociability and usability.  However, Moodle’s user profile pages are notoriously difficult for users to find and edit and then learners and teachers are left with the responsibility of taking or finding their own photos, editing them to a suitable size and uploading them. Some learners and teachers  don’t have the time or the facilities needed and just don’t get round to doing it. So the Avatar Camera at least resolves this issue. Using it couldn’t be easier.


  1. Enter an instance of the Avatar Camera activity where it’s deployed in a Moodle course.
  2. On the Adobe Flash Player Settings dialogue box, select “Allow” to activate your webcam.
  3. The app will show your current avatar and a live feed from your webcam.
  4. Click on the camera icon button as many times as you like to take photos.
  5. The photos will appear, in sequence, on your screen.
  6. To save the photo you want, click on it.
  7. The app will overwrite your current avatar with the new one.

Please note: Moodle course, forum, glossary, message, etc. pages don’t handle caching very well so you may need to click the refresh button on your web browser to see the changed avatar.

Where can I see it?

An Avatar Camera demo is up and running on my Moodle on the Multimedia Interactive Learning Applications (MILAs) course. Guest access is allowed but guests can’t save avatar photos. It’s best deployed with the latest version of the SWF Activity Module for Moodle but, with a some programming know-how, it can also be deployed in other learning management systems (LMS) and content management systems (CMS).

SWF Activity Module now supports conditional sequencing

SWF Activity Module now supports conditional sequencingThe latest build of the SWF Activity Module for Moodle includes support for conditional sequencing between SWF course module instances. This means that teachers and course content developers can require learners to successfully complete one SWF Activity Module instance before moving on to the next.

What is conditional module sequencing?

Normally, on any given Moodle course, learners have the freedom to access any activity modules and resources that are available in any order. Although teachers can hide activities or specify time frames for when they’re available, there’s no provision for only allowing access to an activity when a learner has completed the previous one. Say, for example, a course has six SWF Activity Module instances:

Module 1 – Meeting for the first time
Module 2 – Arranging an appointment
Module 3 – Conducting interviews
Module 4 – Holding meetings
Module 5 – Following up meetings
Module 6 – Dealing with problems

And we want learners to complete three module instances in order, e.g. Module 3 -> Module 4 -> Module 5. All a teacher or course content developer has to do is change the Conditional sequencing parameter in each module instance to “true”. In this case, learners can attempt any of the other module instances, 1, 2 and 6, at any time in any order but Modules 3, 4 and 5 can only be attempted in that order.

How does it work?

SWF Activity Module conditional sequencingFrom a learner’s perspective it works like this:

  • A learner attempts an instance of the SWF Activity Module that is included in the course conditional sequence.
  • If the module instance is the first uncompleted one in the sequence, the module continues to the Flash activity as usual.
  • If the module instance is not the first uncompleted one in the sequence, the module displays a summary of the sequenced modules and a button to navigate to the appropriate module instance (see illustration).
  • When the learner has completed all the modules they are directed to the summary of sequenced modules with a message that they have successfully completed them all if they re-attempt any of the modules in the sequence.

From a teacher or course content developer’s perspective it works like this:

  • Deployed Flash learning applications must be capable of saving grades in Moodle’s grade book, otherwise SWF Activity Module instances cannot be completed.
  • Only one group of SWF Activity Modules can be sequenced per course.
  • Only SWF Activity Module instances that have Grading > Conditional sequencing > true selected are included in the sequence.
  • The order of the sequence is the same as the order of appearance of the module instances on the Moodle course page.
  • Learners must complete the first uncompleted module instance before they can attempt the next in the sequence.
  • Learners are shown a summary page of the sequenced module instances if they attempt a module instance out of sequence with a button that takes them to the next one in the sequence.
  • If the order of the modules is changed or added to before learners have completed all of them, they are simply required to do the first uncompleted module(s) in the new sequence. They do not have to re-attempt already completed module instances.
  • Doesn’t work with guest access, teachers or admins. You must login as a student to test it.

There’s documentation and examples on the SWF Activity Module project site here.

Thoughts on Flash…

Thoughts on FlashOK, here’s a geeky rant. I’ve heard and read the same unfounded rumours, hearsay and conjecture about Flash so many times it’s starting to sound like urban myths. Let’s put this on the record for once and for all. So, here goes… (deep breath)…

Flash is as secure as any other web technology

In his open letter in April 2010, Steve Jobs wrote, “Symantec recently highlighted Flash for having one of the worst security records in 2009. ” In Symantec’s annual security reports, security risks from Flash are a long way below other web technologies like Active-X, Java, Adobe Reader and Quicktime. Yes, you read that right, Adobe Flash Player is more secure than Apple’s Quicktime and Mr. Jobs remarks were misleading to say the least. Check the 2009 Symantec report out for yourself. The latest reports are available here.

Flash doesn’t use any more memory than any other web technology

Memory hog? Why not run your own comparison to find out. Here’s a direct link to the high resolution version of a video from TED Talks:


If you click on this, it should play directly in your browser either as native video playback or with a browser plugin such as Apple’s Quicktime. When it starts playing, press Ctrl + Shift + Esc to start Windows Task Manager and select the Performance tab (Check your documentation for how to do this with a Mac). You’ll see some live graphs of CPU and memory usage. Make a note of their averages. Alternatively, if your browser supports HTML5 video tags and H.264 (IE and Safari), you can check directly:

https://matbury.com/wordpress/wp-includes/js/tinymce/plugins/media/moxieplayer.swfSorry, your browser does not support HTML5 video tags

Now try watching the exact same video in Flash and watch your CPU and memory performance. Results will vary depending on your operating system, hardware and browser:


For independent benchmark tests of HTML5 vs. Flash video performance, check out these two articles:

Flash is as stable as any other web technology

In an emotional outburst at a public meeting in February 2010, Steve Jobs claimed that, “Apple does not support Flash because it is so buggy. Whenever a Mac crashes more often than not it’s because of Flash.” In response, Shantanu Narayen, Adobe’s CEO, gave an interview with Alan Murray for the Wall Street Journal.

Flash will run on Unix-like OS’ (Linux, OpenBSD, iOS, OS X)

Flash happily runs on over 95% of computers and devices connected to the internet, probably including your set-top box. That’s a conservative estimate based on median values of operating system market share – Adobe claims 99%. In fact, Adobe had Flash Player for iOS on iTunes and ready to roll before Apple’s announcement to block it. The only reason that Flash isn’t allowed on iPhone or iPad is because of Apple’s business strategies. The ability to access Flash rich internet applications (RIAs) would reduce iTunes’ app store profits because developers and content distributors would be able to avoid paying Apple’s 30% commission on everything that passes through them. Apple are currently facing anti-trust investigations on both sides of the Atlantic because of this. Brian Chen wrote an astute opinion article for Wired Magazine in November 2008.

Flash and Actionscript are open source, not proprietary

For those who are open source, open format advocates, I salute you and keep up the good work, you make the web a better place for everyone. I develop and distribute open source projects (Actionscript and PHP) myself. Flash and Actionscript are open source. Adobe distribute a free SDK and anyone can create Flash extensions for modular IDEs or even create their own Flash IDEs. Flash Builder/Flex is built on Eclipse. Anyone can build a Flash runtime into their browser. Microsoft, Apple, Google and Firefox choose not to and instead rely on Adobe to maintain and distribute the plugin. Here’s an article from Adobe’s founders on their open web philosophy.

Update: There’s also a free and open source Flash and Flex IDE available called FlashDevelop. The Flex SDK has been made a priority open source software project by the Apache Software Foundation, now called Apache Flex.

Flash works on touchscreens without any modification

If you still have any doubts, here’s an old demo video of unmodified Flash apps on a touch screen made by Lee Brimelow when this rumour first circulated in May 2010. There are more videos and articles on Flash and using all the latest features of  touchscreens and motion detectors on his blog.

HTML5 isn’t going to kill Flash

They get along fine. There’s no ill-will between them. They’re complimentary web technologies and it’s up to developers to make well-informed decisions about which is more appropriate for a particular instance. In my opinion, there are many things that HTML5 should do instead of Flash, where Flash has been “filling in” while HTML technology caught up. Flash and HTML5, while there is some overlap, essentially do different things. One pundit commented that using HTML5 to replace Flash is like taking a time-machine that takes you back to the year 2000 (I wish I could find the source of that quote!).

Flash works with, not against Javascript

Again, Flash and Javascript are complimentary technologies. SCORM packages require a Javscript API wrapper to communicate with the LMS on the server, and FlowPlayer and JW Player, the most commonly used media players on the web, both have extensive Javascript APIs. Flash and Javascript are harmonious and at one with each other.

Flash doesn’t leave your toilet seat up

It’s respectful, considerate and understands how that can make some people feel.

Flash doesn’t sleep with your girlfriend/boyfriend/wife/husband/partner

Adobe Flash, that is. I can’t speak for any 3rd parties who call themselves “Flash”.

Flash hasn’t got cooties

Although a lot of girls use Flash eCards to spread them, which is much worse than any virus.

And finally…

Please don’t rely on Apple or Apple fans for information or news about Flash. It’s a bit like relying on Fox News (News International) for news about the Democratic party in the US. The following is an entertaining TED Talk about why it’s important to challenge improperly presented arguments or evidence: Ben Goldacre: Battling Bad Science. Ben Goldacre also writes a regular blog for the UK’s Guardian newspaper.

There, I’ve said it.


Steve Jobs has just died (5/10/2011) aged 56. He was a great man, a great innovator and will be greatly missed.


[update 2012-09-13]

Now the dust has settled somewhat and everyone has had a chance to offer up their take on the situation, here’s a snapshot of the Wikipedia.org community’s view:

Apple controversy

In April 2010, Steve Jobs, former CEO of Apple Inc. published an open letter explaining why Apple wouldn’t allow Flash on the iPhone, iPod touch and iPad, citing the following technical reasons:

Openness:  Jobs wrote “Adobe’s Flash products are 100% proprietary”. Some portions of the Flash Player and its related SDKs are open-source, including the Adobe Flex SDK which compiles SWF files from source code, the Tamarin JIT Virtual Machine for ActionScript 3, and the recent Open Screen Project which removes licensing fees and opens data protocols for Flash. The Flash community is also supported by open-source projects, such as FlashDevelop (IDE), MTASC (Compiler) and Gnash; Gnash is an alternative Flash Player, however it is not fully compatible with the proprietary Adobe Flash Player.

Access:  Jobs claimed that a large percentage of the video on the internet is supported on iOS, and writes “almost all this video is also available in a more modern format, H.264”. H.264 is a proprietary specification and encumbered by patents, which makes it a closed standard. Many popular video sharing websites such as YouTube have also published video content in an HTML5 compatible format, enabling videos to playback in mobile web browsers even without Flash Player.

Security:  Jobs wrote “Symantec recently highlighted Flash for having one of the worst security records in 2009”. Adobe responded by pointing out that “the Symantec Global Internet Threat Report for 2009 found that Flash Player had the second lowest number of vulnerabilities of all Internet technologies listed (which included both web plug-ins and browsers).”

Performance:  Jobs wrote “Flash has not performed well on mobile devices”. Adobe optimized current versions of Flash Player and Flash Lite to use hardware acceleration for video and graphics playback on many devices, including desktop computers. Performance is similar to HTML5 video playback. Also, Flash Player has been used on multiple mobile devices as a primary user interface renderer.

There has been speculation that Steve Jobs rejected Flash for business reasons, rather than the technical reasons he mentions in his letter.

“Allowing Flash, which is a development platform of its own, would just be too dangerous for Apple, a company that enjoys exerting total dominance over its hardware and the software that runs on it. Flash has evolved from being a mere animation player into a multimedia platform capable of running applications of its own. That means Flash would open a new door for application developers to get their software onto the iPhone: Just code them in Flash and put them on a web page. In so doing, Flash would divert business from the App Store, as well as enable publishers to distribute music, videos and movies that could compete with the iTunes Store.”

—”Why Apple Won’t Allow Adobe Flash on iPhone,” Wired Magazine, (2008)

“This is not about technology. The criticisms from Apple about Flash can also be applied to many other systems that Apple has not directly opposed. Therefore Apple’s stance appears driven by their business need to protect the iPhone platform against the threat of a cross-platform competitor.”

—Ray Valdes, V.P. of Gartner Research – “Why Adobe Flash on mobile isn’t dead” (2010) [link unavailable]

“[Apple is] very, very keen to keep control of the end-to-end experience and therefore having a separate runtime in the form of Adobe is a problem, One could argue it could be detrimental to Apple’s business model because there’s a lot of Adobe games, or games that are delivered in Flash, which are free and therefore that would detract from people downloading [paid gaming content] from the App Store.”

—Ben Wood, Director at CCS Insight [link unavailable]

In 2011, Flash Player had emerged as the de facto standard for online video publishing on the desktop, with adaptive bitrate video streaming, DRM, and fullscreen support. On mobile devices however, after Apple refused to allow the Flash Player within the inbuilt iOS web browser, Adobe changed strategy enabling Flash content to be delivered as native mobile applications using the Adobe Integrated Runtime.

Source: http://en.wikipedia.org/wiki/Flash_player#Apple_controversy

See also

Jonathan Gay, one of the original developers of Flash, gave an interview with the BBC’s Jonathan Frewin about Flash media and the Apple vs. Adobe debacle. In it he stated,

“Apple is building their tightly controlled application platform to push the mobile internet world to a model like traditional mobile phone and cable TV businesses, where there is a gatekeeper who controls the platform and gets a fee from all the transactions on the platform. This would drive a very profitable business for Apple… “

“Flash grew from the PC and Web era where players are free, run on lots of devices, and there are no gatekeepers controlling what developers could do with the platform. As a consumer, I’d much rather see the PC and web model move to mobile phones than the closed mobile phone world taking over rich applications on the mobile internet…”

Source: http://www.bbc.co.uk/news/10121187