a visual programming language inspired by Scratch
JavaScript TeX Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Backgrounds
Costumes
Examples
Sounds
edgy
help source
help
libraries
.gitattributes
.gitignore
Blob.js
FileSaver.js
FileSaver.min.js
LICENSE.md
README.md
Snap! Connectivity Strategy.pdf
agpl.txt
bheap.js
blocks.js
byob.js
click.wav
cloud.js
cola.v3.min.js
contributing to BYOB4.txt
d3.v3.min.js
dotgraph.js
dotparser.js
edgy.html
edgy_logo.png
embed.html
es6-shim.js
favicon.ico
gui.js
history.txt
index.html
jsnetworkx.js
jsonp.js
jszip.js
k5_logo.png
lang-ar.js
lang-bg.js
lang-bn.js
lang-ca.js
lang-cs.js
lang-de.js
lang-dk.js
lang-el.js
lang-eo.js
lang-es.js
lang-et.js
lang-fi.js
lang-fr.js
lang-gl.js
lang-hr.js
lang-hu.js
lang-ia.js
lang-id.js
lang-it.js
lang-ja.js
lang-ja_HIRA.js
lang-kn.js
lang-ko.js
lang-ml.js
lang-nl.js
lang-no.js
lang-pl.js
lang-pt.js
lang-pt_BR.js
lang-ro.js
lang-ru.js
lang-si.js
lang-sv.js
lang-ta.js
lang-te.js
lang-tr.js
lang-tw.js
lang-zh.js
lists.js
locale.js
morphic.js
morphic.txt
objects.js
optimizations.txt
osmextractintersections.py
paint.js
readme.txt
sha512.js
snap_logo_sm.png
store.js
tables.js
threads.js
tictactoetree.py
tools.xml
tools.xml.js
translating Snap.txt
ucsv-1.1.0.js
uuid.js
widgets.js
wordnet_nouns.json
xml.js
ypr.js

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.