A free programming tool that allows anyone to create their own animated stories, video games and interactive artworks has been developed.
Primarily aimed at children, Scratch does not require prior knowledge of complex computer languages.
Instead, it uses a simple graphical interface that allows programs to be assembled like building blocks.
The digital toolkit, developed in the US at MIT's Media Lab, allows people to blend images, sound and video.
"Computer programming has been traditionally seen as something that is beyond most people - it's only for a special group with technical expertise and experience," said Professor Mitchel Resnick, one of the researchers at the Lifelong Kindergarten group at MIT.
"We have developed Scratch as a new type of programming language, which is much more accessible."
The explosion in broadband connectivity has fuelled the growth of websites that offer rich media experiences, including video and animations.
"These days, kids interact with all kinds of dynamic things on screen but it is usually a one-way street - they are usually interacting with things that other people have created," said Professor Resnick, who also invented Lego Mindstorms, a robotics toolkit often used in teaching.
With Scratch, our goal is to allow people to mix together all kinds of media... in creative ways
"With Scratch we want to let kids to be the creators. We want them to create interesting dynamic things on the computer."
The program works by making the act of creating a computer program more like building with Lego bricks.
"Kids make programs by snapping blocks together," said Professor Resnick, whose position is in part supported by the toy company.
Objects and characters, chosen from a menu and created in a paint editor or simply cut and pasted off the web, are animated by snapping together different "action" blocks into stacks.
"They don't have to worry about the obscure punctuation and syntax common in most programming languages," he said.
Each block contains a separate command, such as "move" or "play drum" and each action can be modified from a drop-down menu. Blocks can only be stacked if they fit together.
So, for example, if someone wanted to animate a cat walking across the screen they could modify the move block to tell the cat to walk forward 10 steps.
If they then wanted the cat to bang a drum as it walked, they could stack the play-drum block underneath, choosing a sound for the instrument and how long each beat should last.
Other actions, such as speaking, changing colour or triggering music, can then be added to complete the animation.
Mix and match
Scratch is inspired by the method hip hop DJs use to mix and scratch records to create new sounds.
Users can share their creations on the Scratch website
"With Scratch, our goal is to allow people to mix together all kinds of media, not just sounds, in creative ways," said Professor Resnick.
"We want people to start from existing materials - grabbing an image, grabbing some sound, maybe even bits of someone else's program and then extending them and mixing them to make them their own."
Digital creations can then be shared on a site where users can watch other creations and even borrow elements from other Scratch projects to act as raw materials for their own.
"Kids like to share stuff on the web and I think that is a very strong element of Scratch," said Professor Nigel Shadbolt, of the University of Southampton and President of the British Computer Society (BCS).
He believes that it will be a useful tool for teaching children about computational thinking and enthusing "the next generation" of IT professionals.
"The thing that's very difficult for children encountering programming for the first time is that it is very unforgiving," said Professor Shadbolt.
"A program doesn't congratulate you for the 90% that you got right. It fails for the 10% you got wrong. So an environment where you are essentially assembling components that can only be configured in set ways takes some of that hardship away."
And for those that want to get stuck into something that looks more like traditional code there are sites like HacketyHack.
The site teaches children to code in a language called Ruby. There are seven free lessons, including one that allows them to develop a blog with just six lines of code.
"All of these environments are about getting kids to approach the world in a systematic and a structured way," said Professor Shadbolt.
Scratch is now available to download for free and works with both Apple Macs and Windows PCs.
A version of the tool is also currently being developed for the XO laptop, designed by the One Laptop Per Child Project.