This blog is now retired....

Tuesday, March 05, 2013

As we get closer to the release of Scratch 2.0,
we've decided to change the way we blog.
So this blog is now officially retired! You can check out our new blog at:http://beta.scratch.mit.edu/news [1] Scratch On!

Posted by Lightnin 0 comments


Meet the Scratch 2.0 Development Team

Friday, November 30, 2012

Scratch 2.0 is nearing the beta test phase, so it seems like a good time to introduce the small team of designers and developers who are working hard to finish it!

Mitch Resnick

I’m a professor at the MIT Media Lab, and I lead the Lifelong Kindergarten research group. In addition to developing Scratch, our group helps develop robotics kits like LEGO Mindstorms. In fact, I’m officially the LEGO Professor at MIT. I feel like I have the best job in the world.

Natalie Rusk

I am part of the group designing the Scratch 2.0 project editor. I also am developing support materials (such as the new “tips window”). In addition, I research and write about motivation for learning. A bit of Scratch trivia: I named the sprite “Gobo.”

John Maloney

I’m the lead programmer for the Scratch project editor and player. I’ve written a bunch of code, but many others have made major contributions over the past ten years. Some of my favorite features of Scratch 2.0 are: cloning, procedures, turbo mode, fast lists, and video.

Champika Fernando

I’m a Master’s student at the MIT Media Lab. I’ve been working on developing and designing the Scratch 2.0 website and helping to design the new vector-based Paint Editor. I grew up in Canada, and in my spare time I enjoy cooking, cycling and going on adventures. I also love waffles :)

Sayamindu Dasgupta

I am a PhD student at the MIT Media Lab. I developed the backend of the Scratch 2.0 website, and the Cloud data system. The Cloud data system is also a part of my research, which covers programming with data. I grew up in Kolkata, India, and when not around computers, I like to take photos, fly kites, and cook.

Ricarose Roque

I am a PhD student at the MIT Media Lab. I help with the design of the community website and study ways to support creative collaboration. I also love to design Scratch workshops, especially for families. I was born in the Philippines and grew up in Los Angeles. In my free time, I enjoy hanging out with my friends and family and love to make/eat waffles and tacos. 

Amos Blanton

In addition to managing the current Scratch website, I help with the design of the Scratch 2.0 website and support materials, and reboot the servers when they need it. I like hiking, playing with my 2-year-old son, and creating fun workshops with Scratch and LEGO WeDo[2].

Shane Morgan Clements

I’m new to the Scratch team. I’ve really enjoyed working on the costume editor and website, and I'm looking forward to seeing what everyone creates using the new vector graphics tools. My home is just outside of Boulder, Colorado, and I enjoy spending time in the mountains with family and friends.

Several other people were actively involved in earlier stages of the Scratch 2.0 development process, including Paula Bonta, Karen Brennan, Gaia Carini, and Brian Silverman. In addition to all the development work, there are lots of folks whose efforts help make Scratch 2.0 possible - like Paddle2See (who is working tirelessly to isolate glitches in the new Flash player), Cheddargirl, and many more people who have contributed to Scratch. This includes our community moderators and all the Scratcher alpha testers who’ve volunteered their time and energy to give feedback and isolate bugs in Scratch 2.0. 

While there’s still lots of work to be done, we’re planning on announcing the timetable in December for the beta version and the final release. (Believe us, we’re eager to get it done too!)

Posted by Lightnin 4 comments

Scratch 2.0: 4 new features

Monday, October 15, 2012

Hey all you Scratchers! This is Scimonster, Lightnin, silvershine, Lucario621,  Hardmath123, and kayybee, members of the Scratch 2.0 alpha testing team. We're here today to answer some questions you had about new features in Scratch 2.0! Please note that anything in this post is subject to change before the final release.

Cloud Data

One cool new feature of Scratch 2.0 is cloud data Cloud variables and lists are similar to ordinary variables (and lists), with the exceptions that:

  • The values are stored on the Scratch servers.
  • They will keep their values until changed, even if you leave the project.
  • They update almost immediately for everyone who is viewing the project and can be updated by everyone viewing it.
  • When other Scratchers “look inside” your project, they can edit cloud variables’ data (but only temporarily)

As such, cloud data is useful for many types of projects:

  • Surveys
  • High scores / high score lists
  • Collaborative projects
  • Collaborative and multiplayer games

This opens up a whole wealth of new Scratch project ideas! You might be wondering how to create a cloud variable. It's very simple: when you click the “make a variable” button, there will also be a check box that allows you to create a cloud variable.

User ID

One requested feature was a way to know who was viewing the project. This has been implemented, but not in a way most envisioned it. Instead of there being a usernamereporter that reports the username of the viewer, there is a  block that reports the viewer number that you were (i.e. the second person to view the project has ID 2). An anonymous user has an ID of 0. Using IDs instead of usernames addresses some privacy and security concerns about collecting that kind of data. What can this block be used for if it doesn't give you the name?

  • A personal high score
  • Preventing users from voting twice in a survey
  • Saving your progress in a game or preferences in a project
  • And much more!

Time blocks

Another feature that has been highly requested is a way to get the date and time. There are, as of the time this was written, two date/time blocks. The main one is a reporter, . It has a drop down menu with: year, month, date, day of week, hour, minute, second. It returns the current value for your local timezone. Some uses for this block are:

  • A clock in an OS
  • An alarm clock project
  • A calendar

Another block is . It reports how many days (with a long decimal) since January 1, 2000. Some uses for this block are:

  • Countdowns
  • Synchronizing events for all users in a game
  • Situations where all users, even those in different time zones, should see the same time, especially when using cloud data

Run a block without screen refresh

