WDS 2013 Opening Titles
Check out the finished product at run.south.im.
To get the code on your system and install the required dependencies:
git clone firstname.lastname@example.org:smallmultiples/south.im.git cd south.im npm install
If you're just looking to get it running locally:
Otherwise, you can run
make to set off the following tasks:
# Starts a local development server using beefy make start # Builds the production-ready assets make build # Removes any generated assets make clean # Visualise file size consumption using disc make disc open dist/disc.html # Visualise the project's dependency tree using colony make colony open dist/colony/index.html
If you're wondering about specific bits of functionality, most of the final code is actually contained in modules which are freely available on npm. These ones might be of particular interest:
- browserify: handles building the final script, letting us use CommonJS modules from npm and elsewhere.
- glslify: a browserify-like bundler for GLSL shaders.
- ndarray: a very versatile/performant module for handling multidimensional arrays with a wealth of compatible modules.
- level.js: a level* API wrapper for IndexedDB. Used in combination with continuous-storage to cache generated terrain.
- webworkify: Used in combination with worker-wrap for generating terrain meshes in a separate thread.
- ndarray-continuous: an API for handling dynamic grids of ndarrays, so we can easily load/unload chunks of terrain dynamically.
- heightmap-mesher: takes a heightmap and converts it into 3D triangles.
- orbit-camera: a simple arcball camera built on top of gl-matrix.
- talkie: handles queueing events in a timeline such that they can be triggered at certain parts of the song.
- lut: generates generic color tables as a starting point for color grading.
- gl-matrix: a very performant JS matrix library.
- gl-now: a variant of game-shell for WebGL demos to handle bootstrapping the 3D context.
- glsl-point-light: A reusable point light function for GLSL.
- glsl-fog: A reusable set of fog functions for GLSL.
- webgl-noise: perlin/simplex/classic noise in GLSL.
- web-audio-analyser: A drop-in module for getting audio analysis data from the Web Audio API.
- beats: naive beat detection.
- dot-obj: A parser for the
.objgeometry format. Used to include models exported from Blender.
- Hugh Kennedy: design and development.
- François Robichet: sound and modeling.
- Jack Zhao: concept and creative direction.
It's also worth taking a look at
for a full list of the authors whose modules were used in the project.
Unless otherwise specified, all source code is licensed under the MIT license included in this repository.
Certain project-specific files have been licensed under the Mozilla Public License. These files are stated as such explicitly at the beginning of the file in question.
With the exception of the Web Directions South logo, images and 3D geometry files are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License: