Evolution on the Web: What’s out there?

These are notes taken during the Sandbox Session on Evolution on the Web at BEACON Congress 2014, August 18, 2014, at Michigan State University.

Organizers: Charles Ofria, Jared Moore, Luis Zaman, Anthony Clark

Motivating Examples:

BoxCar2D is the perhaps most common example of evolution on the web and can be found at boxcar2d.org.  Picbreeder(picbreeder.org) is another popular evolutionary website focused on evolving CPPN’s to draw 2D pictures.  A follow-on, Endless Forms(endlessforms.com) adds a 3D element to those found in Picbreeder.

On the education side, EvoGrader (Website) is an online assessment tool for grading writing assignments about evolution.

BEACON-Specific Projects:

Evolve-a-Robot (evolve-a-robot.github.io) is an online evolutionary environment that demonstrates the concepts of evolutionary robotics in a 3D physics engine that runs completely in a web-browser with no need for installs or additional software.

Web-Avida (currently under development) brings the Avida digital evolution platform to the web and should be released soon.  Built with the EA-Lib (https://github.com/dknoester/ealib/wiki), Web-Avida uses Emscripten to compile to Javascript.

Discussed Goals:

Citizen Evolutionary Science: Setup a web-portal for citizens to contribute data about species in locations in such a way that scientists could work with the data.  Thinking of ecological data on a grand scale.

Move education applications to the web: Tie in educational goals directly with the online simulations.  Structure the apps in such a way that they can gather data to allow for an increased understanding of evolution.

How to best use the web for evolution: Techniques coming out now may allow researchers to continue using optimized offline code for research purposes, while cross-compiling to Javascript for an outreach component of their research.  Although still not mature, these new techniques and technologies may allow for both research and outreach from the same codebase in the future.

Technologies:

The following sections briefly describe the technologies discussed in the session.

Javascript

Modern web development of evolutionary tools are well suited to Javascript as it runs across browsers and platforms.  Desktop to mobile, JS allows for portable code.  It is important to note though that Javascript is not related to Java, a common misconception for non-developers.

Emscripten

Website Emscripten, built by the Mozilla Foundation, is an LLVM compiler that can translate bytecode generated from C/C++, or other languages, into Javascript, suitable for running in a web-browser.  There are limitations currently, such as the lack of threading support, but working with familiar languages can help alleviate some of the difficulty transferring to a web-based environment.  Although not the first compiler to do this, Emscripten generates optimized code which can realize performance gains in the web domain.

Reveal.JS

Website An HTML presentation engine that allows you to embed many different objects in a presentation.  A “Powerpoint for the web”, this browser-based presentation engine allows for some different ways to move through a presentation.

WebGL

Website Derivative of the OpenGL graphics engine to allow for 2D/3D graphics on the web.

PhysiJS

Website Physics engine that is a port of the Bullet Physics Engine from C/C++ to Javascript to run inside a web browser.

D3.js

Website Data-driven visualization engine that works within the DOM of web pages to present data in charts, divs, or 3D visualizations.

Socket.io

Website A library that allows for connecting multiple instances of a web-browser together.  Check out Luis Zaman’s demo at 35.13.64.83:8010.

Node.js

Website Web-server Installation

One thought on “Evolution on the Web: What’s out there?

Leave a Reply

Your email address will not be published. Required fields are marked *

Are you a spammer? *