The reason people put projects in turbo mode is usually to run just a couple of their scripts faster. The Scratch Team has been working on ways to let the project creator make parts of their code run in “turbo” mode (which just means they run without pausing a lot to update the screen, also known as atomicity). First they tried adding a “warp speed” C shaped block called “Run all at once”, an idea inspired by Snap, a more advanced program inspired by Scratch. But they were concerned it could be confusing to new users.  The current plan is to make “run without screen refresh” an option for custom blocks you create. If you check this option, the scripts in the block will run without pausing to refresh the screen - making them much faster. This gives the programmer more control over which scripts run at what speeds. It's even better than a turbo on/off block! What do you think of these features? Are there improvements you’d like to see? Share your thoughts on this forum thread.

Posted by Scimonster 1 comments

Labels: clouddata scratch2.0 time userid

Scratch 2.0 website development

Monday, April 23, 2012

Scratch 2.0 is a collaboration, with different people working on different parts of the same project. Most of the Scratch Team's time and effort is spent thinking carefully about how to make Scratch 2.0 easy and intuitive for people who are new to programming. Developers help turn those ideas into working code.
The movie below is a visualization that shows how one part of Scratch 2.0 - the website code - has grown and changed as we work on it. Each dot represents a file that's part of Scratch 2.0. The figures that dart in and out, making changes to existing files and adding new ones, are the developers. As you'll see, Champika Fernando, the lead developer of the Scratch 2.0 website, has changed a lot of files, along with John Maloney and Sayamindu Dasgupta. And of course, the entire Scratch Team has been thinking carefully about the design of things (something which this visualization does not show).

Scratch 2

Scratch 2.0 website development visualization

Lots of Scratchers have been asking us when Scratch 2.0 will be ready. It's still too soon to name an exact date, but we're planning to launch Scratch 2.0 later this year. As soon as we have a timetable for release, we’ll post an announcement in our forums.
Got questions or comments? You can join in the discussion about this blog post on the Scratch forums.   Posted by Lightnin 0 comments    ===Scratch 2.0 Update: New Name, New Mascot!=== Sunday, April 01, 2012

Edit: We hope you enjoyed this April Fools Joke! And don't worry, Scratch 2.0 will still be called Scratch.  [3] Cats were once very popular on the internets, but that time has passed. It's time to update our look and feel before we release Scratch 2.0! We thought long and hard about what new animal to choose. Then we realized the answer was staring us in the face every time we browse the webs: Ponies. Cats Scratch - something that's mean and hurtful. But what do ponies do? They Neigh! So Scratch 2.0 will no longer be called Scratch - it'll be called Neigh!  [4]Got questions or comments? Share them on this forum thread! Want to read a longer (14,000 word - TL;DR) explanation of why we made the change? You can find it here. Posted by Lightnin 18 comments

Scratch 2.0: Project Page and Project Editor

Thursday, February 16, 2012

Many Scratchers have asked to see screenshots of what Scratch 2.0 looks like so far, so we thought we’d give a preview of two important pages: the project page, and the project editor. We’re still making lots of changes to Scratch 2.0 -- it is just entering what we call “Alpha stage,” which means it's a very rough draft that needs a lot more work. So the images and descriptions posted here are likely to change somewhat before the release of Scratch 2.0.

The Project Page

click for larger version

Just like on the current Scratch website, you can check out a project, love and favorite it, add it to a gallery, or leave a comment. However, in Scratch 2.0, the project editor is built directly into the website. That means that you can click the See Inside button to check out the scripts that make the project run in the Scratch project editor. This makes it easier to see how a project works, and remix the code.

The Project Editor

Here’s the same project when viewed in the project editor, by clicking See Inside from the project page shown above.

click for larger version

A few of the changes / new features of the 2.0 Alpha editor:

  • The block categories have been changed to make room for a few new blocks, and the ability to create your own blocks based on custom scripts.
  • The paint editor now uses vector graphic images by default.
  • The sound editor will allow very basic editing of sounds.

In the lower right corner of the image above, you'll see a new area that we're currently calling the backpack. The backpack can be used to transfer scripts, sprites, and costumes between projects. For example, if you find a project with a sprite that moves in a way that you really like, you can "See Inside" the project, and drag the script it uses into your backpack to make a copy. When you return to your project, you can open the backpack and drag the script into your sprite. We’re still not sure if “backpack” is the right name for this feature -- some have suggested we use “clipboard” instead. If you have suggestions for a better name, please let us know on the forum thread that corresponds to this blog post.

As we said in the beginning: We are still making lots of changes to Scratch 2.0, so the images and descriptions posted here are likely to change somewhat before the release. If you have more questions about Scratch 2.0, check out the Scratch 2.0 FAQ. If you don’t find an answer there, you can feel free to post your questions on this thread in the forums. We still don’t have an official release date yet, but we plan to let Scratchers test it out at Scratch Day 2012.

Posted by Lightnin 10 comments


Here's What 44 million Scratch Scripts Look Like

Monday, August 08, 2011

In preparation for our 2 million project mark celebration and as part of my research on remixing, I have been analyzing the use and reuse of components in the Scratch Online Community. For example, I have looked into which images and programming blocks are more commonly used. Now I wanted to go one step further. I wanted to know what are the most common programming constructs or scripts created by the young Scratch programmers. So here it is, a word cloud-like representation of the 100 most common scripts

Click for larger version

Looks Matter By far, the most common scripts involve some kind of looks manipulation such as hiding/showing a sprite and switching its costumes. This is probably because controlling what is displayed on the screen is useful and necessary for most types of projects, from games to animations. Also, these scripts often come in pairs: for every "hide" I would expect a "show".

1st place, 9.16%

The most commonly used script (9.16% of the total) is a two block script that hides a sprite when an event occurs. The names of the events vary widely. But just to give you a an idea of the types of events we're talking about, the most common events that trigger this script are "Game Over" (2.54%) and "start"(2.44%).

Below you will see a list of the most common scripts that have something to do withlooks, as well as their position in the ranking and percentage of the total, both based on their frequency.

