Slide 1

Slide 1 text

NETSBLOX: BRINGING THE FULL POWER OF THE INTERNET TO SNAP! Brian Broll and Akos Ledeczi Vanderbilt University

Slide 2

Slide 2 text

WHAT DO THESE HAVE IN COMMON?

Slide 3

Slide 3 text

DO BLOCK-BASED ENVIRONMENTS HAVE HIGH CEILINGS? YES, BUT NOTICE THE WALLS…

Slide 4

Slide 4 text

LET’S TEAR DOWN THE WALLS

Slide 5

Slide 5 text

CRACKS IN THE WALL • http get to access web resources • Access to hardware devices • Cloud variables • Machine learning libraries • Collaboration support • etc There is no uniform support to accessing resources on the internet and communication across projects…

Slide 6

Slide 6 text

WIDENING THE WALLS: LIBRARIES AND EXTENSIONS

Slide 7

Slide 7 text

THREE NEW BLOCKS

Slide 8

Slide 8 text

TWO NEW (OLD) ABSTRACTIONS • Remote Procedure Call (RPC) • Similar to custom blocks, but the code runs on the server • Self-documenting • Similar RPCs are grouped into Services • Much more than simply forwarding to web APIs • Message Passing • Similar to events • They can carry data • They can go to other projects running anywhere on the internet • They are typed: name and list of named fields • Flexible addressing

Slide 9

Slide 9 text

RPC DEMOS Earthquake Visualization Cast of Any Movie COVID-19 Data

Slide 10

Slide 10 text

MAKE YOUR OWN SERVICE • The "ServiceCreation" service provides RPCs for creating your own NetsBlox service from a CSV or JSON file! • RPCs are inferred from the data automatically but can also be explicitly defined using anonymous functions • This enables the creation of local, relevant data services on NetsBlox! • A tutorial can be found at https://editor.netsblox.org/?action =present&Username=brian&ProjectN ame=ServiceCreationTutorial (check out all the sprites!)

Slide 11

Slide 11 text

MESSAGE PASSING DEMOS 2-User Shared Whiteboard

Slide 12

Slide 12 text

NETSBLOX ARCHITECTURE

Slide 13

Slide 13 text

YOUR PHONE AS A SENSOR • PhoneIoT, an iOS and Android app, provides access to all phone sensors for NetsBlox • Get value (RPC) or turn on streaming (messages) • NetsBlox programs can also place GUI widgets on the phone • GUI events are NetsBlox messages • Can be used to teach IoT and distributed computation • Not a mobile app development environment! • Check out this video: https://tinyurl.com/phoneiot Exercise Tracker (phone display) Plot 3-axis acceleration (stage) Devin Jean

Slide 14

Slide 14 text

ROBOTICS WITH A TWIST • RPCs and messages can be used to control WiFi-enabled robots • Code runs in the browser (no wires, no downloads) • Supports remote robotics out of the box • Wireless communication can be intercepted by other students motivating cybersecurity • Has been used to teach robotics and cybersecurity • Encryption, secure key exchange, denial of service attacks, replay attacks, etc. • Multiple summer camps https://stemforall2019.videohall.com/presentations/1343

Slide 15

Slide 15 text

VIRTUAL ROBOTICS • To enable remote learning, we have created a Unity-based 3D virtual robotics environment. • Same interface, same code as physical robots. • No hardware cost, no maintenance. • Students can remotely access shared space to collaborate or compete solving challenge problems • Can support a wide range of robots and environments. • Extends beyond robotics. • Accessible via VR headsets. • 3 Summer Camps in June 2021 • Final project: drive your robot with your phone https://tinyurl.com/bhkz2ed9 Clear the table Traffic light control Gordon Stein

Slide 16

Slide 16 text

ROBOT CONTROL WITH PHONE PhoneIoT on Mobile Device NetsBlox Client on Computer/Browser RoboScape Online Unity VR Environment in the Cloud NetsBlox Server

Slide 17

Slide 17 text

ALEXA SKILL CREATION • Voice assistants are ubiquitous and can now be created entirely within NetsBlox! • Users can define custom intents leveraging the many NetsBlox services such as robotics, message passing, and cloud variables!

Slide 18

Slide 18 text

AUTOGRADERS • Autograders can be defined entirely in NetsBlox for NetsBlox and shared with students as a single URL • This facilitates the use of NetsBlox for structured activities such as in independent study, MOOCs, and for bell ringers • Creating autograders in NetsBlox makes it easy to share, reuse, and remix autograded activities • A curated set of exercises makes it simple to compose your own autograded activities! https://tinyurl.com/netsblox-exercises

Slide 19

Slide 19 text

CONCLUSIONS • Opening the internet creates a rich set of possibilities: • Access to online data and services • Distributed programs: social apps, multi player games, etc. • Support for a wide variety of devices including robots, phones and voice assistants • Real-time collaboration, remote learning • User extendibility • Students can create projects that interests them and are relevant to their lives → Engagement • A small set of powerful abstractions supported by a handful of simple blocks keeps the learning curve gentle: • Adding support for phones or robots requried no changes on the client and no new blocks! Supported by

Slide 20

Slide 20 text

CONTRIBUTORS • Graduate students: • Gordon Stein, Devin Jean, Hamid Zare, Ben Yett • Vanderbilt Faculty and Research Staff: • Peter Volgyesi, Miklos Maroti, Janos Sallai, Corey Brady, Cliff Anderson, Ole Molvig, Chris Vanags, Gautam Biswas • Collaborators: • Shuchi Grover, Tiffany Barnes, Veronica Catete, Marnie Hill, Dan Garcia, Jens Monig • Countless undergraduate students, summer interns, high school teachers and students Supported by