- New Features:
- the "tools" library has been integrated as primitives
- export 1- /2- dimensional lists with atomic data as CSV
- export n-dimensional lists with atomic data as JSON
- import CSV, Text, or JSON via drag & drop
- option to import CSV etc. as "raw data", i.e. unparsed
- parse JSON using the SPLIT reporter
- new "aspect AT location" reporter in Sensing category for sniffing colors and sprites
- new blocks for setting and changing the stage's background color
- new "microphone" reporter in Sensing for getting volume, note, pitch signals and frequencies
- new experimental live audio-scripting support
- new video capturing and video-motion detection support, thanks, Josep!
- new "object" reporter in the Sensing category for getting a sprite by its name
- blocks for changing and querying the "flat line ends" setting
- selectors for changing and querying "draggable" and "rotation style" settings
- new sound + music "volume" feature + blocks
- new sound + music stereo "panning" feature + blocks
- new sound attribute getter reporter
- new "play sound at sample rate" command
- accept lists and lists of lists as inputs to all sound primitives
- new "play frequency" commands in the Sounds category
- pixel access primitives for bitmap and vector (!) graphics
- new "stretch" primitive for costumes, also for flipping
- new "get graphic effect" reporter
- new "get pen attribute" reporter
- new "pen down?" predicate
- new "shown?" predicate
- new "write" command in pen category (used to be "label" in tools)
- new "numbers", "is empty", "map","keep", "find", "combine" and "for each" primitives in list category
- 2 optional formal inputs for rings in MAP, KEEP, FIND, COMBINE: index and source list
- new JIT-compiler "blitz-HOF" primitives for "map", "keep", "find" & "combine" via "compile"
- new "for" loop and "if then else" reporter primitives in the Control category
- added "neg", "lg" (log2) and "2^" selectors to monadic function reporter in Operators
- added "^" reporter (power of) in the Operators category
- added "width" and "height" to the MY blocks dropdown
- added "width" and "height" as attribute selectors of the OF primitive
- added "costume" selector to the MY attributes dropdown
- added plus (+) and minus (-) keys to sensing and key hat
- special context-aware drop-downs for custom blocks
- new "stick to" submenu in the sprite context menu where applicable
- multi-line and monospaced "code" input slots for custom blocks
- new "string" library, thanks, Brian
- new "text costumes" library for generating costumes from letters or words of text
- new "World Map" extension and library for interactive maps
- graphic effects and sound attributes can now be animated with easing functions
- enhanced support for embedding Snap in other website, thanks, Bernat!
- export sounds
- Notable Changes:
- added third hsv dimension to pen colors, changed SET and CHANGE pen blocks
- added transparency (alpha) to pen colors
- new drop-down options for sprite-layer control ("GO TO front/back")
- "loop arrow" symbol for primitive loops, also available for custom blocks
- optimized in-project storage of atomic-data lists (more efficient, less space)
- remove all clones when the Green Flag is clicked
- adjust bottom of STOP block to reflect the menu selection (show / hide bottom notch)
- enable dropping commands into all rings
- colors in the vector editor are now named "Edge color" and "Fill color", thanks, Brian!
- renamed "whitespace" option in SPLIT to "word"
- made the "name" attribute programmatically settable
- made the "temporary?" attribute readable
- deprecated storing projects in the browser's localStorage
- deprecated some (useless) graphic effects
- additional "publish / unpublish" buttons in the project dialog
- buttons for saving & loading projects to disk in the project dialog
- more language options for the Text2Speech library, thanks Joan!
- Notable Fixes:
- predicates inside generic WHEN hat blocks can now pass upvars
- eliminated "clicks" when playing music notes
- "relabel" blocks with translated drop-down choices
- transforming arrayed to linked lists without losing the last element
- using "inherit" no longer un-hides the palette in presentation mode
- relabelling custom blocks with empty numerical input slots no longer fills in zeroes
- the language menu now has a "globe" icon (so it can be found in any language)
- accept a number as input for a sound - interpret as index
- fixed many costume sizes, thanks, Brian!
- Translation Updates:
- Chinese, thanks, Simon!
- Turkish, thanks, Turgut!
- Indonesian, thanks, Emanuella!
- Greek, thanks, Alexandros!
- Catalan, thanks, Joan!
- Portuguese, thanks, Manuel!
- Spanish
- German
- French