2nd place, 4.84%


4th place, 3.28%

6th place, 1.36%

8th place, 0.95%

9th place, 0.73%

11th place, 0.63%

14th place, 0.53%

15th place, 0.47%

17th place, 0.42%

18th place, 0.40%

21st, 0.35%

As you can see from the small percentages, the frequency distribution of scripts appears to be a long tail distribution. This is to be expected given the large number of combinations that are possible. One might expect a similar distribution if we were to look for the most popular phrases in the English language (probably an even longer and flatter tail). 

Interacting via the Keyboard 

16th place, 0.46%

It is nice to see that interactivity ranked highly as well. After all, interactivity is one of the features that distinguishes Scratch projects from, say, videos or pictures. You can see that some of the scripts above involve interactivity. For example, the 11th most common script is probably used in interactive stories that function like slideshows. I say this partly because I have seen this quite often and because the most commonly used keys that trigger this script are "space" (36.55%) and "1" (6.66%).  The use of the "space" key to interact with projects has developed into a cultural norm that participants learn in the Scratch Online Community (possibly influenced by Microsoft PowerPoint as well).

While slideshows are interactive, we can see even more complex interactivity in the 16th most popular script. This script is often used in games to let a player control a character using the keyboard. The most common arguments used are "right arrow ➡,  direction 90° and a move 10 steps" (16.21%) followed by the equivalent "left arrow  ⬅and direction -90°" (16.81%).

27th  0.25%
(with sample arguments)

Update - I was asked about script #27. Here is what I found. Despite not being obviously interactive, the 27th most common script represents a form of interactivity because one of its arguments is a variable changed by pressing the arrow keys. As we can see in this this project (the very first one to use this script), these blocks are typically used to control the horizontal position of background elements on on a scrolling background game

Background Sound


13th place

I was a bit surprised to find a script related to sound ranked so highly. I guess both animations and games often have some sound playing continuously in the background. Looking more closely, I was even more surprised to find that the sounds looped more frequently are not music files imported into Scratch (i.e. commercial songs) but recordings created within Scratch using the microphone. The most common sound name played with this script is "recording1" (3.82%) followed by "one1" (1.08%). 

Signs of Experimentation You will notice that some of the scripts in the script cloud are single hat blocks. I was debating whether to include them or not. Technically, I considered them to be scripts even if they don't have any other blocks underneath. I decided to include them because it is quite telling how often people drag a hat block and leave it unused. Compared to other languages, Scratch is quite forgiving and lets people do this without any big repercussions. I would like to think these unused hat blocks represent moments of tinkering and experimentation, something that we value a lot in Scratch. 

3rd, 4.73%

5th, 1.44%

12th, 0.63%

10th place, 0.68%

After talking to some people, I did decide to leave out the script that had the comment block by itself. For several technical reasons it was identified as a script by the analysis I ran and it's in the 10th position in the list (0.68%). The use of the comment block was both surprising and encouraging. Partly because it was added recently so a lot of projects back in 2007 and 2008 did not even have the option of using it. 


Equivalent scripts. 
Arguments are ignored

For the past few years, I have been collecting a massive database with information about the components of each version of every project uploaded to the Scratch website. Among other things, this database has the human-readable representation of the scripts for each sprite. As you might know, a sprite can have zero or more scripts, so I started by extracting each script associated with every sprite and created a new database table for it. This new table has a record for every script that comes with its the human-readable version, the id of the project, its version number and the id of the sprite, among other fields.  As I did this, I also added a column to store a version of the script without any arguments. This way, scripts with different arguments but with the same block sequence are considered as equals. This new database table of scripts has more than 44 million scripts and close to 1.7 million unique projects out of a total of 1,883,872 projects (90% of projects have scripts). If you are interested in looking at the data, please check out this spreadsheet and let us know if you find any other facts worth mention (or any mistakes!).

This analysis was possible thanks to the work of former MIT student Rita Chen and members of the Scratch community including MyRedNeptune and the active Scratch Wikieditors JonathanpbScimonster and BWOG. Thanks gals and guys!   Posted by Andrés Monroy-Hernández 0 comments   Labels: data analysis onlinecommunity    ===Scratch 2.0: What are you searching for?=== Sunday, July 31, 2011

Finding the project you’re looking for in a collection of 100 projects is pretty easy. But finding one project in 2,000,000 can be hard. When you add in all the other things you might want to search for -- forum posts, galleries, wiki entries, and support pages -- then search can get pretty tricky. So as we’ve worked on Scratch 2.0, we decided to invest some energy on improving the search tools in Scratch.

We started with some rough conceptual mockups. Like most designers, we make a lot of “mockups” - models that show different ways that something might work. Mockups are easy and quick to make, because they don’t have to look good, and they don’t even have to function. All they have to do is show how an approach or an idea might work so that the design team can think it over, weigh the advantages and the disadvantages, and come up with new ideas. [28]  This is the first mockup we made when we started to think about ways to improve search. It shows what the results for a search on “lolcats” might look like. Forum posts are at the top, followed by projects, galleries, wiki pages, and tags. This is a different way of organizing the search results than the approach used by the current Scratch website, which just displays a list and lets you filter the results by type afterwards.   Gaia joins the Scratch Team Shortly after we made this initial mockup, Gaia Carini joined the Scratch Team and dove into the problem of search. Gaia recently graduated from MIT, and chose to come back to earn a Masters of Engineering degree. She’s made many mockups and several working prototypes so that the design team could try out different approaches. Here’s a picture of her latest (but not final) search interface.  This shows a few of the features that have grown out of discussions about past prototypes, like the ability to enlarge and play a project right on the search page (without having to click-through to the project page). Links on the left sidebar help you refine your initial results, so you can narrow things down with only a few clicks. This makes finding what you’re looking for a lot quicker and easier. We're still considering additional ways to enhance search. For example, should we include an "advanced search" interface, to allow for deeper searches? Should the search box automatically suggest search terms as you type them in? And we're still not quite sure if it's better to display results in separate categories, as in the first mockup, or if we should display them as a mix of projects, forum posts, etc. What do you search for on the Scratch website? Are there things you wish you could find more easily? Do you have suggestions on how to improve search in Scratch? Share your thoughts in this forum thread.   Posted by Lightnin 0 comments   Labels: scratch2.0    ===Scratch 2.0: Friend or Follow?=== Friday, June 24, 2011

