This repository has been archived by the owner on Apr 4, 2023. It is now read-only.
/
index.html
464 lines (438 loc) · 30.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
<!DOCTYPE html>
<html lang="en"> <!-- Set this to the main language of your site -->
<head>
<meta charset="utf-8">
<title>ScratchX</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/scratchx.css" rel="stylesheet" type="text/css">
</head>
<body>
<main>
<header>
<div>
<a href="#home"><h1 class="scratchx-logo"><span>ScratchX</span></h1></a>
<nav class="main-nav">
<ul>
<li><a href="#faq">FAQ</a></li>
<li><a href="#extensions">See all Extensions</a></li>
</ul>
</nav>
</div>
</header>
<article id="home">
<header>
<div>
<aside class="warning message"><strong>Warning:</strong> These extensions are experimental. <a href="#faq">Please read the FAQ before trying them.</a></aside>
<h1>About ScratchX</h1>
<p>
ScratchX allows you to try out experimental extensions to the Scratch programming environment. With extensions, you can connect Scratch to the physical world (such as electronic devices and robotics) and online resources (including web data and web services).
</p>
<section id="dialogs">
<dialog open class="extension-file">
<section>
<h2>Open an Extension Project</h2>
<p>Choose a .sbx file from your local drive</p>
<p><a href="#faq-sbx-file">What is a .sbx file?</a></p>
</section>
<section>
<button data-action="load-file">Browse for local file</button>
</section>
</dialog>
<dialog open class="extension-url">
<section>
<h2>Open an Extension URL</h2>
<p>Paste the web address below</p>
<p><a href="#faq-scratchx-url">What is a ScratchX URL?</a></p>
</section>
<section>
<form class="input-plus-button url-load-form">
<input type="text" placeholder="paste url..." />
<button type="submit">Open</button>
</form>
</section>
</dialog>
<dialog open class="extension-feature">
<section>
<h2>Featured Extensions</h2>
<p><a href="https://scratch.mit.edu/scratchr2/static/ext/download.html">Download hardware plugin</a></p>
</section>
<section>
<ul>
<li><a href="?url=http://sayamindu.github.io/scratch-extensions/text_to_speech_extension.js" data-action="load-url">
<h3>Text to Speech</h3>
<p>Use Scratch to read text out loud</p>
</a></li>
<li><a href="?url=http://technoboy10.github.io/mesh/mesh.js" data-action="load-url">
<h3>Mesh</h3>
<p>Communicate across projects</p>
</a></li>
<li><a href="?url=http://khanning.github.io/scratch-arduino-extension/arduino_extension.js" data-action="load-url">
<h3>Arduino</h3>
<p>Control your Arduino using Scratch</p>
</a></li>
</ul>
</section>
</dialog>
</section>
<aside class="info message">
<strong>Note:</strong> To use any physical extensions, you need to download the <a href="https://scratch.mit.edu/info/ext_download/">Hardware Plugin</a>.<br />
Official Scratch Extensions (such as LEGO WeDo) are available on the main <a href="https://scratch.mit.edu">Scratch site</a>.
</aside>
</div>
</header>
<section>
<div>
<h2>Developer Documentation</h2>
<p>Developers can create new Experimental Extensions using Javascript. To learn more, read the <a href="https://github.com/LLK/scratchx/wiki">Developer Documentation</a>.</p>
<p><a href="#scratch"><button>Open editor</button></a></p>
</div>
</section>
</article>
<article id="extensions">
<section>
<div class="intro">
<div>
<h1>Gallery of Experimental Extensions</h1>
<p>With Experimental Extensions, you can create Scratch projects that connect with external hardware and online resources. Try examples below to see the wide variety of things you can do with Experimental Extensions!</p>
<p>If you are a developer with an extension that you'd like to submit to our gallery, read more about the <a href="#faq-submission-process">submission process here</a>.</p>
</div>
</div>
</section>
<aside class="warning message"><strong>Warning:</strong> all extensions are experimental and not a product of the Scratch Team. <a href="#faq">Find out more</a></aside>
<section class="gallery">
<div>
<ul>
<li>
<a href="?url=http://khanning.github.io/scratch-arduino-extension/arduino_extension.js" data-action="load-url">
<header>
<h2>Arduino</h2>
<p class="author">Kreg Hanning, David Mellis</p>
</header>
<img src="/images/extensions/arduino_small.png" />
</a>
<section class="description">
<p>Control Arduino boards</p>
<a href="http://khanning.github.io/scratch-arduino-extension/examples/Arduino%20Example%20-%20Blink%20a%20LED.sbx">Sample Project</a>
<a href="http://khanning.github.io/scratch-arduino-extension/">Documentation</a>
</section>
<section class="tags">
<span class="tag hardware" title="Hardware Extension"></span>
</section>
</li>
<li>
<a href="?url=http://technoboy10.github.io/mesh/mesh.js" data-action="load-url">
<header>
<h2>Firebase Mesh</h2>
<p class="author">Connor Hudson</p>
</header>
<img src="/images/extensions/extension.png" />
</a>
<section class="description">
<p>Broadcast messages to other projects!</p>
<a href="#">Sample Project</a>
<a href="http://technoboy10.tk/mesh/">Documentation</a>
</section>
<section class="tags">
<span class="tag web" title="Web Extension"></span>
</section>
</li>
<li>
<a href="?url=http://intel-realsense-extension-for-scratch.github.io/public/extension/intel_realsense_extension.js" data-action="load-url">
<header>
<h2>Intel® RealSense™</h2>
<p class="author">Shachar Oz, Yaron Yanai, Avi Salmon</p>
</header>
<img src="/images/extensions/extension.png" />
</a>
<section class="description">
<p>Hand Gestures, face tracking, voice commands</p>
<a href="http://intel-realsense-extension-for-scratch.github.io/public/extension/samples/simplest-realsense-blocks.sbx">Sample Project</a>
<a href="http://intel-realsense-extension-for-scratch.github.io/public">Documentation</a>
</section>
<section class="tags">
<span class="tag hardware" title="Hardware Extension"></span>
</section>
</li>
<li>
<a href="?url=https://khanning.github.io/scratch-isstracker-extension/iss_extension.js" data-action="load-url">
<header>
<h2>ISS Tracker</h2>
<p class="author">Kreg Hanning</p>
</header>
<img src="/images/extensions/ISSTracker_small.png" />
</a>
<section class="description">
<p>International Space Station tracker</p>
<a href="http://khanning.github.io/scratch-isstracker-extension/examples/ISS%20Tracker.sbx">Sample Project</a>
<a href="http://khanning.github.io/scratch-isstracker-extension/">Documentation</a>
</section>
<section class="tags">
<span class="tag web" title="Web Extension"></span>
</section>
</li>
<li>
<a href="?url=http://khanning.github.io/scratch-leapmotion-extension/leapmotion_extension.js" data-action="load-url">
<header>
<h2>Leapmotion</h2>
<p class="author">Kreg Hanning</p>
</header>
<img src="/images/extensions/leapmotion_small.png" />
</a>
<section class="description">
<p>Hand and finger tracking</p>
<a href="http://khanning.github.io/scratch-leapmotion-extension/examples/Leap%20Motion%20Example%20-%20Hand%20Skeleton.sbx">Sample Project</a>
<a href="http://khanning.github.io/scratch-leapmotion-extension/">Documentation</a>
</section>
<section class="tags">
<span class="tag hardware" title="Hardware Extension"></span>
</section>
</li>
<li>
<a href="?url=http://khanning.github.io/scratch-littlebits-extension/littlebits_extension.js" data-action="load-url">
<header>
<h2>littleBits</h2>
<p class="author">Kreg Hanning</p>
</header>
<img src="/images/extensions/extension.png" />
</a>
<section class="description">
<p>Control littleBits creations</p>
<a href="http://khanning.github.io/scratch-littlebits-extension/examples/littleBits%20-%20Move%20with%20Dimmer.sbx">Sample Project</a>
<a href="http://khanning.github.io/scratch-littlebits-extension/">Documentation</a>
</section>
<section class="tags">
<span class="tag hardware" title="Hardware Extension"></span>
</section>
</li>
<li>
<a href="?url=http://sayamindu.github.io/scratch-extensions/text_to_speech_extension.js" data-action="load-url">
<header>
<h2>Text to Speech</h2>
<p class="author">Sayamindu Dasgupta</p>
</header>
<img src="/images/extensions/extension.png" />
</a>
<section class="description">
<p>Use Scratch to read text out loud</p>
<a href="#">Sample Project</a>
<a href="#">Documentation</a>
</section>
<section class="tags">
<span class="tag web" title="Web Extension"></span>
</section>
</li>
<li>
<a href="?url=https://technoboy10.github.io/twitter/extension.js" data-action="load-url">
<header>
<h2>Twitter</h2>
<p class="author">Connor Hudson and Kreg Hanning</p>
</header>
<img src="/images/extensions/extension.png" />
</a>
<section class="description">
<p>Use Twitter in your projects!</p>
<a href="?url=https://technoboy10.github.io/twitter/extension.js">Sample Project</a>
<a href="http://technoboy10.tk/twitter/">Documentation</a>
</section>
<section class="tags">
<span class="tag web" title="Web Extension"></span>
</section>
</li>
<li>
<a href="?url=https://MrYsLab.github.io/xi4s.js" data-action="load-url">
<header>
<h2>Xi - Multi uC Interconnect</h2>
<p class="author">Alan Yorinks</p>
</header>
<img src="/images/extensions/xi3_small.png" />
</a>
<section class="description">
<p>Control for Arduino, <acronym title="Raspberry Pi">RPi</acronym> and <acronym title="BeagleBone Black">BBB</acronym></p>
<a href="https://github.com/MrYsLab/xi/blob/master/clients/scratch/projects/blink.sbx">Sample Project</a>
<a href="https://github.com/MrYsLab/xi">Documentation</a>
</section>
<section class="tags">
<span class="tag hardware" title="Hardware Extension"></span>
</section>
</li>
</ul>
</div>
</section>
</article>
<article id="privacy-policy">
<section>
<div>
<aside class="warning message"><strong>Warning:</strong> These extensions are experimental. <a href="#faq">Please read the FAQ before trying them.</a></aside>
<div>
<section class="main">
<h1>Privacy Policy</h1>
<p id="privacy-introduction">ScratchX is a platform that enables people to test experimental functionality built by developers for the visual programming language <a href="http://scratch.mit.edu">Scratch</a>. The purpose of this website is to provide a playground for people to test experimental content. We wrote this privacy policy to explain what information we access and how we use it. If you have any questions regarding this policy, you can <a href="mailto:scratch-extensions@scratch.mit.edu">contact us</a>.</p>
<h2 id="privacy-external-services">External Services</h2>
<p><strong>GitHub Pages:</strong> Developers who link their content to ScratchX are required to host their experimental content on an external service called <a href="https://pages.github.com/">GitHub pages</a>, which is governed by GitHub's own <a href="https://help.github.com/articles/github-terms-of-service/">Terms of Service</a> and <a href="https://help.github.com/articles/github-privacy-policy/">Privacy Policy</a>. The ScratchX site itself is also hosted on GitHub pages, and is governed by their terms and policy (in addition to the ScratchX terms and policy).</p>
<p><strong>Google Analytics:</strong> Using an external service called Google Analytics, we collect some data about where you click and which parts of the site you visit. This "click data" helps us figure out ways to improve the website. Information collected and processed by Google Analytics includes the user's IP address, network location, and geographic location. Google Analytics acquires all of its information directly from the user, by installing a cookie (see below) on your computer, if you have enabled JavaScript. We do not share any information (other than aggregate statistics) that we collect with Google, and Google does not collect any personal identifying information about you. You can read Google Analytics' privacy policy <a href="https://support.google.com/analytics/answer/6004245?hl=en">here</a>.</p>
<p><strong>Cookies:</strong> Google Analytics (above) uses cookies in order to gather information about your use of the ScratchX website. A cookie is a small text file that Google Analytics can send to your browser for storage on your computer.</p>
<h2 id="privacy-use-your-information">How do we use your information?</h2>
<ul>
<li>Via Google Analytics, we gather browsing data so that we know how people use the website.</li>
<li>Other than as described above, we will never share personally identifiable information about you with any other person, company, or organization, except as required to comply with our obligations under the law.</li>
</ul>
<h2 id="privacy-notifications-of-changes">Notifications of Changes to the Privacy Policy</h2>
<p>We review our Privacy Policy on a periodic basis, and we may modify our policies as appropriate. We may also change or update our Privacy Policy if we add new services or features. If we make any changes to our privacy practices, we will amend this Privacy Policy accordingly and post the amended policy on the ScratchX website. We encourage you to review our Privacy Policy on a regular basis.</p>
</section>
<nav>
<h3>Contents</h3>
<ol>
<li><a href="#privacy-introduction">Introduction</a></li>
<li><a href="#privacy-external-services">External Services</a></li>
<li><a href="#privacy-use-your-information">How do we use your information?</a></li>
<li><a href="#privacy-notifications-of-changes">Notifications of Changes to the Privacy Policy</a></li>
</ol>
</nav>
</div>
</div>
</section>
</article>
<article id="faq">
<section>
<div>
<aside class="warning message"><strong>Warning:</strong> These extensions are experimental. <a href="#faq">Please read the FAQ before trying them.</a></aside>
<div>
<section class="main">
<h1><abbr title="Frequently Asked Questions">FAQ</abbr></h1>
<h2 id="faq-what-is-scratchx">What is ScratchX?</h2>
<p>ScratchX is a platform that enables people to test experimental functionality built by developers for the visual programming language Scratch.</p>
<h2 id="faq-scratch-vs-scratchx">What's the difference between Scratch and ScratchX?</h2>
<p><a href="https://scratch.mit.edu/">Scratch</a> is a programming language and online community where you can create your own interactive stories, games, and animations. ScratchX is a separate experimental platform built to test experimental Scratch features, also known as Experimental Extensions. There is no login or community component to ScratchX, and projects created within ScratchX can only be run on ScratchX.</p>
<h2 id="faq-scratch-extensions">What are Scratch Extensions?</h2>
<p>Scratch extensions make it possible for Scratch to interface with external hardware and information outside of the Scratch website through new blocks. Extensions are written in JavaScript for the ScratchX project editor.</p>
<h2 id="faq-experimental-official">What is the difference between Experimental and Official Extensions?</h2>
<p>Experimental Extensions are extensions created for Scratch by the community; they are not managed or endorsed by Scratch in any way. Experimental Extensions can run only in the ScratchX environment. Official Extensions can be found and run from within Scratch 2.0 (both <a href="https://scratch.mit.edu">online</a> and <a href="https://scratch.mit.edu/scratch2download/">offline</a> editors), accessible in the 'More Blocks' section of the blocks menu.</p>
<h2 id="faq-experimental-safe">Are Experimental Extensions safe?</h2>
<p>The Scratch Team has created ScratchX to enable people to create and test Experimental Extensions. However, the Scratch Team does not endorse, support or maintain specific Experimental Extensions. People using Experimental Extensions should be careful not to provide any personal details such as login passwords or personally-identifiable information if prompted by an Experimental Extension.</p>
<h2 id="faq-how-to-use-scratchx">How do I use ScratchX?</h2>
<p>There are three pathways into ScratchX. If you have been given or sent a .sbx file, you can load that into ScratchX via the homepage (look for 'Open an Extension Project'). If you have been sent a ScratchX URL (starts with 'scratchx.org/'), you can click your link and the extension will load automatically, or you can enter that URL into the box on the homepage (look for 'Open an Extension URL'). Lastly, if you don't have an example extension, you can try out one on the site by clicking on a Featured Experimental Extension on the homepage (look for 'Featured Extensions').</p>
<h2 id="faq-how-to-share">I made a cool project on ScratchX. How do I share it?</h2>
<p>Click the 'Save' button at the top of the page to download your project as an .sbx file on to your local computer. You can then send this file to other people, and they can upload your file onto ScratchX to play with your project.</p>
<h2 id="faq-examples">Where can I find example Experimental Extensions to play around with?</h2>
<p>We have linked to a few example extensions on the <a href="#home">ScratchX</a> homepage. We plan to highlight additional extensions in the coming months.</p>
<h2 id="faq-scratchx-url">What is a ScratchX URL?</h2>
<p>Developers who make extensions for ScratchX can choose to create a custom web address or URL that points to their extension and/or demo project. Clicking on a ScratchX extension URL will take you directly to a project with an extension loaded.</p>
<h2 id="faq-sbx-file">What is an .sbx file?</h2>
<p>The SBX (.sbx) ScratchX file format is the file format used to encode ScratchX projects when they are downloaded to a user's computer. SBX files can only be used on the ScratchX site. Other Scratch environments use different formats, including the .sb2 format for Scratch 2.0 (read more here) and .sb format for Scratch 1.4 (read more here).</p>
<h2 id="faq-open-sbx">Why can't I open .sbx files in Scratch 2.0 or the offline editor?</h2>
<p>Experimental Extensions are extensions created for Scratch by the community and are not managed or endorsed by Scratch in any way. Because of this, we do not allow Experimental Extensions to run on the larger Scratch site.</p>
</section>
<nav>
<h3>Contents</h3>
<ol>
<li><a href="#faq-what-is-scratchx">What is ScratchX?</a></li>
<li><a href="#faq-scratch-vs-scratchx">What's the difference between Scratch and ScratchX?</a></li>
<li><a href="#faq-scratch-extensions">What are Scratch Extensions?</a></li>
<li><a href="#faq-experimental-official">What is the difference between Experimental and Official Extensions?</a></li>
<li><a href="#faq-experimental-safe">Are Experimental Extensions safe?</a></li>
<li><a href="#faq-how-to-use-scratchx">How do I use ScratchX?</a></li>
<li><a href="#faq-how-to-share">I made a cool project on ScratchX. How do I share it?</a></li>
<li><a href="#faq-examples">Where can I find example Experimental Extensions to play around with?</a></li>
<li><a href="#faq-scratchx-url">What is a ScratchX URL?</a></li>
<li><a href="#faq-sbx-file">What is an .sbx file?</a></li>
<li><a href="#faq-open-sbx">Why can't I open .sbx files in Scratch 2.0 or the offline editor?</a></li>
</ol>
</nav>
</div>
</div>
</section>
</article>
<footer>
<div>
<section>
<p>Extensions on ScratchX are experimental and are not reviewed by the Scratch Team or the MIT Media Lab.</p>
<p><a href="https://scratch.mit.edu/">Scratch</a> is a project of the Lifelong Kindergarten Group at the MIT Media Lab.</p>
<p>
<a class="twitter" title="Follow us on Twitter" href="https://twitter.com/scratch/" target="_blank"><span>@scratch on Twitter</span></a>
<a class="github" title="Fork us on GitHub" href="https://github.com/LLK/scratchx/" target="_blank"><span>LLK on GitHub</span></a>
</p>
</section>
<nav>
<h2>ScratchX</h2>
<ul>
<li><a href="https://scratch.mit.edu/terms_of_use/">Terms of Service</a></li>
<li><a href="#privacy-policy">Privacy Policy</a></li>
<li><a href="mailto:scratch-extensions@scratch.mit.edu">Contact Us</a></li>
<li><a href="#faq">FAQ</a></li>
<li><a href="https://scratch.mit.edu/discuss/48/">Forums</a></li>
</ul>
</nav>
<nav>
<h2>Scratch Family</h2>
<ul>
<li><a href="https://scratch.mit.edu/">Scratch</a></li>
<li><a href="http://scratched.gse.harvard.edu/">ScratchEd</a></li>
<li><a href="http://www.scratchjr.org/">ScratchJr</a></li>
<li><a href="https://scratch.mit.edu/conference/">Scratch Conference</a></li>
<li><a href="http://day.scratch.mit.edu/">Scratch Day</a></li>
<li><a href="http://codetolearn.org/">Scratch Foundation</a></li>
</ul>
</nav>
</div>
</footer>
</main>
<section id="scratch">
<div class="scratch_unsupported">
<p>
Oh Noes! Scratch project cannot display.<br/>
Flash player is disabled, missing, or less than version 10.2.
</p>
<a href="http://www.adobe.com/go/getflashplayer" target="_blank"><img
src="//www.adobe.com/images/shared/download_buttons/get_flash_player.gif"
alt="Get Adobe Flash player"/></a>
</div>
<div class="scratch_loading"></div>
</section>
<script type="text/template" id="template-warning">
<div>
<header><a class="modal-close" href="#"></a></header>
<section class="warning">
<h2>Warning: all extensions are experimental</h2>
<p><strong>Warning:</strong> The extensions on this site are experimental</p>
<p>The Scratch Team is <strong>not</strong> responsible for the extensions and projects on this site. Please use caution when using these extensions. <a href="#faq">Learn More.</a></p>
</section>
<section>
<button data-action="show" data-target="home">Back to ScratchX home</button>
<button class="success">I understand, continue</button>
</section>
</div>
</script>
<script type="text/template" id="template-short-url">
<dialog class="single">
<section>
<h2>Short URL</h2>
</section>
<section>
<p>Click to copy the short url for this project</p>
<div class="input-plus-button">
<input type="text" value="<%- shortUrl %>" name="shortUrl" disabled />
<button data-clipboard-text="<%- shortUrl %>">Copy</button>
</div>
</section>
</dialog>
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-30688952-3', 'auto');
ga('send', 'pageview', 'home');
</script>
<script type="text/javascript" src="libs/base64ab.js" async></script>
<script type="text/javascript" src="libs/swfobject.js"></script>
<script type="text/javascript" src="libs/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="libs/underscore-min.js" async></script>
<script type="text/javascript" src="libs/ZeroClipboard.min.js" async></script>
<script type="text/javascript" src="js/scratchx.js" defer></script>
<script type="text/javascript" src="scratch_extensions/scratch_proxies.js" defer></script>
<script type="text/javascript" src="scratch_extensions/scratch_plugin.js" defer></script>
<script type="text/javascript" src="scratch_extensions/scratch_nmh.js" defer></script>
<script type="text/javascript" src="scratch_extensions/scratch_ext.js" defer></script>
</body>
</html>