<commit_before>window['bootstrap'] = function(options) {
  options = options || {};

  var demo = {};

  var container = document.body;

  demo.renderer = new THREE.WebGLRenderer({maxLights: 10, antialias: true});
  demo.renderer.setClearColor(0x000000, 1);
  demo.renderer.sortObjects = true;
  demo.renderer.autoClear = false;

  demo.effectComposer = new THREE.EffectComposer(demo.renderer);
  demo.rebuildEffectComposer = function(passes) {
    var clearPass = new ClearPass();
    var toScreenPass = new THREE.ShaderPass(THREE.CopyShader);
    toScreenPass.renderToScreen = true;
    demo.effectComposer = new THREE.EffectComposer(demo.renderer);
    demo.effectComposer.addPass(clearPass);
    for(var i = 0; i < passes.length; i++) {
      passes[i] && demo.effectComposer.addPass(passes[i]);
    }
    demo.effectComposer.addPass(toScreenPass);
  }

  Loader.setRootPath(options.rootPath || '');

  demo.lm = new LayerManager(demo);
  if(options.layers) {
    for(var i = 0; i < options.layers.length; i++) {
      demo.lm.loadLayer(options.layers[i]);
    }
    demo.lm.jumpToFrame(0);
  }
<commit_msg>Add shadow support to the nin rendering pipeline<commit_after>window['bootstrap'] = function(options) {
  options = options || {};

  var demo = {};

  var container = document.body;

  demo.renderer = new THREE.WebGLRenderer({maxLights: 10, antialias: true});
  demo.renderer.setClearColor(0x000000, 1);
  demo.renderer.sortObjects = true;
  demo.renderer.autoClear = false;
  demo.renderer.shadowMapEnabled = true;
  demo.renderer.shadowCameraNear = 1;
  demo.renderer.shadowCameraFar = 10000;
  demo.renderer.shadowCameraFov = 50;

  demo.renderer.shadowMapBias = 0.0039;
  demo.renderer.shadowMapDarkness = 0.5;
  demo.renderer.shadowMapWidth = 1024;
  demo.renderer.shadowMapHeight = 1024;

  demo.effectComposer = new THREE.EffectComposer(demo.renderer);
  demo.rebuildEffectComposer = function(passes) {
    var clearPass = new ClearPass();
    var toScreenPass = new THREE.ShaderPass(THREE.CopyShader);
    toScreenPass.renderToScreen = true;
    demo.effectComposer = new THREE.EffectComposer(demo.renderer);
    demo.effectComposer.addPass(clearPass);
    for(var i = 0; i < passes.length; i++) {
      passes[i] && demo.effectComposer.addPass(passes[i]);
    }
    demo.effectComposer.addPass(toScreenPass);
  }

  Loader.setRootPath(options.rootPath || '');

  demo.lm = new LayerManager(demo);
  if(options.layers) {
    for(var i = 0; i < options.layers.length; i++) {
      demo.lm.loadLayer(options.layers[i]);
    }
    demo.lm.jumpToFrame(0);
  }

{'fraction_non_alphanumeric': 0.1358695652173913, 'fraction_numerical': 0.019021739130434784, 'mean_word_length': 4.043052837573385, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '738583', 'n_tokens_mistral': 905, 'n_tokens_neox': 857, 'n_words': 147}