[29]When we developed the Scratch website, we decided to make friending another Scratcher non-symmetrical. That’s just a fancy way of saying you can add someone to your list of friends without them having to friend you.   For example, let’s say you want to friend a Scratcher called Gobo. You can do this by visiting Gobo’s My Stuff page and clicking Add to friends. Gobo will then show up on your list of friends. However, that won’t make your username appear on Gobo’s friend’s list. Gobo can always go to your My Stuff page and add you as a friend too. But until they do, Gobo is your friend, but you aren’t Gobo’s friend. On Facebook and most other social networking sites, friending works a little differently. When you invite someone to be your friend, the site sends them a message asking if they’d like to be friends with you. If they don’t approve the request (for instance, if they don’t know you well enough to be friends yet), nothing happens. If they do approve the request, then they will be on your friend’s list and you will also be on theirs. As we work on Scratch 2.0, we have the opportunity to re-visit the choices we made with the first version of the website, and decide to keep things the same or do things differently. For example, we could make friending on Scratch work more like it does on Facebook. This might avoid some confusion, since it seems like some people who are new to Scratch assume that friending on Scratch works like friending on Facebook. If we made that change, then we might also want to make it possible for Scratchers to “follow” or “watch” other Scratchers that they think make interesting projects. Following would work the way friending works on Scratch now. You can follow anyone you like, but following someone doesn’t make them follow you. When someone you are following makes a new project, you get an update in your messages with a link. There could also be a row on the front page that shows recent projects by people you are following. In this scenario, you could follow Scratchers that you think make interesting stuff -- but you would friend Scratchers that you know a little better, perhaps because you’ve gotten to know each other over time. What do you think? Is it worth changing the friend system on Scratch? Or should we just keep the friends system the same? Join in the discussion on this forum thread and share your thoughts. p.s. You can check out a related discussion and suggestion started by cheddargirl on this forum thread.   Posted by Lightnin 2 comments   Labels: onlinecommunity scratch2.0

Scratch 2.0: Moving to the Cloud

Tuesday, May 10, 2011

[30] Scratch 2.0 will be “all in the cloud” -- meaning that the Scratch programming editor will become part of the Scratch website. We’re excited about this transition because it has a lot of great benefits. For one thing, it won’t be necessary to download and install Scratch to try it out. For another, it will be easier to see the scripts that show how a project works. Instead of downloading the project file, all you need to do is click a button to see inside and play with the code -- then click another button to remix it. Once the transition to “the cloud” is complete, it’ll be easier for us to continually add new features to Scratch, without releasing an entire new version.  But moving the Scratch editor to the website raises some tough questions. For example: Should you be able to see other people’s Scratch projects that aren’t yet finished? If a Scratcher starts a new project and gets halfway through before stopping to do something else, should others be able to see their work in progress? Or should it be hidden until the Scratcher decides they are ready to share it with everyone else? There are advantages and disadvantages to both approaches. Being able to see a project that’s only halfway finished could ruin the surprise of a newly released project. On the other hand, some Scratchers might like to get constructive advice and feedback on their unfinished, draft projects. Right now, we’re imagining that Scratchers will work on their projects in their own private section of the Scratch website. Their project will only become visible when they click a button to “share” it with the rest of the Scratch community. But because we’re still in the early stages of developing Scratch 2.0, this could still change. What do you think? Should Scratchers be able to see each other’s draft projects? Post your thoughts on this forum thread. Edit: Don't worry, we are still planning to make a downloadable Scratch application, so it will still be possible to work on projects "offline." See more about this in the Scratch 2.0 FAQ.   Posted by Lightnin 9 comments   Labels: scratch2.0

Scratch 2.0: Create your own block

Saturday, March 26, 2011

Flash Player improvements Thanks to everyone who reported bugs in the new  flash-based Scratch project player! We’re now up to version 23 (the third version since the original release), and so far we’ve fixed over 20 confirmed glitches. Lots of Scratchers have posted detailed bug reports on the forums, which is really helpful. The more glitches we can find and fix now, the better we can make the flash player (and the next version of Scratch).   Create your own block One of the new features we’re excited to add to Scratch is the ability to create your own blocks -- called “procedures” in the language of computer science. Creating your own blocks can be really handy. For example, let’s say you want to create an animation with a sprite that jumps in the air. Each time the sprite jumps, you need to tell it to go up, wait a little while, and then come back down again. That takes at least 3 blocks for every jump. A simple “jump” script. If you want to make your sprite jump, move, and then jump again, you might make something like this. [31]A “jump, move, jump” script. In Scratch 2.0, you can do the same thing by creating your own jump block. You tell Scratch what your jump block does by creating a special script that defines the new block: [32] Creating a jump block to make a “jump, move, jump” script. In this example, the jump block makes the sprite jump up, wait a half second, and then come down again. Each time Scratch comes to a jump block in a script (like the script on the left), Scratch runs the commands in the jump definition script (on the right). Combining the commands for jumping into a single block makes scripts easier to read. In the next version of your project, you might want to be able to control how high your sprite jumps. Without the ability to make your own jump block, that could be a real pain. You’d have to find each and every “change y by 50” block that was used for jumping in your project, and change the 50 to something else. But with the new create-your-own-block feature, you can just add an input that tells the jump block how high you want it to jump. [33]Creating a jump block with a “height” input. Now each time the jump block is run, the value of the height variable will be set to whatever number is entered as an input on the jump block. In this example, the firstjump block has an input of 25, so the height variable will be set to 25 and the sprite will jump 25 pixels high. The second jump block has an input of 50, so the sprite will jump 50 pixels high. We’re still in the process of figuring out the best way for Scratchers to create their own blocks, and there are still many questions. For example, if you create a jump block in one sprite, would other sprites be able to use the jump block too? Should the definition script appear in only one sprite -- and, if so, how would people find it? Should you be able to define “jump” differently in different sprites? These are few of the questions we have to think through before we’re ready to put this cool feature in the next version of Scratch. Have ideas or thoughts about this? Post them in this thread in the Scratch forums.   Posted by Lightnin 9 comments   Labels: scratch2.0

