Snap!6 is here, and it's all about scale

Snap!6 is here, and it's all about scale.

https://snap.berkeley.edu

Thousands of miles apart, yet online together, our team of UC Berkeley researchers, SAP engineers and educators from multiple countries and continents just had a party releasing the biggest update to Snap! for years.

Over the past months we've rewritten Snap's Morphic kernel to optimize graphics rendering while demanding significantly less memory. And we've even thrown away hundreds of line of code. We've seen large Snap projects load up to 7x faster and the memory footprint of a particularly big application go down from 2 GB to a mere 80 MB. By saving hardware resources for hundreds of thousands on users we've been able to improve Snap's ecological impact.

We've also doubled the execution speed of Snap's WARP mode, and in combination with the other optimizations seen performance gains of up to 5x. Chrome whiteouts should be a thing of the past, and Snap! now performs smoothly in mobile browsers on phones and iPads.

Bigger projects, faster performance, more devices, less resources, anything else?

Betcha: Hyperblocks!

We've made Snap's math and list blocks more expressive. Operators can now be used on scalars, vectors, matrices and multi-dimensional data alike. Instead of having to resort to loops to iterate over aggregate data, or higher-order-functions to enumerate them, hyper-operators enable an alternative, much more direct, algebraic way of thinking about and interacting with data. Sound familiar? Sure, it's the big idea behind APL minus the hieroglyphs.

script variables bitmap

Hyperblocks aren't just super expressive, they're also really fast. Over the past two years we've been rethinking introductory computing from a data perspective. Which data is ubiquitously available, fun and engaging? We believe there's computational beauty and joy to be discovered in all the media that's on your phone and in your cloud: Movies, video clips, sound tracks, songs, pics, snaps, stories, poems, streams and whatnot. All of this is just digital data, yours to p0wn with math! Watch out for our new online course "From Media Computation to Data Science" coming up this fall!

https://www.youtube.com/watch?v=p4JavDEA-q4.

Many people from all over the world have worked with us and contributed to this release. A big "Thank You" to all the educators, artists, translators, beta testers, bug reporters, code pushers, hair splitters, designers, critics, enthusiasts, parents, nerds, students, musicians, archeologists, librarians and menschen involved!

https://snap.berkeley.edu

release notes: https://github.com/jmoenig/Snap/releases/tag/v6.0.0

Yay! :partying_face:

Woohoo!! :balloon: :confetti_ball: :tada: :

yoy! :grin:

I'm so happy with that !
A thousand thanks for this fantastic new version of Snap!.

Yay! :partying_face:

My first steps in pictures with the APL library

Great! :clap: :clap: :clap:

I downloaded it and it runs much faster than version 5!

:+1:

how to make a hyperblock?

Hyperblocks are already built into some of the primitives. Try putting a list of numbers in a +, -, *, /, or ^ block. You can turn the hyperblock feature off in the settings menu.

If you are making a custom block that computes a scalar function, then:
(1) if your code does not have conditionals (IF, REPEAT WHILE, etc.) then there is a good chance it will just automatically have hyperblock behavior.
(2) if not, find the untitled script pic block in the APL library, and use it this way:


This is the MIN function that finds the smaller of its two inputs. The part that does the real work is inside the gray ring. The rest of it, the call to scalar->hyper and the call to CALL, will be the same in your block. It's just what's inside the ring that should be different.

thanks

:grin:80MB?

Great work. :+1:

Geez the mother of all typos, thanks, Ken :smiley:

I was able to run a 250MB Scratch 1.4 project (imported thanks to the now incredibly smooth processing of Snapinator -thanks a lot @djdolphin!!!) in Snap. When exported to XML it is about 500MB. It loads in 20s and the memory footprint is about 1.5GB.

BTW, you can open the Scratch 1.4 project in Scratch 3, but you can't save it back to your PC. So...

One question: are the projects stored in our clouds automatically converted?

:grinning:

Hi Frido, do you mean Snap! projects? Sure! Well, actually, ever since Snap!4 beta we never fundamentally changed our file format, we just kept adding to the XML. Therefore we don't need to convert projects, we just load them. Every new Snap! version is still compatible with every older project file version. But not the other way round. If you open a newer project in an older Snap! version you'll loose information and it might not even end up working. But you wouldn't want to do that anyway, I guess.