Disable local repositories for glutin and glium.
[mandelwow.git] / README.md
1 # MandelWow
2
3 ## Overview
4
5 MandelWow is a generalized version of Mandelbrot & Julia in which both C and Z0 vary in a 4-dimensional space.
6 In each frame, we render a 3D slice of the MandelWow, varying the remaining dimension through time.
7
8 I wrote this hack to learn Rust & basic GLSL. Mind the mess.
9
10
11 ## Building from source
12
13 ### Native
14
15 Install cargo, then simply type:
16
17 ```
18 cargo run --release
19 ```
20
21 ### WebAssembly / asm.js
22
23 Install emsdk 1.36.14:
24
25 ```
26 cd ~
27 curl -O https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz
28 tar xf emsdk-portable.tar.gz
29 source emsdk-portable/emsdk_env.sh
30 emsdk install emscripten-1.37.9 --build=MinSizeRel
31 emsdk activate emscripten-1.37.9 --build=MinSizeRel
32 ```
33
34 Install rustc:
35
36 ```
37 cd ~
38 curl https://sh.rustup.rs -sSf | sh
39 source ~/.cargo/env
40 rustup toolchain install nightly
41 rustup default nightly
42 rustup target install asmjs-unknown-emscripten
43 rustup target install wasm32-unknown-emscripten
44 ```
45
46 Build and run mandelwow:
47
48 ```
49 cd mandelwow
50 ./release_asmjs.sh
51 ```
52
53 Build the WebAssembly binary:
54
55 ```
56 cd mandelwow
57 ./release_wasm.sh
58 ```
59
60 ## Requirements
61
62 The native binary requires OpenGL 3.1. Should perform well on reasonably modern
63 hardware. Tested on Linux with Intel HD Graphics 4000 (Ivy Bridge) and NVidia GTX 970.
64
65 The asmjs and WebAssembly versions were tested on Chromium 57 and Firefox 53.
66
67 ## License
68
69 This project is GPL 3.0.
70 The support/ directory contains some code forked from Glium, which was originally Apache 2.0.