Top 10 images in Scratch

Monday, February 14, 2011

There are more than 1.5 million projects today on the Scratch website containing more than 45 million images and sounds. Here is the list of the 10 most common images used. The number in parenthesis represents the number of times that image is used.

  1. button (58,072) 
  2. cat1-a (35,748) 
  3. bananas1 (33,880) [34]
  4. underwater (26,646)[35]
  5. beachball1 (25,694)[36]
  6. spotlight-stage (22,924) [37]
  7. bat1-a (21,220)[38]
  8. buttonPressed (20,973) [39]
  9. gobo1 (20,176) [40]
  10. shark1-b (19,368) [41]


Each Scratch project can have one or more versions uploaded to the website (only the latest one is visible to the public). Each project version has some sprites and a stage. Each sprite and each stage can have one or more images.  Whenever a project gets uploaded, it gets analyzed and the attributes of its different components (blocks, images, sounds, etc) get stored in a structured database. In that database we have a table with the metadata about each image and sound, such as its name and size. I used that table to find out what are the most common images based on their name.

In order to keep things simple and since most projects have only one version, I decided to ignore version 2 and higher. Then I grouped the images by name, assuming that two images with the same name (e.g. shark1-b) were the same. Of course, this assumption is not always correct. For example, it means that if someone imported an image called awesome-cat.png (Scratch would give it the name "awesome-cat" once imported) and then edited it, it would get counted along with an unedited version of the same image. Another challenge is that whenever people use the Scratch paint editor, images get assigned default sequential names (e.g. costume8, costume9, etc). So names like costume1and background1, along with their equivalents in other languages (e.g. disfraz1 in Spanish), are unlikley to represent the same image. For this reason, I ignored all those non-unique image names from the list of the top 1000 most common image names. That included names like "normal" or "1" which after a manual analysis of a small sample proved to also represent a wide variety of images. In the future, a more accurate analysis would involve parsing all the projects and generate a hash of the binary representation of each image.

It is not surprising that all of the images in this list are images that come with Scratch itself. However, they represent less than one percent (1%). The reality is that the the distribution of images follows a distribution with a long tail where there are a lot of images that get used once or twice.   Posted by Andrés Monroy-Hernández 4 comments   Labels: data analysis onlinecommunity    ===Scratch 2.0 Progress Report=== Friday, February 11, 2011

This is the first in a series of monthly Scratch 2.0 updates. Each update will highlight a few new features that we’re considering for Scratch 2.0.

Flash-Based Scratch Player Ever notice how some projects act differently on the website than they do in the Scratch 1.4 application? That’s because the software that plays your Scratch project in the Scratch 1.4 application is different from the software that plays the project on the website. That’s one reason why we decided to make the transition to a Flash-based Scratch player and editor in Scratch 2.0. Both the player and the editor (where you create your scripts) will run inside your web browser, and both will be based on Flash, so your projects will run the same in both places. Soon we’ll be releasing a beta version of our Flash-based Scratch player to the website, so that you can test it out. This new player includes some cool new features, like the ability to make the project completely fill your web-browser’s window with one click. Once it is ready, the link to try out the new player will appear on each project page.  The new icon at the top-left of the player is for full-window mode We want the Flash player to work well with all Scratch projects, so once the beta is released we’ll need your help testing and reporting bugs!

Customizable User Pages We’ve been really excited by all the great  suggestionsforum discussions, and mockups (here and here) of ideas for my-stuff pages in Scratch 2.0. Based on these suggestions, we’ve decided to allow Scratchers to customize their user pages around a set of “widgets,” similar to the way that Deviant Art works. For example, each Scratcher can have a small box or “widget” on their user page to feature a few of their own projects. Another widget could feature their projects with the most views. The image below shows an early mockup of the editor where you can arrange widgets for your user page. This will allow Scratchers to customize their user pages in lots of interesting ways, which is currently the second most popular Scratch Suggestion.  So far we’ve been focused entirely on the functionality of Scratch 2.0, and haven’t even started thinking about the look and feel, so the final product is likely to look very different from this mockup.  Keep it Simple!As always, our goal is to keep things simple: We want to make sure it’s easy for someone with no experience programming to dive in and get started with Scratch. Of course, we also want them to be able to make all kinds of cool stuff as they learn more about Scratch. So we spend a lot of time thinking about how to make Scratch both simple and powerful. In developing Scratch 2.0, we’re starting by making a version of the Scratch editor work in the browser, with the same features and capabilities as the current Scratch 1.4 application. Once that is complete, we’ll begin adding new features — but making sure to keep everything simple. Here are a few ideas we’re working on: the ability to create your own blocks (thanks to the BYOB folks for thinking this one through!), hide/show lists, better tools for collaboration, ways to pull data from the web, and many others ideas marked “under review” and “planned” on the Scratch Suggestions site. Look for the next Scratch 2.0 update in March, when we’ll describe our plans for improved support for collaboration on Scratch.

Posted by Lightnin 12 comments

Labels: scratch2.0


Scratch wiki: by and for Scratchers

