Home

Awesome

resonate-workshop-2015

screenshot

Gitter | interactive version @ demo.thi.ng

April 13-15, 2015 Belgrade

Preparations / requirements

To make the most of our time next week and since online connectivity at the workshop venue has been traditionally sporadic, please ensure you have the following requirements met before the workshop begins on Monday:

The last tool (CCW) is an Eclipse based Clojure IDE, which is x-platform, easy to install and we already used successfully in last year's workshop. However, this just a recommendation and you're of course free to use any other editor.

Please also already clone this repo and execute the following to force downloading most (if not all) other necessary library dependencies:

cd resonate-workshop-2015
lein deps

Running the demo

The WebGL example shown above (and described below) can be run like this:

cd resonate-workshop-2015
lein figwheel

The above is building the development version and starts a server on http://localhost:3449/

Whilst the figwheel server is running, any changes done to the source code are automatically recompiled & applied to the running browser session.

To build a minified & optimized JS version of this code, stop the figwheel server (Ctrl+D) and run these commands:

lein do clean, cljsbuild once min
open resources/public/index.html

The demo is partially interactive:

Note: The performance of this example is not amazing and the code is not very optimized (we were focused on learning new concepts after all). Furthermore, WebGL itself is not happy with drawing hundreds of tiny VBOs each with potentially different shader instances. In an ideal world, the mesh drawing/handling would use large vertex buffers for multiple meshes, each with more attributes to specify the unique for data of each mesh instance. Instead, we're currently bombarding the WebGL driver with a multitude of render states and performance goes down v.quickly...

Daily reports

Day 1

Day 2 & 3

We spent these last two days developing a little WebGL demo based around a refined version of the ECS developed a day earlier and spent much time talking about the many new concepts around:

Libraries

Reading list & references

Clojure & ClojureScript introduction

Tutorials

Entity Component Systems

Reactive programming

Data transformations

Data, data, data (derived views, compute graphs etc.)

Get in touch

If you run into any problems, please get in touch via the above gitter.im room, which we will use as backchannel.