a visual programming language inspired by Scratch
JavaScript TeX Other
Latest commit 0e5aac1 Feb 13, 2017 @stevenbird stevenbird committed on GitHub Merge pull request #432 from cyderize/Issue370
Return value for `ThreadManager.prototype.startProcess`
Permalink
Failed to load latest commit information.
Backgrounds Add data lists for media! Oct 7, 2015
Costumes Add data lists for media! Oct 7, 2015
Examples Fixed typo in project notes Mar 17, 2016
Sounds Add data lists for media! Oct 7, 2015
edgy Return value for `ThreadManager.prototype.startProcess` Feb 9, 2017
help source Add block help Mar 2, 2016
help Update to Snap 4.0.9.2 Dec 2, 2016
libraries Add BookOwl's geolocation block to httpBlocks library Aug 17, 2016
.gitattributes Hide jsnetworkx.js contents from diffs Feb 18, 2014
.gitignore update for v4.0.9 Oct 31, 2016
Blob.js Refactor HTML export Feb 26, 2014
FileSaver.js Refactor HTML export Feb 26, 2014
FileSaver.min.js Save the FileSaver library Oct 27, 2015
LICENSE.md misc updates to license and readme May 10, 2015
README.md Add maintenance instructions Dec 16, 2016
Snap! Connectivity Strategy.pdf added Snap! Connectivity Strategy to repo Jul 23, 2014
agpl.txt Creation Mar 16, 2013
bheap.js Fix priority queue predicate Jul 18, 2015
blocks.js Refactor Snap! edits into changesets Dec 15, 2016
byob.js Refactor Snap! edits into changesets Dec 15, 2016
click.wav Creation Mar 16, 2013
cloud.js Update to latest Snap! Jan 10, 2016
cola.v3.min.js Update JSNetworkX to v0.3.4 Dec 31, 2015
contributing to BYOB4.txt Fixed a number of whitespace inconsistencies Apr 9, 2013
d3.v3.min.js Update JSNetworkX to v0.3.4 Dec 31, 2015
dotgraph.js Add DOT parser Feb 24, 2014
dotparser.js Fix exception handling for loading graphs from strings Mar 9, 2014
edgy.html Refactor Snap! edits into changesets Dec 15, 2016
edgy_logo.png Update to latest Snap! Jan 10, 2016
embed.html Add support for export of interactive graphs Feb 23, 2016
es6-shim.js Update to new es6-shim.js May 28, 2015
favicon.ico make the new favicon transparent Nov 27, 2014
gui.js Refactor Snap! edits into changesets Dec 15, 2016
history.txt fixed #1522 Dec 1, 2016
index.html Typo in index.html Jun 17, 2016
jsnetworkx.js Update JSNetworkX to v0.3.4 Dec 31, 2015
jsonp.js Add last.fm binding Dec 3, 2013
jszip.js Add export to ZIP Feb 26, 2014
k5_logo.png Add K5 favicon Dec 9, 2013
lang-ar.js Update to Snap 4.0.9.2 Dec 2, 2016
lang-bg.js Update to latest Snap! Jan 10, 2016
lang-bn.js Bangla (Bengali) translation, thanks, Mokter Hossain!! Jul 17, 2014
lang-ca.js Updating catalan translation Jul 7, 2016
lang-cs.js Update to latest Snap! Jan 10, 2016
lang-de.js Block editing improvements - in development Nov 22, 2016
lang-dk.js New Danish translation Sep 16, 2013
lang-el.js New Greek translation Sep 16, 2013
lang-eo.js Fixed #59 Apr 19, 2013
lang-es.js Merge pull request #61 from queryselector/issue-59 Apr 23, 2013
lang-et.js Add Estonian translation May 3, 2016
lang-fi.js Finnish translation Apr 18, 2014
lang-fr.js updated versions for pending release v4.0.9 Oct 28, 2016
lang-gl.js GL translation, submitted by @tecnoloxia Nov 9, 2016
lang-hr.js Update to latest Snap! Jan 10, 2016
lang-hu.js Hungarian translation, contributed by Makány György Jul 26, 2015
lang-ia.js Interlingua support, contributed by Ken Dickey! Aug 9, 2015
lang-id.js update translations May 2, 2016
lang-it.js update for v4.0.9 Oct 31, 2016
lang-ja.js Merge pull request #61 from queryselector/issue-59 Apr 23, 2013
lang-ja_HIRA.js Merge pull request #61 from queryselector/issue-59 Apr 23, 2013
lang-kn.js Update to latest Snap! Jan 10, 2016
lang-ko.js Update to latest Snap! Jan 10, 2016
lang-ml.js Update to latest Snap! Jan 10, 2016
lang-nl.js updated history Dec 15, 2015
lang-no.js Norwegian translation update - encoding fixes Sep 16, 2013
lang-pl.js Improve Polish translations of the "stop..." blocks Sep 19, 2015
lang-pt.js Update the Portuguese (Portugal) translation. Oct 30, 2016
lang-pt_BR.js Brazilian Portuguese translation Apr 30, 2014
lang-ro.js Create lang-ro.js Nov 3, 2015
lang-ru.js Перевод слова Фоны Jun 21, 2016
lang-si.js updates Slovenian translation Apr 21, 2016
lang-sv.js Updated last updated date Jun 10, 2016
lang-ta.js Malayam, Tamil and Telagu translations, thanks, Vinay Kumar!! Feb 20, 2015
lang-te.js Malayam, Tamil and Telagu translations, thanks, Vinay Kumar!! Feb 20, 2015
lang-tr.js keep order of inputs in Turkish translation Jul 27, 2015
lang-tw.js Traditional Chinese translation Aug 14, 2013
lang-zh.js Update to Snap 4.0.9.2 Dec 2, 2016
lists.js finalizing v4.0.8 Jul 14, 2016
locale.js Block editing improvements - in development Nov 22, 2016
morphic.js updated version and history Dec 1, 2016
morphic.txt Morphic: First Class Animations Nov 25, 2016
objects.js Refactor Snap! edits into changesets Dec 15, 2016
optimizations.txt Update to Snap 4.0.9.2 Dec 2, 2016
osmextractintersections.py Add OpenStreetMap extracts Jan 25, 2014
paint.js finalizing v4.0.8 Jul 14, 2016
readme.txt Fixed a number of whitespace inconsistencies Apr 9, 2013
sha512.js Fixed a number of whitespace inconsistencies Apr 9, 2013
snap_logo_sm.png "Flat" GUI design preference May 16, 2013
store.js Refactor Snap! edits into changesets Dec 15, 2016
tables.js first-class sprites May 2, 2016
threads.js Refactor Snap! edits into changesets Dec 15, 2016
tictactoetree.py Add Tic-Tac-Toe example Jul 29, 2014
tools.xml JOIN WORDS treats empty input as empty sentence Oct 13, 2016
tools.xml.js Autoload tools on startup Nov 19, 2013
translating Snap.txt Fixed a number of whitespace inconsistencies Apr 9, 2013
ucsv-1.1.0.js Add support for semicolon delimited CSVs Jun 24, 2016
uuid.js Add missing uuid.js Sep 16, 2014
widgets.js fixed 3D corners for buttons in Firefox for Windows Jul 19, 2016
wordnet_nouns.json Make WordNet data a digraph Dec 9, 2013
xml.js Update to latest Snap! Jan 10, 2016
ypr.js Fix: Removed added textarea from YPR module Apr 3, 2013

