I have created a little patch that plugs into an existing Scratch installation offering some additional features I have been experimenting with recently:
- export / import scripts as XML
- change blocks through the context menu (also reassign variables)
- scroll the IDE-window in low-res situations (e.g. on 800x600 screens)
- enlarge the script editor
- Windows installer to directly launch projects in presentation mode
- Use Scratch projects as Windows screensavers
Due to the Scratch Source Code License I had to come up with my own silly name and my own silly icon for it, so I've decided to name it Chirp. (The name "Chirp" alludes to a turntablist's scratching technique, it also indicates a food-chain: Chirp maybe consumed by Scratch ).
I am deploying Chirp in two versions:
Windows: An executable installer
Others: A files-only archive
Both versions can be downloaded from the new Chirp website:
The Chirp installer requires Scratch to be installed, but will not alter or harm the existing Scratch installation in any way. After running the installer you can use Scratch the same way as before (e.g. for uploading projects), but you can also:
- start Chirp using the start-menu or a desktop shortcut
- right click on any Scratch project to edit it in Chirp or to
- launch it directly in presentation mode
Projects created or edited with Chirp should be fully compatible with
Scratch v. 1.2.1 and with the Scratch website.
The Windows version lets you uninstall Chirp as well (Scratch will not be affected).
The source code is included (a Smalltalk changeset and a NSIS script).
I like to imagine Chirp evolving into an "Community Edition" open to all kinds of experimental features, for which there is no place (or no time) in the official Scratch releases. So everybody is welcome to submit changesets!
Last edited by Jens (2008-03-11 06:26:40)
Very nice! This should make it easy enough even for me.
Now, we just need to come up with a good set of buzzwords to make Chirp an acronym:
I seem to have found a small bug straight away
I opened a scratch project and went to export a script to xml.
I selected My Documents and then my sub folder called Scratch.
Nothing appeared in the folder - after trying several times I searched my computer for xml files and found it in C:\Program Files\Scratch
Heh - despite claims to the contrary, Jens once again proves that if anyone is a "pro-scratcher", it is him.
Simon, thanks for pointing this out! I forgot to mention that exporting a script will currently always store it to the Scratch directory (regardless which other folder you select in the file dialog). Importing works from any directory.
I've just fixed a couple of bugs (never trust a first release ):
- XML export now works with any directory you choose in the file dialog
- reassigning a variable in an unsaved imported XML script no longer raises an error
- the desktop shortcut created by the Windows installer now actually works
You can just download from the links in the first post again and run the Windows installer (no need to uninstall first), or replace the files-only version.
Yes, relyt12101, I've deployed this as a "real" Windows application, so you don't have to bother with Squeak. It needs Scratch to be installed and plugs into the Scratch installation, i.e. it shares Scratch's VM, the Scratchplugin.dll, its .ini and translation files. It does not change the way Scratch works, however, but sets up an additional application which is "based on Scratch" (it's essentially Scratch with some minimal additions). I've altered the logo and the script editor's texture in Chirp so you know whenever you are not using the official Scratch release.
Chirp is excellent. These are great additions to Scratch. I did notice that Chirp runs projects very slowly in "edit" mode, at least with a large project. (I used it for some edits to "GravArena", which has lots of variables, sprites and scripts.) It works fine in presentation mode.
I hope that after some beta testing, the MIT folks will incorporate the new functionality. Then Scratch will be Chirp and you can get started on Chrip 2.0 ! Thanx much for your efforts.
Last edited by EdnaC (2008-03-01 09:38:15)
That is soo cool Jens!
I have hosting space at scratchr.org. Would you be interested in having chirp.scratchr.org? I can give you full control over your subdomain with SSH and FTP access.
Nice work! This is exactly how I hoped people would use the Scratch source code--it adds some interesting experimental features without detracting from or being incompatible the with the official version of Scratch. You used a different name (I love "Chirp"!) and logo to make it clear that this is a different program. Thanks for following both the letter and the spirit of the license.
You've long been a contributor to Scratch through posting to the Forums and by being a Forum moderator. Now you have found another way to contribute. Your efforts are greatly appreciated.
Wow, thanks everyone!
Andrés, I'll gladly accept your webspace offer as mine is indeed extremely limited. I'll have to read up on html for this, though....
John, I'm very glad you take no issue with my post. You know, I sometimes do feel a little bit like I'm "violating" Scratch and your original work with my amateurish Squeak hacks, whereas I'm really just expressing my enthusiasm about (your *real*) Scratch with this.
EdnaC, thanks for testing Chirp! I hope the Scratch Team does *not* incorporate all of Chirp's experiments into Scratch, because some of them might be very confusing for beginners (like the additional scroll bars), and others are very unprofessionally coded and far from complete (especially the XML interface - as far as variable handling and sprite references are concerned).
ScipioBellorum: Thank you so much for setting up a provisional webspace, nicely done, too!
Rukqu, I've never worked with Mac, so I don't really know how you can start Chirp on one, but my guess would be to download the files-only version, uncompress it into the Scratch directory, and then to drop the file named "Chirp.remix" onto the file named "Scratch.app". I have decided to name the chirp image "remix" instead so Scratch doesn't get mixed up and asks to specify an image file when you start it directly.
Update: a larger scripting pane
You can now make the scripting editor part of the IDE larger by just dragging the part of the IDE-window to its right horizontally. This should help if your screen is small (like only 1024 pixels wide).
I just updated the links and files in the first post. As usual you can install the brand new Chirp version over previous ones to enjoy the new resizing feature!
Yay!! A bigger scripting pane! If you could resize the sprites area as well, that would be amazing! I notice you metioned that you don't know html. If you want you can just download (On IE7 - Page, Save As, Type 'Webpage Complete') my page and use that as a basis for your new site. I think chirp is a great way of making those little changes that make life easier when using Scratch without burdening the Scratch Team with extra stuff.
Bug fix: executing "clean up" in the script editor no longer raises an error.
Added: Skin texture to indicate resizability of the scripting pane.
I have once again updated the files and links in the first post. This little bug fix should make the current version pretty stable. I'm planning to leave Chirp this way until I will have cleaned up and commented the source code and come up with a basic website on another server....
ScipioBellorum: Thank you very much for the offer to reuse your nice webpage. I will try to download , understand and edit it!
Last edited by Jens (2008-03-04 09:18:37)
I am embedding a scratch project into a rails web app. I want my website to reward the user when they finish playing the game.
My first thought was getting scratch to use hyperlinks, but I totally understand and agree that wouldn't be kid-safe.
Or, Jens, would it be possible for you to include hyperlinking in chirp? (Maybe in such a way that the scratchr server would just ignore it, but if it was hosted independently it would work? Is that even possible?
Last edited by the_hack (2008-03-04 07:42:04)
I absolutely agree with you, that hyperlinks would be an enormous benefit. Just image if you could create you own interactive webpages with Scratch! However currently Scratch projects simply don't interact with the outside world, except with the computer screen and speakers.
The Scratch Java-player behaves like a "black box" and doesn't share any state. Also, the source code for the Java-player has not been published, and I'm not even sure if MIT intends to release it at all. Therefore getting your rails website to react to, say, the score or an event of a java-embedded Scratch project doesn't seem feasible at this time.
The Scratch IDE itself is coded in Squeak and therefore completely malleable to whichever you want it to be, constrained only by the (very liberal) terms of the Scratch Source Code license. If you already know about Squeak you might also know, that the Squeak VM itself is able to run as a plugin in a browser. I haven't experimented with this feature myself yet, but it should actually be fairly easy to create your very own Scratch-browser-plugin based on the Scratch Source Code this way (the chief drawback probably being the size of the image file). I'm not sure about this, but there probably will also be a way to query some state of such a plugin.
Anyway, it's probably not worth all the effort and research, since the Scratch Team is already developing NetScratch, which will allow shared variables among several Scratch projects:
It would probably be possible to add hyperlinks (to other projects) to Chirp, but I wouldn't want to break compatibility in favor for such a feature.
But if you come up with something else that will not break compatibility, I'll be glad to include it in Chirp and give credit to you!