Google Summer of Code Ideas

About Us

We’re EMRG, the Experimental Media Research Group. We’re a research group connected to Sint Lucas Antwerpen, an art school in Belgium. Our aim is to promote the computer from a production tool to an intelligent creative partner. We develop open-source tools that enable designers to automate boring production challenges, visualize large sets of data and access the raw power of the computer without thinking in ones and zeroes. Our tools integrate with traditional design applications and run on many platforms.

NodeBox Live Screenshot

NodeBox Live

Our upcoming application is NodeBox Live, an online node-based editor with deep integrations for web services. NodeBox Live is closed source, but its libraries are open-source, and used in other open-source applications.

EMRG consists of 7 members, most of them working part-time. Your contributions will have a large impact on the projects and organization as a whole. We use Gitter and an internal HipChat channel, to which you will get access. We partner with Red Hen Lab, who are also participating in GSoC, for sharing data that can be used to make visualizations with our software.

Your Proposal

We’ve listed a number of ideas below, or you can propose your own project. We expect you to list:

  • What you want to do, why you think it’s important for you, and for us.
  • How you intent to accomplish the goal. You can include a schedule, or use any other means to convince us.
  • A link to code you’ve written, preferably as a GitHub link.
  • A demonstration of your writing abilities. Being able to write clearly (especially when tackling tasks like the documentation site) is really important.

We believe in deep work, so we don’t require you to be constantly available in the chat. We’d much rather you focus on the task at hand. However, we expect regular updates (at least every week) to show what you’ve been doing, if you’re still on target, and what you plan on doing for the next week.


OpenType.js is an OpenType font parser and writer for JavaScript. It allows you to access the letterforms of text from the browser or node.js. OpenType.js is used in a number of open-source and commercial applications.

Logo of the p5.js project Screenshot of the FontSelf project Screenshot of the FontSelf project Screenshot of the Twikit Trophy Factory

For OpenType.js, we’re looking for:

A New Documentation Site

Documentation Site

Currently, documentation is stored in a README file on GitHub. As the project grows larger, it could use a new site for documentation. The idea is to integrate this with the font and glyph inspectors to have a complete, good-looking documentation site.

Expected results:

  • Visual design of the project
  • Clean, easy-to-read documentation
  • Responsive design code (HTML / CSS / JavaScript)
  • Extra credits for integrating the font and glyph inspector

Mentor: Frederik De Bleser ([email protected]), @fdb on Gitter

Font testing infrastructure

Testing Infrastructure

There are many, many fonts available. We'd like to support them all! (Or, at least, lots of them). The font testing infrastructure would like to test each release of OpenType.js against a big database of publicly available fonts, either through the Font Squirrel API or the Google Fonts API.

Expected results:

  • Access the API to retrieve a number of fonts.
  • Using node.js, download (or stream) font files and parse them using OpenType.js.
  • Have a set of "known good" glyph outline shapes and metrics that validate if the font was parsed correctly.
  • Cross-validate using other implementations, e.g. FreeType.
  • Setup continuous integration that tests pull requests against a database of known good fonts, to avoid regressions.

Mentor: Frederik De Bleser ([email protected]), @fdb on Gitter

Variable Fonts

Font Cube

In November 2016, partners from Google, Adobe, Microsoft and Apple introduced the new OpenType 1.8 standard. This allows variable fonts. The basis of this work was already started by Sascha Brawer of Google, contributing the necessary internal font tables.

Expected results:

  • Gain understanding of the OpenType binary format.
  • Access the relevant font tables (fvar, cvar, gvar tables — see Microsoft's spec).
  • Add algorithms for interpolation of the glyphs.
  • Integrate this into an easy-to-use API.

Mentor: Frederik De Bleser ([email protected]), @fdb on Gitter


g.js is our open-source JavaScript 2D graphics library. It forms the basis of NodeBox Live. It supports advanced operations on Bézier paths.

Screenshot of the g.js site. Screenshot of a NodeBox Live visualization Screenshot of the Metashape Project

For g.js, we’re looking for:

Live Editor / NoteBook

g.js console

Even though the library works well, users have no way to try it out in the browser. In this project you will build a live editor, similar to RunKit or Jupyter Notebook. This is a unique opportunity to build a mini-graphical editor from scratch.

Expected results:

  • Simple environment for interactively playing with graphics code.
  • Basic Read-Eval-Print-Loop (REPL)
  • UI affordances: console history using arrow keys, ...
  • Auto-completion.
  • If possible, integrated documentation for g.js commands.

Mentor: Lieven Menschaert ([email protected]), @lievn on Gitter