README.md

Edgy

Try the app!

Edgy is a block-based programming language and an algorithm design environment that runs in a web browser. It provides a hands on interface to manipulate graphs via algorithms.

Dependencies

Edgy is powered by both Snap! (from UC Berkeley) which allows you to snap blocks together to build programs, and JSNetworkX to both visualise and provide functionality to work with graphs.

Currently Edgy has two force-directed layout algorithms. By default Edgy uses the WebCoLa algorithm to arrange graphs, but you can switch to the original D3.js algorithm if it suits you better.

Example

Here is an example of minimal spanning tree, adapted from Tim Bell's CS Unplugged Muddy City activity.

Muddy city code Muddy city graph

Tutorials

Not sure on where to start in using Edgy? Click one of the links below to start learning how to use this web application.

TODO

  • Display graph in preview window when opening projects (Edgy currently displays it as a generic sprite).

Development

Edgy has been developed by Steven Bird and students (Mak Nazečić-Andrlon, Jarred Gallina) at the University of Melbourne.

Keeping Snap! clean

In general, changes should be made in the files that reside in the edgy directory to avoid causing merge conflicts with Snap!. See the changeset files edgy/changesToObjects.js, edgy/changesToGui.js etc.

Updating Snap! version

To merge the upstream Snap! repository:

  • In a fork of the repository, add the upstream repo if it isn't already in git remote -v:

    git remote add snap https://github.com/jmoenig/Snap--Build-Your-Own-Blocks.git
  • Make sure the upstream repo is up to date:

    git fetch snap
  • Create a new branch (called UpdateSnap) from master

    git checkout master
    git checkout -b UpdateSnap
  • Merge the Snap! repository:

    git merge snap/master
    • Conflicts may have occurred in certain functions of gui.js, objects.js and/or store.js, which have been marked with the comment

      // NOTE: This function may cause merge conflicts with the Snap! repository.

      These conflicts will have to be resolved manually.

  • Commit the results and create a pull request.