Thursday, June 03, 2010

Here is a contributed post by one of the young members of the Scratch community leading the newly created Scratch wiki. A very exciting initiative!  Scratch Wiki, a wiki about scratch made by scratchers, for scratchers, is finally out!by Lucario621 Now, unless you live trapped inside a cave, you probably know about the popular, free, web-based, collaborative, multilingual encyclopedia, named Wikipedia. It has 15 million articles, which have all been written collaboratively by volunteers around the world, and almost all of its articles can be edited by anyone with access to the site. So this website is great - but if you want to post real in-depth information about a hobby, which in this case, is Scratch, you can only post summaries of it on the Scratch article, and that's about it. Not much information about blocks, or programming techniques, or animating techniques. This is because it would be deleted because it would not be considered "important enough". So, my goal, was to create a wiki, with information on all of the topics I just mentioned. [42]So what's a great wiki creating website, which has a great community, gives high page-ranks on Google, has plenty of features, and is completely free? Wikia. Now, to be honest, I didn't create the wiki myself, but rather I joined the Scratch Wiki at scratch.wikia.com, around July 2008 - and it was created by a user named LukeTek. But I only got actively editing, around February this year.

After editing a lot, another administrator on the wiki, named Juiceybox on the Scratch Website, made me administrator. This was a big step. Now, I could really make major interface changes, and make it more eye-catching. More importantly, this motivated me to actually use my powers, and not waste them, and use them to get people to join, and create a wiki with the sum of all Scratch knowledge.

So, I advertised the Scratch Wiki as a project, on my forum signature, and as a forum topic. After time, some users joined, and became large helpers - like Chrischb, Jonathanpb, and Mkolpnji especially - but it wasn't as big of a rush as you would think. But, enough people joined after time, and after many contributions the wiki actually looked fairly impressive. There were articles on about half of the Scratch blocks, along with many features of the Scratch program, and the website.

But the big stuff all happened when I asked one of the members of the Scratch Team about the wiki. Originally, I contacted the Scratch Team about different arguments between users on the website, but then, I shifted the topic to the Scratch Wiki. I asked them "Do you think I could maybe share about the Scratch Programming Wiki at Scratch Day?" and they replied positively, and there was even talk about creating an actual Scratch Wiki being part of Scratch website. So I was very excited.

So Andrés, one of the members of the Scratch Team, gave us some space on a server and me and JSO, all started working on the wiki, and although at first it looked like wikipedia-style page with no content, eventually we changed the skin to match the Scratch Website, and then import the content, and fixed different things, released it, and we have what you can see now.

The one important aspect about the wiki though, is anonymous editing. As you know, on Wikipedia there are tens of thousands of active contributors. A small fraction of those people however, are people who vandalize by erase content, putting ridiculous facts, and doing many other things - which results in bans. Thus, many people have to get out their ban hammers, and revert the edits, and do what they do. However, we didn't want the vandalizing, and we didn't want people to get banned. So we decided to not allow anonymous editing. We hope to invite many different Scratchers to help edit the wiki, and make it as good of a source as possible!   Posted by Andrés Monroy-Hernández 1 comments   Labels: collaboration onlinecommunity wiki    ===Scratch on the iPhone=== Monday, April 19, 2010

During the past week, several journalists and bloggers asked for the Scratch Team's reaction to Apple's decision not to allow a Scratch player app on the iPhone. Here is the statement that we gave to them....

We're disappointed that Apple decided not to allow a Scratch player on the iPhone or iPad (as part of Apple's policy against apps that interpret or execute code). As we see it, there is nothing more important than empowering the next generation of kids to design, create, and express themselves with new media technologies. That's the idea behind Scratch. Kids around the world are using Scratch to program their own interactive stories, games, animations, and simulations with Scratch -- and sharing their creations with one another online. In the process, kids learn to think creatively, reason systematically, and work collaboratively. Since the launch of Scratch in 2007, kids have shared nearly 1 million projects on the Scratch website (http://scratch.mit.edu). We hope that Apple will reconsider its policies so that more kids can experience the joys of creating and sharing with Scratch. (By the way, the Scratch player for the iPhone was created by a third party, not by our group at the MIT Media Lab. But our group is planning to make Scratch authoring tools for the iPad in the future, and we hope Apple will allow us....)   Posted by mres 14 comments   Labels: platforms    ===Scratch 2.0=== Monday, April 19, 2010

Prepared by the Scratch Team at the MIT Media Lab for the Digital Media and Learning Competition

Scratch & Share: Collaborating with Youth to Develop the Next Generation of Creative Software

Scratch 2

Scratch 2.0

In todayʼs rapidly changing world, people must continually come up with creative solutions to unexpected problems. So it is essential for young people to have access to tools, opportunities, and support to develop as creative thinkers.

That was our core motivation in developing Scratch, a graphical programming language that empowers young people (ages 8 and up) to create their own interactive stories, games, animations, and simulations. Since its launch in 2007, the Scratch website has become a vibrant online community, with more than 400,000 registered members sharing, discussing, and remixing one another’s projects. Available free of charge, Scratch is used in homes, schoolslibrariesmuseums, and community centers. One teacher wrote: “I have never seen students take to something so quickly or with such enthusiasm. It unlocks their creativity and empowers them.”

In online forums, children and teens have posted hundreds of creative suggestions for new features and capabilities for future versions of Scratch. Based on these suggestions, we propose to develop a new generation of Scratch, called Scratch 2.0, that will dramatically expand opportunities for young people to share ideas, collaborate on projects, and develop as creative thinkers. We will work closely with Scratch community members, providing them with ongoing opportunities to propose features, test prototypes, and share resources. New features of Scratch 2.0 will include:

  • sharing Scratch projects on mobile phones, tablets, and other new platforms;
  • integrating Scratch with social media, so that young people can program projects to dynamically pull content from and push updates to Facebook, Twitter, Flickr, and other Web 2.0 sites;
  • providing infrastructure for groups of young people to collaborate on projects (including version control and collaborative annotations);
  • enabling young people to program, remix, and share projects more seamlessly, all within a web browser, without any downloading or uploading.

