Snap! (Build Your Own Blocks) 4.0

                       
    Snap! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students.

SNAP! runs in your browser. It is implemented using Javascript, which is designed to limit the ability of browser-based software to affect your computer, so it's safe to run even other people's projects, even if you don't trust our competence or good intentions.

SNAP! is presented by the University of California at Berkeley. It was developed by Jens Mönig at MioSoft Corporation, with design input and documentation by Brian Harvey at Berkeley, and contributions by students at Berkeley and elsewhere.

This material is based partly upon work supported by the National Science Foundation under Grant No. 1138596. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Run Snap!
now!
Download SVG AlonzoRun Snap
with tools

Snap! 4.0 is currently in beta test. Try out the language at http://snap.berkeley.edu/run (the button above).

Read the Reference Manual for more details about the language.

Report a bug at GitHub.

Download BYOB 3.1, the previous version of this language.

Device control extensions (must be downloaded to your computer):

Privacy Notice
For research purposes, this site uses Google Analytics to collect aggregate information about, e.g., how often the site is used and what links are followed from it. We do not collect personally identifiable information, but if you have a Gmail account or have ever Googled yourself from your own computer, then, despite their assurances to the contrary, Google does collect such information. We recommend that you use AdBlock Plus, Ghostery, NoScript, and/or Privoxy to protect your browsing privacy. The first two are really easy to install and use; the last two take a bit more effort to whitelist sites you trust. (You might also consider the tracking-free DuckDuckGo search engine.)

See our complete privacy policy here.

   Teachers, check out the Beauty and Joy of Computing, an AP CS: Principles course using SNAP!.

Sample Snap! projects

Converted from Scratch projects

Star Wars Game

Funny Face

Paint With Splotches

Kanon

Flashlight

Constraint

Converted from BYOB3 projects

Vee

Double Jurassic Park

Math Trainer

Tree

Animal Game

Count Change

New!

Live Tree by Bill Manaris

Thread demo using call⁄cc

Fractal fruit tree by Josh Paley