Beispiel #1
0
$(document).ready(function() {
  //Create viewer
  var viewer = require("gl-shells").makeViewer();
  //Create random table
  var table = new Array(8*INITIAL_RADIUS*INITIAL_RADIUS*INITIAL_RADIUS);
  for(var i=0; i<table.length; ++i) {
    table[i] = Math.random() < INITIAL_DENSITY ? 1 : -1;
  }
  //Initialize volume with random stuff
  var state = sample.solid.dense(
    [-INITIAL_RADIUS-1,-INITIAL_RADIUS-1,-INITIAL_RADIUS-1],
    [ INITIAL_RADIUS+1, INITIAL_RADIUS+1, INITIAL_RADIUS+1], function(x) {
    for(var i=0; i<3; ++i) {
      if(x[i] <= -INITIAL_RADIUS || x[i] >= INITIAL_RADIUS-1) {
        return 1;
      }
    }
    var n = x[0] + INITIAL_RADIUS +
          2 * INITIAL_RADIUS * ( x[1] + INITIAL_RADIUS +
            2 * INITIAL_RADIUS * ( x[2] + INITIAL_RADIUS ));
    return table[n%table.length];
  });
  //Set up interval to tick state
  setInterval(function() {
    state = step(state);
    viewer.updateMesh(mesh(state));
  }, 500);
  //Draw initial mesh
  viewer.updateMesh(mesh(state));
});
Beispiel #2
0
 setInterval(function() {
   state = step(state);
   viewer.updateMesh(mesh(state));
 }, 500);