If you are interested in discussing more about Scratch 2.0, we encourage you to post your comment on our DML Competition Entry.   Posted by Andrés Monroy-Hernández 2 comments   Labels: scratch2.0

Scratch Companies

Wednesday, January 13, 2010

For a while, we have been interested in getting members of the Scratch community to help us document interesting phenomena that happens on our website. A few weeks ago I posted a message on the forums looking for a guest blogger to write an article for this blog. I asked Scratchers to submit their proposed articles for review. A couple of articles were well interesting and well-written but I had to pick one. This time, I decided to select Jonathanpb's write up about the groups commonly referred as "companies", that is group of Scratchers that get together (virtually) to create collaborative projects. We have written about them before, but it is great to see this from the perspective of an actual member of the community.

Ever since the beginning of Scratch, users have been working together. This varies from simple helping to the ultimate teamwork — companies.

The history of companies in Scratch is widely varied. Companies that were started a few years ago have a long and complex history, while companies that are new have a brief but exciting history. Nevertheless, all company histories revolve around one thing: A group of people who decided to work together.

Why did they decide to work together? Most of it is based on one simple thing: the want to join up and work together. Why work alone, restricting yourself to your capabilities? When you work together, you can help each other — if you are having trouble, someone else may be able to help you.

Due to this, companies can often do what others cannot do. Companies can create amazingly large and complex projects, due to the wide range of knowledge among its users. One person alone does not know much; a group together knows very much. Another good thing about this is that you can create a wide range of projects, because you have the knowledge to do it. A lot of companies, like Gray Bear Productions, create a wide range of projects with their knowledge — while others, like Flaming Trout, make games with that same knowledge; you can take knowledge used in physic simulations and put it into a game, after all.

Like everything, companies have their disadvantages. With a person working alone, everything is neat and tidy — there is only one person working on the project, so there is no need for transferring work, and you do not have to worry about people working in a different way from yours. There is also a better visualization and plan of the project; the one person can plan and think freely, with no one to argue or disagree with.

How many companies exist? Quite a lot. Since there are a lot of benefits with companies, it is natural that people would want to make one. People also find working in a company enjoyable, so they may want to start their own.

Where are the companies now? They are thriving. Due to the larger amount of users joining Scratch, companies are expanding. More people can contribute, boosting their productivity. More people can be the customers, also. These companies are doing very well.

Where are they heading? The companies have no plan of stopping, and will most likely continue as before. Companies always will be an important part of Scratch.

Here is an interview with ChaoticD, leader of DG Games, a nice company that people like. If you want to know more about a company, this will help you.

Q. What would you consider your company’s best production?

A. Nowhere part 2, by The_Flaming_Duck. It's a scroller that has 5 levels, including a boss battle for each level. The only problem is that the project is too big for the Scratch Website, so you have to download it instead.

Q. How interactive are the workers? How well do people work together? Do they enjoy working?

A. Yes, they enjoy working, and they actually ask me if I can give them more work sometimes. They are also very interactive; we have a forum on our website, and they are always responding to each other’s posts.

Q. How often does your company release a new production?

A. Originally, we released a game almost every 2 weeks, or less. However, I am having the members shift into making games with each other more than before, so a game made by the entire company can take a month.You can see what it is like to be in a company… it is great.If you want to start your own Scratch company, here are some tips:

  • Get a few members ready before you start. If you start with no members, no one will have heard of your company, and who would join a company that did not have any members? 
  • Be creative. If you want to be known and have plenty of members, you have to have something that makes them want to join your company, and not a different one. 
  • Make interesting productions. You want to have interesting projects, so customers will enjoy your work. Also, it will keep the members happy, since they enjoy working on interesting projects. 
  • Have a headquarters area for your company. The ideal area is a gallery, where you can show projects and receive comments. Having a headquarters area will greatly help, since you can have an actual area to do things in. 
  • Keep active. How will your company become famous if you do not keep active? If you have a gallery for your company, regularly read your comments. Keep making new productions, and respond to any queries. 
  • Never give up. The goal is not to be famous. Just keep up your company, and hope for the best.

Now that you know about Scratch companies, why not join one or start your own?

Posted by Andrés Monroy-Hernández 0 comments

Labels: collaboration onlinecommunity


Scratch on Linux

Monday, November 02, 2009

For the past few months we have been working on improving the Ubuntu package of Scratch 1.4.1. We recently decided to release it using our own Personal Package Archive (PPA) on Launchpad so that people can simply add it to their sources and install it via Synaptic (as most other Ubuntu applications). The package is also available for download from our Linux documentation page.

We have tested this package on Ubuntu 9.04 and the recently released 9.10. Most features work just like they do on Windows and Mac OS, even the webcam and thePicoBoard!

There are still some issues that we hope to get ironed out in the future. Of course, if you are an experienced Linux hacker and would like to help us in this effort or in packaging for other distros please contact us at linux@scratch.mit.edu!

Many thanks to Amos Blanton, Derek O'Connell and John Maloney for all their work. Posted by Andrés Monroy-Hernández 1 comments Labels: linux platforms

Consider donating to Scratch

Sunday, September 20, 2009

We are pleased to provide Scratch free of charge. If you enjoy using Scratch, please consider making a donation to support Scratch. Donations of any size are appreciated.

Your donation goes into our ScratchLabs fund, used to support future development of Scratch software and the Scratch website. On the donation form, just fill in the amount of your donation and select "New gift" in the pull-down menu for the gift type.

Thanks for supporting Scratch! Posted by Andrés Monroy-Hernández 4 comments Labels: donate

Scratch 1.4 is now available!

Thursday, July 02, 2009

We are happy to announce the release of Scratch 1.4 ! With this new version, you can:
* ask users to input text from the keyboard (with new "ask" and "answer" blocks)
* take photos directly from built-in or USB webcams
* run Scratch on smaller screens, such as on netbook computers
* control robotics with LEGO WeDo

Thanks to everyone who provided suggestions for Scratch 1.4. We really appreciate all of your help.

To learn more about Scratch 1.4, check the Release Notes.

Download Scratch 1.4 and try it out! Posted by mres 1 comments Labels: upgrades

Recent changes to our website

Sunday, May 31, 2009

Based on some feedback and our own internal discussions, we have released some changes to our website that include:

  1. New sections on the front page. "My Friends' Latest Projects", Surprise Projects from the Design Studio, "Projects curated by". We have not picked a curator yet, but once we do, her or his 3 latest favorite projects will be displayed on the front page.
  2. Friend's projects on My Stuff page. This can be a nice way to give more meaning to "friendships". In part, inspired by Twitter followers. This picks each one of your friends latest 3 projects and displays them in different pages. This may put some stress on our servers, so we it is possible that we scale it down to only 1 or 2 pages.
  3. Linking directly to comments. When receiving comments, you will be able to click on a link to go directly to a page where you can read it. No need to spend time trying to find the comment that could be buried under a hidden reply. This should also help display the page a bit faster as it doesn't have show anything other than the comment. Hopefully this helps our servers too.
  4. One project per person on the front page. Now, even if a project is really popular it will only get one spot now on the front page. We think this gives everyone a better chance to get more visibility and feedback on their hard work.
  5. Newest projects only for Scratch members. We are now showing the Newest projects section of the front page only after people are logged in. Since we allow only members of our community to flag projects, we think that non-members should not be presented with this category to reduce the chances of showing projects that do not represent the values of our community.
  6. Easier translations. We now have a web-based translation mechanism that will make it easier for people to help translate our website. We welcome help translating!


Due to performance issues we had to disable "My Friends' Latest Projects" until we find a way to make it less intensive on our database server.

Posted by Andrés Monroy-Hernández 8 comments Labels: onlinecommunity upgrades

Scratch Curator

Friday, May 29, 2009

Lots of members of the Scratch community have expressed a desire to choose which projects get shown on the Scratch Homepage. So we've created a new role called curator. While serving as curator, a Scratcher's most recent favorite projects will be displayed on the Scratch homepage for everyone to see. It's a great way for community members to show the diverse talents and interests in the Scratch Community.

There's more info about becoming a curator on the Scratch Homepage here: http://info.scratch.mit.edu/Become_a_Scratch_Curator Posted by Lightnin 2 comments Labels: onlinecommunity

Recent traffic spike

Saturday, March 14, 2009

Two recent articles, one in Wired and another one in The Register have brought a lot of traffic to our website. This is great as we love to see more people learn about Scratch!

The bad news is that this traffic spikes are difficult to handle. To put it in perspective, two years ago when Scratch was officially unveiled, we got so much traffic from articles on the BBCSlashdot and Digg that our website went down for a few hours. We have made a lot of performance tunning since then, however, last week's spike combined with the regular high traffic from a normal day slowed down our website significantly. The numbers from Google Analytics and Quantcast show these spikes:

График траффика
График использования Скретч

The issue of scaling is something that has been occupying us for a while. We have considered scalable solutions like AWS, unfortunately, the costs of those services for a non-profit project like Scratch are well beyond our budget. We are currently hosting our website at the MIT Media Lab and while this is basically free, it does comes with a lot of challenges for scalability. We hope that as Scratch gains visibility it might also attract the attention from organizations and individuals that would be willing to support our scalability efforts.

In the meanwhile, we will continue working on improving our site using free technologies, such as memcached, that would allow us to make the best use posisible from the infrastructure we have.

Posted by Andrés Monroy-Hernández 9 comments Labels: onlinecommunity

Scratch Day

Sunday, March 01, 2009

Last year we had a great Scratch@MIT conference. This year, we're doing something different: a worldwide network of events. There are already more than 20 events registered and number keeps growing. The idea is to get Scratchers together to share projects and experiences, and learn more about Scratch. Find out more, join an event or organize one yourself.

Posted by Andrés Monroy-Hernández 5 comments

Labels: events

New! Scratch Blog

Wednesday, January 21, 2009

Welcome to the new blog of the Scratch Team!

I'm Andrés and I am a member of the Scratch Team. I have been working on the Scratch website from the beginning and I am very happy to see the growth of our online community. In less than two years, more than 320,000 projects have been shared and now in a single day, more than 1,000 projects are uploaded to the website!

Projects have ranged from science simulations to animated stories, from news casts to engaging video games, from to soap operas to political statements... we have seen a lot of creative work!  Our community is made of people from different countries, interests and ages. While we are very different, we all share our love for Scratch and our interest in sharing projects and ideas. Some have even found collaborators and created groups to work together. Visitors to the website come from all over the world. Here is a map (from our Google Analyics) to give you an idea of the geographic diversity, based on cities, where visitors to our website come from.

Карта пользователей Скретч

And here you can see the range of ages in our community.  The past year was also an important as we had our first Scratch Conference. We also released a version of Scratch in many languages and forged some international collaborations in Portugal and the United Arab Emirates.

Of course, this growth comes with challenges. Being able to maintain the Scratch culture of friendliness and collaboration becomes harder as we have more participants. However, we are confident that with the help of you, our community and volunteers, we will be able to continue Scratching happily in the years to come.

We hope this blog will help us document some of the stories and developments of the Scratch community and the software. We are also using Twitter for short and more frequent updates.

Thanks a lot for a great 2008 and the best for this 2009.

Posted by Andrés Monroy-Hernández 9 comments

Labels: onlinecommunity