{
  "information": {
    "Title": "Multiple Slit Diffraction",
    "Author": [
      "Fu-Kwun Hwang,Robert Mohr, Wolfgang Christian",
      "lookang",
      "F\u00e9lix J. Garc\u00eda Clemente",
      "Francisco Esquembre"
    ],
    "AuthorLogo": [
      "./01authorfu-kwun.hwang.png",
      "./lookangphoto.png",
      "",
      ""
    ],
    "Password": "",
    "Keywords": "multiple slit difraction, interference",
    "Abstract": "Original model by Fu-Kwun Hwang adpted for Ejs 4.1 by Robert Mohr and Wolfgang Christian at Davidson College.\nremixed by lookang\n\nwaiting for EJSS6.1 with support for array colors",
    "Copyright": "Creative Commons Attribution",
    "Level": "beginner",
    "Language": "English",
    "Logo": [
      "./MultipleSlitDiffraction/Screenshot 2021-09-01 at 12.00.46 AM.png"
    ],
    "RunAlways": "true",
    "ModelTab": "",
    "ModelTabTitle": "",
    "ModelName": "",
    "FixedNavigationBar": "false",
    "CSSFile": "",
    "DetectedFiles": [
      "./01authorfu-kwun.hwang.png",
      "./MultipleSlitDiffraction/ConstructiveInterference.gif",
      "./MultipleSlitDiffraction/DestructiveInterference.gif",
      "./MultipleSlitDiffraction/MultipleSlitDiffraction.html",
      "./MultipleSlitDiffraction/Screenshot 2021-09-01 at 12.00.46 AM.png",
      "./MultipleSlitDiffraction/SingleSlitMinima.gif",
      "./MultipleSlitDiffraction/two_slit.jpg",
      "./lookangphoto.png"
    ],
    "AuxiliaryFiles": [
      "./MultipleSlitDiffraction/"
    ],
    "HTMLHead": "<script async=\"true\" src=\"https://www.googletagmanager.com/gtag/js?id=UA-3326007-19\"></script>\n<script>\n  window.dataLayer = window.dataLayer || [];\n  function gtag(){dataLayer.push(arguments);}\n  gtag('js', new Date());\n  gtag('config', 'UA-3326007-19');\n</script>\n<script data-ad-client=\"ca-pub-0121577198857509\" async=\"true\" src=\"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script>",
    "SaveInXMLFormat": "false",
    "IncludeSource": "true",
    "IncludeLibrary": "true",
    "UglifyJS": "false",
    "PreviewFullModel": "false",
    "UseInterpreter": "true",
    "UseDeltaForODE": "false"
  },
  "description": {
    "pages": [
      {
        "Name": "Diffraction",
        "Active": "true",
        "Internal": "false",
        "Type": "DESCRIPTION_EDITOR",
        "Locale": "_default_",
        "Title": "Diffraction",
        "External": "true",
        "Code": "./MultipleSlitDiffraction/MultipleSlitDiffraction.html"
      }
    ]
  },
  "model": {
    "variables": {
      "pages": [
        {
          "Name": "coordinate",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "print",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "fontb",
              "Value": "\"normal bold 2vw \"",
              "Type": "String",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "font",
              "Value": "\"normal normal 1.5vw \"",
              "Type": "String",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "range",
              "Value": "200",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "xmin",
              "Value": "-range",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "xmax",
              "Value": "range",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "ymin",
              "Value": "-range/2",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "ymax",
              "Value": "range/2",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "zmin",
              "Value": "-range/2",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "zmax",
              "Value": "range/2",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "t",
              "Value": "0.0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "dt",
              "Value": "0.05",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "size",
              "Value": "range/40",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "um",
              "Value": "1.e-6",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "mouseReading",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "mouseReadingy",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "Var Table",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "nx",
              "Value": "1000",
              "Type": "int",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "ny",
              "Value": "1000",
              "Type": "int",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "Intensity",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx][ny]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "Intensityy",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx][ny]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "Intensityyx",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx][ny]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "lambda",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "lambdar",
              "Value": "0.66",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "a",
              "Value": "0.1",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "L",
              "Value": "200",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "Ladjusted",
              "Value": "200/L",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "spectrumy",
              "Value": "ymin",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "spectrumy1",
              "Value": "ymin+0.1*ymax",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "spectrumy1y",
              "Value": "ymin+0.1*ymax",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "spectrumy2",
              "Value": "spectrumy1+1.9*ymax",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "spectrumy2y",
              "Value": "spectrumy1+1.9*ymax",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "Imax",
              "Value": "ny",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "pi",
              "Value": "Math.PI",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "XP",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "XPy",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "YP",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "YPy",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "YP2",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "YP2y",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "xscale",
              "Value": "5.25",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "yscale",
              "Value": "100",
              "Type": "double",
              "Dimension": "",
              "Comment": "1.0",
              "Domain": "public"
            },
            {
              "Name": "d",
              "Value": "10.0*a",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "N",
              "Value": "2",
              "Type": "int",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "singleSlit",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "ar",
              "Value": "1.5",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "dr",
              "Value": "4.0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "showXY",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "showintensity",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "colors2",
              "Value": "[]",
              "Type": "Object",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "colors",
              "Value": "\"rgb(192,192,192)\"",
              "Type": "String",
              "Dimension": "[256]",
              "Comment": "Color.GRAY",
              "Domain": "public"
            },
            {
              "Name": "colorlookang",
              "Value": "\"rgb(192,192,192)\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "computey",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "ystring",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "yvalue",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "ypshow",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "ypspace",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "yvalueslider",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "screenshow",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "interference",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "i",
              "Value": "0",
              "Type": "int",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "j",
              "Value": "0",
              "Type": "int",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "x",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "y",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "sum2[i][j]",
              "Value": "0",
              "Type": "double",
              "Dimension": "[nx][ny]",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "c",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "Ix",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "layout",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "Width",
              "Value": "(_isEPub)?\"400\":\"100%\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "display width",
              "Domain": "public"
            },
            {
              "Name": "Height",
              "Value": "(_isEPub)?\"500\":\"100%\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "Width1",
              "Value": "\"100%\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "display width",
              "Domain": "public"
            },
            {
              "Name": "Width2",
              "Value": "\"0%\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "display width",
              "Domain": "public"
            },
            {
              "Name": "xvst",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "world",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "graph",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "disabledworld",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "disabled",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            },
            {
              "Name": "text",
              "Value": "\"select size of pollen YELLOW and number of random motion particles\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "null",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "lookang",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "slitY",
              "Value": "[]",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": ""
            }
          ]
        }
      ]
    },
    "initialization": {
      "pages": [
        {
          "Name": "Init Page",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "var dx=(xmax-xmin)/(nx-1);\nfor(var i=0;i<nx;i++) {\n  XP[i]=xmin+i*dx;\n  //XPy[i]=xmin+i*dx;\n}\n\nlightPalette(lambdar);\ndraw_interference();\n\n//TT: to initialise array elements \nfor(var i=0; i<nx; i++) {\n  Intensity[i] = [];  \n  Intensityy[i] = [];  \n  Intensityyx[i] = []; \n}\n\n//slitY = numeric.linspace(5,-5, N)\n\nslitY = calculateSlitPositions(N, 10)\n//console.log(\"slitY = \"+ slitY)"
        }
      ]
    },
    "evolution": {
      "information": {
        "FPS": "25",
        "SPD": "1",
        "RealTimeVariable": "",
        "Autoplay": "false"
      },
      "pages": []
    },
    "fixed_relations": {
      "pages": [
        {
          "Name": "Cons Page",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "_view.singleSlitTrail.clear();\n_view.multipleSlitsTrail.clear();\n\nlambda = lambdar*um;\nif (dr<1.2*ar) {\n  dr = 1.2*ar;\n}\na = ar*um;\nd = dr*um;\nif (N===1) {\n  singleSlit=true;\n}\nelse {\n  singleSlit=false;\n}\n\nvar I,alpha,cst,dy,dyy,sc,beta,cst2,I2;\nvar alphax, betax, scx,Ix,Ixx, I2x, cstx,cst2x;// lookang\nImax = a*a*3.e8/N;\ndy = (spectrumy2 - spectrumy1);\n//dyy=(spectrumy2y-spectrumy1y); // added lookang\nfor(var i=0; i<nx; i++) {\n  x = 0.01+(200-0.01)*i/nx; // lookang\n  sc = XP[i]/Math.sqrt(XP[i]*XP[i]+L*5*L*5)*xscale;\n  scx = x/Math.sqrt(x*x+L*5*L*5)*xscale;\n  alpha = pi*a*sc/lambda;\n  alphax = pi*a*scx/lambda*x ;// lookang\n  beta = pi*d*sc/lambda;\n  betax = pi*d*scx/lambda*x;// lookang\n  if(alpha === 0) {\n    I2 = I = Imax;\n  } else {\n      cst2 = Math.sin(alpha)/alpha;\n      cst2x = Math.sin(alphax)/alphax;// lookang\n      if (singleSlit) {\n        cst = cst2;\n        cstx = cst2x;// lookang\n      } else {\n        cst = cst2*Math.sin(N*beta)/Math.sin(beta)/N;\n        cstx = cst2x*Math.sin(N*betax)/Math.sin(betax)/N;// lookang\n      }\n      I = cst*cst;\n      Ix = cstx*cstx;// lookang\n      I2 = cst2*cst2;\n      I2x = cst2x*cst2x;// lookang\n    }\n    for(var j=0; j<ny; j++) {\n      y = 200*j/ny; // lookang\n      Intensity[i][j] = I*Imax*N/2;  // nonlinear scale for screen\n      Intensityy[j][i] = I*Imax*N/2;  // flip i for j to get the rigth screen by lookang\n      Intensityyx[j][i] = I*Imax*N/2;  // code not working I for Ix, abandoned changes\n    }\n    YP[i] = spectrumy1+dy*I*yscale/50; // added divide 50 by lookang to draw yellow intensity lower\n    YP2[i] = spectrumy1+dy*I2*yscale/50;\n    //YPy[i]=spectrumy1y+dy*I*yscale;\n    //YP2y[i]=spectrumy1y+dy*I2*yscale;\n  }"
        }
      ]
    },
    "custom": {
      "pages": [
        {
          "Name": "Light Palette",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function lightPalette (wavelength) {\n  var r, g, b;\n  var h, s;\n  var rgbcolour;\n  \n  colors2 = []\n  for(var i=0, n=colors.length; i<n; i++) {\n    r=i;\n    g=i;\n    b=i;\n    //colors[i]=new Color(r,g,b);\n\n    h = -2.5*wavelength+1.625;\n    s = 1;\n    if (wavelength>=0.65&&wavelength<0.75){\n      h = 0;\n      s =1;\n      }\n    \n    else if( wavelength>=0.75 ) { // 0.8 is the limit for RED 750 nm\n      h = 0;\n      s =0;\n      //s = parseFloat(1-wavelength/0.35);//f;\n    //  s = (1-wavelength/0.35);//f;\n    //  rgbcolour = HSVtoRGB(h,s,parseFloat(i/255));\n  //  colors[i] = \"rgba(\"+rgbcolour.r+\", \"+rgbcolour.g+\", \"+rgbcolour.b+\",1)\";\n    // colors2.push([rgbcolour.r, rgbcolour.g, rgbcolour.b]);// from felix\n   // colorlookang = colors[i];\n    }\n    else if(wavelength<=0.35) {\n      h = 0;//f;\n      s = 0;//f;\n     // h = parseFloat(0.75);//f;\n     // s = parseFloat(wavelength/0.35);//f;\n    }\n    \n    rgbcolour = HSVtoRGB(h,s,(i/255.0));\n    colors[i] = rgb(rgbcolour.r, rgbcolour.g, rgbcolour.b);\n    colors2.push([rgbcolour.r, rgbcolour.g, rgbcolour.b]);\n    colorlookang = colors[i];\n    //colorlookang = colors2[i];\n  }\n}"
        },
        {
          "Name": "Compute Intensity",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "// computes intensity in response to mouse action\nfunction computeIntensity () {\n  var x = _view.DrawingPanel.getMouseX();\n  var sc = x/Math.sqrt(x*x+L*L)*xscale;\n  var alpha = pi*a*sc/lambda;\n  var beta = pi*d*sc/lambda;\n  if( alpha===0 ) {\n    mouseReading = Imax*yscale;\n    return;\n  }\n  var cst = Math.sin(alpha)/alpha;\n  if(!singleSlit){\n    cst = cst*Math.sin(N*beta)/Math.sin(beta)/N;\n  }\n  mouseReading = cst*cst*yscale;\n}"
        },
        {
          "Name": "lookang",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "// lookang\nfunction calculateSlitPositions(n, range) {\n    slitY = [];  // Initialize array to store slit positions\n\n    if (n === 1) {\n        slitY[0] = 0;  // For n = 1, just one position at 0\n    } else {\n        let step = range / (n - 1);  // Calculate the step size based on the range\n\n        for (let i = 0; i < n; i++) {\n            slitY[i] = (i - (n - 1) / 2) * step;  // Symmetric around 0\n        }\n    }\n\n    return slitY;\n}\n"
        },
        {
          "Name": "Compute Intensity 2",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "// computes intensity in response to mouse action\n// added by lookang to adapt to right panel\nfunction computeIntensityy() {\n  var x=_view.right.getMouseY();\n  var sc=x/Math.sqrt(x*x+L*L)*xscale;\n  var alpha=pi*a*sc/lambda;\n  var beta=pi*d*sc/lambda;\n  if( alpha===0 ) {\n    mouseReadingy = Imax*yscale;\n    return;\n  }\n  var cst = Math.sin(alpha)/alpha;\n  if( !singleSlit ) {\n    cst = cst*Math.sin(N*beta)/Math.sin(beta)/N;\n  }\n  mouseReadingy = cst*cst*yscale;\n}"
        },
        {
          "Name": "compute y",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function compute_y () {\n  var y=_view.right.getMouseY()/200;\n  yvalue = y;\n  yvalueslider = yvalue*100;\n  ystring = \" y = \"+ _view.format(y,\"0.000\")+ \" m \";\n  return ;\n}"
        },
        {
          "Name": "draw interference",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function draw_interference() {\n  for ( var i=0; i<nx; i++) {\n    x = 0.01+(200-0.01)*i/nx;\n    c = pi/(lambdar*x)*xscale/2.6; // factor 2.6 determined by trial and error lookang\n\n    for ( var j=0; j<ny; j++) {\n      y = 100+(200)*j/ny;\n      if (N === 1) {\n        sum2[i][j]= 2.0*Math.abs((Math.sin(c*ar*(y-200.0)))/(c*ar*(y-200.0)));\n      }\n      else {\n        if (N === 2) {\n        //  sum2[i][j]= 2.0*Math.cos(c*dr*(y-200.0))*Math.cos(c*dr*(y-200.0));\n        //}\n        // else {\n          sum2[i][j]= 2.0*Math.cos(c*dr*(y-200.0))*Math.cos(c*dr*(y-200.0))*Math.abs((Math.sin(c*ar*(y-200.0)))/(c*ar*(y-200.0)));\n        }\n      }\n      if (y === 200) {\n        // centre line draw max\n        sum2[i][j]= 2.0;\n      }\n      if (x > L) {\n        // outside screen draw zero\n        sum2[i][j]= 0.0;\n      }\n    }\n  }\n}"
        },
        {
          "Name": "fullscreen",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "//https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode\n// does not work for iOS \n/*jslint browser:true */\nfunction toggleFullScreen() {\n  if (!document.fullscreenElement &&    // alternative standard method\n      !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement ) {  // current working methods\n    if (document.documentElement.requestFullscreen) {\n      document.documentElement.requestFullscreen();\n    } else if (document.documentElement.msRequestFullscreen) {\n      document.documentElement.msRequestFullscreen();\n    } else if (document.documentElement.mozRequestFullScreen) {\n      document.documentElement.mozRequestFullScreen();\n    } else if (document.documentElement.webkitRequestFullscreen) {\n      document.documentElement.webkitRequestFullscreen();\n    }\n  } else {\n    if (document.exitFullscreen) {\n      document.exitFullscreen();\n    } else if (document.msExitFullscreen) {\n      document.msExitFullscreen();\n    } else if (document.mozCancelFullScreen) {\n      document.mozCancelFullScreen();\n    } else if (document.webkitExitFullscreen) {\n      document.webkitExitFullscreen();\n    }\n  }\n}"
        },
        {
          "Name": "rgb",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function rgb(r, g, b) {\n  return \"rgb(\"+r+\",\"+g+\",\"+b+\")\";\n}\n\nfunction hsb2rgb(h, s, v){\n\n}\n"
        },
        {
          "Name": "HSVtoRGB",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function HSVtoRGB(h, s, v) {\n    var r, g, b, i, f, p, q, t;\n    if (arguments.length === 1) {\n        s = h.s, v = h.v, h = h.h;\n    }\n    i = Math.floor(h * 6);\n    f = h * 6 - i;\n    p = v * (1 - s);\n    q = v * (1 - f * s);\n    t = v * (1 - (1 - f) * s);\n    switch (i % 6) {\n        case 0: r = v, g = t, b = p; break;\n        case 1: r = q, g = v, b = p; break;\n        case 2: r = p, g = v, b = t; break;\n        case 3: r = p, g = q, b = v; break;\n        case 4: r = t, g = p, b = v; break;\n        case 5: r = v, g = p, b = q; break;\n    }\n    return {\n        r: Math.round(r * 255),\n        g: Math.round(g * 255),\n        b: Math.round(b * 255)\n    };\n}\n\n"
        }
      ]
    },
    "elements": {
      "list": [
        {
          "Classname": "org.colos.ejss.model_elements.numerics.NumericJavascriptElement",
          "Name": "numericJS"
        }
      ]
    }
  },
  "view": {
    "Tree": [
      {
        "Name": "fullscreen",
        "Type": "Panel",
        "Expanded": "true",
        "Properties": [
          {
            "name": "Height",
            "value": "Height"
          },
          {
            "name": "Width",
            "value": "Width"
          }
        ],
        "Children": [
          {
            "Name": "controlPanel",
            "Type": "Panel",
            "Expanded": "true",
            "Properties": [
              {
                "name": "Width",
                "value": "Width"
              },
              {
                "name": "Font",
                "value": "font"
              },
              {
                "name": "Display",
                "value": "\"inline-flex\""
              }
            ],
            "Children": [
              {
                "Name": "lambdaPanel",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "CSS",
                    "value": "{padding:\"10px\"}"
                  },
                  {
                    "name": "Background",
                    "value": "%colorlookang%"
                  },
                  {
                    "name": "Display",
                    "value": "\"inline-block\""
                  }
                ],
                "Children": [
                  {
                    "Name": "lambdaLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Background",
                        "value": "%colorlookang%"
                      },
                      {
                        "name": "Text",
                        "value": "\"\u03bb = \""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ]
                  },
                  {
                    "Name": "lamdarField",
                    "Type": "ParsedField",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Wavelength = 0.00 \u03bcm\""
                      },
                      {
                        "name": "Value",
                        "value": "lambdar"
                      },
                      {
                        "name": "OnChange",
                        "value": "lightPalette(lambdar);\n_initialize();"
                      },
                      {
                        "name": "Width",
                        "value": "\"5vw\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ]
                  },
                  {
                    "Name": "lambdaUnitLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Background",
                        "value": "%colorlookang%"
                      },
                      {
                        "name": "Text",
                        "value": "\"\u03bcm\""
                      }
                    ]
                  },
                  {
                    "Name": "lambdaSlider",
                    "Type": "Slider",
                    "Properties": [
                      {
                        "name": "Minimum",
                        "value": "0.1"
                      },
                      {
                        "name": "Maximum",
                        "value": "1.0"
                      },
                      {
                        "name": "Background",
                        "value": "%colorlookang%"
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Wavelength = 0.00 \u03bcm\""
                      },
                      {
                        "name": "Value",
                        "value": "lambdar"
                      },
                      {
                        "name": "OnChange",
                        "value": "lightPalette(lambdar);\n_initialize();"
                      },
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "NPanel",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"CYAN\""
                  },
                  {
                    "name": "Display",
                    "value": "\"inline-block\""
                  }
                ],
                "Children": [
                  {
                    "Name": "Nlabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"number of slits\""
                      },
                      {
                        "name": "Text",
                        "value": "\"N = \""
                      }
                    ]
                  },
                  {
                    "Name": "NField",
                    "Type": "ParsedField",
                    "Properties": [
                      {
                        "name": "Format",
                        "value": "\"0\""
                      },
                      {
                        "name": "Background",
                        "value": "\"Cyan\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"number of slits\""
                      },
                      {
                        "name": "Value",
                        "value": "N"
                      },
                      {
                        "name": "OnChange",
                        "value": "N = Math.max(1,N);\nN = Math.min(100,N);\n_initialize();"
                      },
                      {
                        "name": "Width",
                        "value": "\"5vw\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ]
                  },
                  {
                    "Name": "NSlider",
                    "Type": "Slider",
                    "Properties": [
                      {
                        "name": "Minimum",
                        "value": "1"
                      },
                      {
                        "name": "Maximum",
                        "value": "20"
                      },
                      {
                        "name": "Format",
                        "value": "\"0\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"number of slits\""
                      },
                      {
                        "name": "Value",
                        "value": "N"
                      },
                      {
                        "name": "OnChange",
                        "value": "_initialize()"
                      },
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      },
                      {
                        "name": "Step",
                        "value": "1"
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "aPanel",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"Black\""
                  },
                  {
                    "name": "Display",
                    "value": "\"inline-block\""
                  }
                ],
                "Children": [
                  {
                    "Name": "aLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Slit Width\""
                      },
                      {
                        "name": "Foreground",
                        "value": "\"White\""
                      },
                      {
                        "name": "Text",
                        "value": "\"a = \""
                      }
                    ]
                  },
                  {
                    "Name": "aField",
                    "Type": "ParsedField",
                    "Properties": [
                      {
                        "name": "Format",
                        "value": "\"0.00\""
                      },
                      {
                        "name": "Background",
                        "value": "\"Black\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Slit Width\""
                      },
                      {
                        "name": "Value",
                        "value": "ar"
                      },
                      {
                        "name": "OnChange",
                        "value": "ar = Math.max(2,a);\nar = Math.min(1,a);\n_initialize();"
                      },
                      {
                        "name": "Foreground",
                        "value": "\"white\""
                      },
                      {
                        "name": "Width",
                        "value": "\"4.5vw\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ]
                  },
                  {
                    "Name": "aUnitLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Slit Width\""
                      },
                      {
                        "name": "Foreground",
                        "value": "\"white\""
                      },
                      {
                        "name": "Text",
                        "value": "\"\u03bcm\""
                      }
                    ]
                  },
                  {
                    "Name": "aSlider",
                    "Type": "Slider",
                    "Properties": [
                      {
                        "name": "Minimum",
                        "value": "1"
                      },
                      {
                        "name": "Maximum",
                        "value": "2"
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Slit Width = 0 \u03bcm\""
                      },
                      {
                        "name": "Value",
                        "value": "ar"
                      },
                      {
                        "name": "OnChange",
                        "value": "_initialize()"
                      },
                      {
                        "name": "Foreground",
                        "value": "\"WHITE\""
                      },
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "dPanel",
                "Type": "Panel",
                "Expanded": "false",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"CYAN\""
                  },
                  {
                    "name": "Display",
                    "value": "\"inline-block\""
                  }
                ],
                "Children": [
                  {
                    "Name": "dLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Tooltip",
                        "value": "\"Slit Separation = 0 \u03bcm\""
                      },
                      {
                        "name": "Text",
                        "value": "\"d = \""
                      },
                      {
                        "name": "Visibility",
                        "value": "singleSlit===false"
                      }
                    ]
                  },
                  {
                    "Name": "dField",
                    "Type": "ParsedField",
                    "Properties": [
                      {
                        "name": "Format",
                        "value": "\"0.00\""
                      },
                      {
                        "name": "Background",
                        "value": "\"CYAN\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Slit Separation = 0 \u03bcm\""
                      },
                      {
                        "name": "Value",
                        "value": "dr"
                      },
                      {
                        "name": "OnChange",
                        "value": "dr = Math.max(3,dr);\ndr = Math.min(4,dr);\n"
                      },
                      {
                        "name": "Visibility",
                        "value": "singleSlit===false"
                      },
                      {
                        "name": "Width",
                        "value": "\"4.5vw\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ]
                  },
                  {
                    "Name": "dUnitLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"\u03bcm\""
                      },
                      {
                        "name": "Visibility",
                        "value": "singleSlit===false"
                      }
                    ]
                  },
                  {
                    "Name": "dSlider",
                    "Type": "Slider",
                    "Properties": [
                      {
                        "name": "Minimum",
                        "value": "3"
                      },
                      {
                        "name": "Maximum",
                        "value": "4"
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Slit Separation = 0 \u03bcm\""
                      },
                      {
                        "name": "Value",
                        "value": "dr"
                      },
                      {
                        "name": "OnChange",
                        "value": "_initialize()"
                      },
                      {
                        "name": "Visibility",
                        "value": "singleSlit===false"
                      },
                      {
                        "name": "Disabled",
                        "value": "singleSlit===true"
                      },
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "showLCheckBox",
                "Type": "CheckBox",
                "Properties": [
                  {
                    "name": "Checked",
                    "value": "screenshow"
                  },
                  {
                    "name": "OnCheckOff",
                    "value": "Width1 = \"100%\";\nWidth2 = \"0%\";"
                  },
                  {
                    "name": "Background",
                    "value": "\"white\""
                  },
                  {
                    "name": "Tooltip",
                    "value": "\"show screen\""
                  },
                  {
                    "name": "OnCheckOn",
                    "value": "Width1 = \"50%\";\nWidth2 = \"50%\";"
                  }
                ]
              },
              {
                "Name": "LadjustedPanel",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "CSS",
                    "value": "{padding:\"10px\"}"
                  },
                  {
                    "name": "Display",
                    "value": "\"inline-block\""
                  }
                ],
                "Children": [
                  {
                    "Name": "LadjustedLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Background",
                        "value": "\"white\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"distance from slit to screen\""
                      },
                      {
                        "name": "Text",
                        "value": "\"L = \""
                      }
                    ]
                  },
                  {
                    "Name": "LadjustedField",
                    "Type": "ParsedField",
                    "Properties": [
                      {
                        "name": "Format",
                        "value": "\"0.00\""
                      },
                      {
                        "name": "Background",
                        "value": "\"white\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"distance in x direction\""
                      },
                      {
                        "name": "Value",
                        "value": "Ladjusted"
                      },
                      {
                        "name": "OnChange",
                        "value": "L = Math.max(0.1, L);\nL = Math.min(1.0, L);\nL = Ladjusted*200;\n_initialize();"
                      },
                      {
                        "name": "Width",
                        "value": "\"5vw\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ]
                  },
                  {
                    "Name": "LadjustedUnitLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Background",
                        "value": "\"white\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"m\""
                      },
                      {
                        "name": "Text",
                        "value": "\"m\""
                      }
                    ]
                  },
                  {
                    "Name": "LadjustedSlider",
                    "Type": "Slider",
                    "Properties": [
                      {
                        "name": "Minimum",
                        "value": "0.1"
                      },
                      {
                        "name": "Maximum",
                        "value": "1.0"
                      },
                      {
                        "name": "Background",
                        "value": "\"White\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"distance from slit to screen in m\""
                      },
                      {
                        "name": "Value",
                        "value": "Ladjusted"
                      },
                      {
                        "name": "OnChange",
                        "value": "L = Ladjusted*200;\nlightPalette(lambdar);\n_initialize();"
                      },
                      {
                        "name": "Width",
                        "value": "\"100%\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "resetButton2",
                "Type": "Button",
                "Properties": [
                  {
                    "name": "Tooltip",
                    "value": "\"reset simulation\""
                  },
                  {
                    "name": "OnPress",
                    "value": "_reset();"
                  },
                  {
                    "name": "Text",
                    "value": "\"\u21bbReset\""
                  },
                  {
                    "name": "OnClick",
                    "value": "_reset();"
                  },
                  {
                    "name": "Width",
                    "value": "\"10vw\""
                  },
                  {
                    "name": "Font",
                    "value": "fontb"
                  }
                ]
              }
            ]
          },
          {
            "Name": "controlPanel2",
            "Type": "Panel",
            "Expanded": "true",
            "Properties": [
              {
                "name": "Width",
                "value": "Width"
              },
              {
                "name": "Font",
                "value": "font"
              },
              {
                "name": "Display",
                "value": "screenshow?\"inline-flex\":\"none\""
              }
            ],
            "Children": [
              {
                "Name": "yPanel",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"MAGENTA\""
                  },
                  {
                    "name": "Display",
                    "value": "\"none\""
                  }
                ],
                "Children": [
                  {
                    "Name": "yCheckBox",
                    "Type": "CheckBox",
                    "Properties": [
                      {
                        "name": "Checked",
                        "value": "ypshow"
                      },
                      {
                        "name": "Background",
                        "value": "\"MAGENTA\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"show ruler measurement \""
                      },
                      {
                        "name": "Foreground",
                        "value": "\"WHITE\""
                      },
                      {
                        "name": "Text",
                        "value": "\"y =\""
                      }
                    ]
                  },
                  {
                    "Name": "yLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Background",
                        "value": "\"MAGENTA\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"y direction measurement from central line\""
                      },
                      {
                        "name": "Foreground",
                        "value": "\"WHITE\""
                      },
                      {
                        "name": "Display",
                        "value": "\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "ySlider",
                    "Type": "Slider",
                    "Properties": [
                      {
                        "name": "Minimum",
                        "value": "-100"
                      },
                      {
                        "name": "Maximum",
                        "value": "100"
                      },
                      {
                        "name": "Background",
                        "value": "\"MAGENTA\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"measurement in y direction\""
                      },
                      {
                        "name": "Value",
                        "value": "yvalueslider"
                      },
                      {
                        "name": "OnChange",
                        "value": "yvalue = yvalueslider/100;\n_initialize();"
                      },
                      {
                        "name": "Disabled",
                        "value": "ypshow===false"
                      },
                      {
                        "name": "Width",
                        "value": "\"50%\""
                      }
                    ]
                  },
                  {
                    "Name": "yField",
                    "Type": "ParsedField",
                    "Properties": [
                      {
                        "name": "Format",
                        "value": "\"0.000\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"measurement in y direction\""
                      },
                      {
                        "name": "Value",
                        "value": "yvalue"
                      },
                      {
                        "name": "OnChange",
                        "value": "y = Math.max(-100, y);\ny = Math.min(100, y);\ny = yvalue*100;"
                      },
                      {
                        "name": "Editable",
                        "value": "ypshow"
                      },
                      {
                        "name": "Width",
                        "value": "\"4vw\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ]
                  },
                  {
                    "Name": "yUnitLabel",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Background",
                        "value": "\"MAGENTA\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"metre\""
                      },
                      {
                        "name": "Foreground",
                        "value": "\"WHITE\""
                      },
                      {
                        "name": "Text",
                        "value": "\"m\""
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "showEnvelopeCheckBox2",
                "Type": "CheckBox",
                "Properties": [
                  {
                    "name": "Checked",
                    "value": "showXY"
                  },
                  {
                    "name": "Background",
                    "value": "\"MAGENTA\""
                  },
                  {
                    "name": "Tooltip",
                    "value": "\"Envelope\""
                  },
                  {
                    "name": "Disabled",
                    "value": "!screenshow"
                  }
                ]
              },
              {
                "Name": "showIntensityCheckBox2",
                "Type": "CheckBox",
                "Properties": [
                  {
                    "name": "Checked",
                    "value": "showintensity"
                  },
                  {
                    "name": "Background",
                    "value": "\"Yellow\""
                  },
                  {
                    "name": "Tooltip",
                    "value": "\"show intensity\""
                  },
                  {
                    "name": "Text",
                    "value": "\"Intensity =\""
                  },
                  {
                    "name": "Disabled",
                    "value": "!screenshow"
                  }
                ]
              },
              {
                "Name": "intensityPanel2",
                "Type": "Panel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Background",
                    "value": "\"YELLOW\""
                  },
                  {
                    "name": "Width",
                    "value": "\"50%\""
                  },
                  {
                    "name": "Display",
                    "value": "\"inline-block\""
                  }
                ],
                "Children": [
                  {
                    "Name": "IntensityLabel2",
                    "Type": "Label",
                    "Properties": [
                      {
                        "name": "Text",
                        "value": "\"Intensity =\""
                      },
                      {
                        "name": "Display",
                        "value": "\"none\""
                      }
                    ]
                  },
                  {
                    "Name": "IntensityField2",
                    "Type": "ParsedField",
                    "Properties": [
                      {
                        "name": "Format",
                        "value": "\"0\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Intensity Scale\""
                      },
                      {
                        "name": "Value",
                        "value": "yscale"
                      },
                      {
                        "name": "OnChange",
                        "value": "yscale = Math.max(1/N, yscale);\nyscale = Math.min(400/N, yscale);\n"
                      },
                      {
                        "name": "Width",
                        "value": "\"10vw\""
                      },
                      {
                        "name": "Font",
                        "value": "font"
                      }
                    ]
                  },
                  {
                    "Name": "IntensitySlider2",
                    "Type": "Slider",
                    "Properties": [
                      {
                        "name": "Minimum",
                        "value": "1/N"
                      },
                      {
                        "name": "Maximum",
                        "value": "400/N"
                      },
                      {
                        "name": "Format",
                        "value": "\"0.00\""
                      },
                      {
                        "name": "Tooltip",
                        "value": "\"Intensity Scale\""
                      },
                      {
                        "name": "Value",
                        "value": "yscale"
                      },
                      {
                        "name": "Disabled",
                        "value": "false"
                      },
                      {
                        "name": "Width",
                        "value": "\"70%\""
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Name": "displayPanel",
            "Type": "Panel",
            "Expanded": "true",
            "Properties": [
              {
                "name": "Width",
                "value": "Width"
              }
            ],
            "Children": [
              {
                "Name": "plottingPanel",
                "Type": "PlottingPanel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "MinimumX",
                    "value": "xmin/2"
                  },
                  {
                    "name": "Gutters",
                    "value": "[0,0,0,0]"
                  },
                  {
                    "name": "MinimumY",
                    "value": "ymin"
                  },
                  {
                    "name": "AutoScaleY",
                    "value": "false"
                  },
                  {
                    "name": "AutoScaleX",
                    "value": "false"
                  },
                  {
                    "name": "Enabled",
                    "value": "true"
                  },
                  {
                    "name": "Height",
                    "value": "\"70vh\""
                  },
                  {
                    "name": "OnDoubleClick",
                    "value": "toggleFullScreen();"
                  },
                  {
                    "name": "Width",
                    "value": "Width1"
                  },
                  {
                    "name": "MaximumY",
                    "value": "ymax"
                  },
                  {
                    "name": "MaximumX",
                    "value": "xmax"
                  }
                ],
                "Children": [
                  {
                    "Name": "background",
                    "Type": "Shape2D",
                    "Properties": [
                      {
                        "name": "FillColor",
                        "value": "\"BLACK\""
                      },
                      {
                        "name": "SizeX",
                        "value": "2*200"
                      },
                      {
                        "name": "ShapeType",
                        "value": "\"RECTANGLE\""
                      },
                      {
                        "name": "X",
                        "value": "0"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"BLACK\""
                      },
                      {
                        "name": "Y",
                        "value": "0"
                      },
                      {
                        "name": "SizeY",
                        "value": "2*200"
                      }
                    ]
                  },
                  {
                    "Name": "laser4",
                    "Type": "Shape2D",
                    "Properties": [
                      {
                        "name": "FillColor",
                        "value": "%colorlookang%"
                      },
                      {
                        "name": "SizeX",
                        "value": "0.45*200"
                      },
                      {
                        "name": "RelativePosition",
                        "value": "\"EAST\""
                      },
                      {
                        "name": "ShapeType",
                        "value": "\"RECTANGLE\""
                      },
                      {
                        "name": "X",
                        "value": "0"
                      },
                      {
                        "name": "LineColor",
                        "value": "%colorlookang%"
                      },
                      {
                        "name": "Y",
                        "value": "0"
                      },
                      {
                        "name": "SizeY",
                        "value": "0.07*200"
                      }
                    ]
                  },
                  {
                    "Name": "slits",
                    "Type": "Shape2D",
                    "Properties": [
                      {
                        "name": "FillColor",
                        "value": "\"CYAN\""
                      },
                      {
                        "name": "MovesGroup",
                        "value": "false"
                      },
                      {
                        "name": "SizeX",
                        "value": "4"
                      },
                      {
                        "name": "RelativePosition",
                        "value": "\"CENTERED\""
                      },
                      {
                        "name": "ShapeType",
                        "value": "\"RECTANGLE\""
                      },
                      {
                        "name": "X",
                        "value": "0"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"CYAN\""
                      },
                      {
                        "name": "Y",
                        "value": "0"
                      },
                      {
                        "name": "SizeY",
                        "value": "40"
                      }
                    ]
                  },
                  {
                    "Name": "hide",
                    "Type": "Group2D",
                    "Expanded": "true",
                    "Properties": [
                      {
                        "name": "Visibility",
                        "value": "false"
                      }
                    ],
                    "Children": [
                      {
                        "Name": "singleGroup",
                        "Type": "Group2D",
                        "Expanded": "true",
                        "Properties": [
                          {
                            "name": "Visibility",
                            "value": "N===1"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "hole",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "OnRelease",
                                "value": "_initialize()"
                              },
                              {
                                "name": "FillColor",
                                "value": "\"BLACK\""
                              },
                              {
                                "name": "SizeX",
                                "value": "5"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"CENTERED\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "X",
                                "value": "0"
                              },
                              {
                                "name": "LineColor",
                                "value": "\"BLACK\""
                              },
                              {
                                "name": "Y",
                                "value": "0"
                              },
                              {
                                "name": "SizeY",
                                "value": "ar/1"
                              },
                              {
                                "name": "LineWidth",
                                "value": "1"
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "Name": "doubleholeGroup",
                        "Type": "Group2D",
                        "Expanded": "false",
                        "Properties": [
                          {
                            "name": "X",
                            "value": "0.0"
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "Visibility",
                            "value": "N>=2"
                          }
                        ],
                        "Children": [
                          {
                            "Name": "hole1",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "OnRelease",
                                "value": "_initialize()"
                              },
                              {
                                "name": "FillColor",
                                "value": "\"BLACK\""
                              },
                              {
                                "name": "SizeX",
                                "value": "5"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"CENTERED\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "X",
                                "value": "0"
                              },
                              {
                                "name": "LineColor",
                                "value": "\"BLACK\""
                              },
                              {
                                "name": "Y",
                                "value": "dr/2/1"
                              },
                              {
                                "name": "SizeY",
                                "value": "ar/1"
                              },
                              {
                                "name": "LineWidth",
                                "value": "1"
                              }
                            ]
                          },
                          {
                            "Name": "hole2",
                            "Type": "Shape2D",
                            "Properties": [
                              {
                                "name": "OnRelease",
                                "value": "_initialize()"
                              },
                              {
                                "name": "FillColor",
                                "value": "\"Black\""
                              },
                              {
                                "name": "SizeX",
                                "value": "5"
                              },
                              {
                                "name": "RelativePosition",
                                "value": "\"CENTERED\""
                              },
                              {
                                "name": "ShapeType",
                                "value": "\"RECTANGLE\""
                              },
                              {
                                "name": "X",
                                "value": "0"
                              },
                              {
                                "name": "LineColor",
                                "value": "\"Black\""
                              },
                              {
                                "name": "Y",
                                "value": "-dr/2/1"
                              },
                              {
                                "name": "SizeY",
                                "value": "ar/1"
                              },
                              {
                                "name": "LineWidth",
                                "value": "1"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "mutliSlit",
                    "Type": "Group2D",
                    "Expanded": "true",
                    "Properties": [],
                    "Children": [
                      {
                        "Name": "shapeSet2D",
                        "Type": "ShapeSet2D",
                        "Properties": [
                          {
                            "name": "X",
                            "value": "0"
                          },
                          {
                            "name": "Y",
                            "value": "slitY"
                          },
                          {
                            "name": "SizeX",
                            "value": "5"
                          },
                          {
                            "name": "SizeY",
                            "value": "ar/N"
                          },
                          {
                            "name": "ShapeType",
                            "value": "\"ELLIPSE\""
                          },
                          {
                            "name": "NumberOfElements",
                            "value": "N"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "source",
                    "Type": "Arrow2D",
                    "Properties": [
                      {
                        "name": "MarkEnd",
                        "value": "\"TRIANGLE\""
                      },
                      {
                        "name": "FillColor",
                        "value": "\"rgb(200,220,208,255)\""
                      },
                      {
                        "name": "SizeX",
                        "value": "-0.05*200"
                      },
                      {
                        "name": "MarkEndHeight",
                        "value": "200"
                      },
                      {
                        "name": "X",
                        "value": "-0.45*200"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"White\""
                      },
                      {
                        "name": "Y",
                        "value": "0"
                      },
                      {
                        "name": "MarkProportion",
                        "value": "2"
                      },
                      {
                        "name": "SizeY",
                        "value": "0"
                      },
                      {
                        "name": "MarkEndWidth",
                        "value": "200"
                      }
                    ]
                  },
                  {
                    "Name": "screen2",
                    "Type": "Segment2D",
                    "Properties": [
                      {
                        "name": "MovesGroup",
                        "value": "true"
                      },
                      {
                        "name": "SizeX",
                        "value": "0"
                      },
                      {
                        "name": "EnabledSize",
                        "value": "\"ENABLED_NONE\""
                      },
                      {
                        "name": "X",
                        "value": "L"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"White\""
                      },
                      {
                        "name": "Y",
                        "value": "0"
                      },
                      {
                        "name": "Visibility",
                        "value": "screenshow"
                      },
                      {
                        "name": "SizeY",
                        "value": "ymax-ymin"
                      },
                      {
                        "name": "LineWidth",
                        "value": "6"
                      },
                      {
                        "name": "EnabledPosition",
                        "value": "\"ENABLED_X\""
                      },
                      {
                        "name": "OnDrag",
                        "value": "_initialize()"
                      },
                      {
                        "name": "Offset",
                        "value": "\"CENTERED\""
                      }
                    ]
                  },
                  {
                    "Name": "pointGroup",
                    "Type": "Group2D",
                    "Expanded": "false",
                    "Properties": [
                      {
                        "name": "Visibility",
                        "value": "ypshow"
                      }
                    ],
                    "Children": [
                      {
                        "Name": "P",
                        "Type": "Shape2D",
                        "Properties": [
                          {
                            "name": "FillColor",
                            "value": "\"rgb(255,0,255,50)\""
                          },
                          {
                            "name": "SizeX",
                            "value": "20"
                          },
                          {
                            "name": "ShapeType",
                            "value": "\"WHEEL\""
                          },
                          {
                            "name": "X",
                            "value": "L"
                          },
                          {
                            "name": "LineColor",
                            "value": "\"Magenta\""
                          },
                          {
                            "name": "Y",
                            "value": "yvalue*100"
                          },
                          {
                            "name": "SizeY",
                            "value": "20"
                          },
                          {
                            "name": "PixelSize",
                            "value": "true"
                          },
                          {
                            "name": "LineWidth",
                            "value": "1"
                          },
                          {
                            "name": "EnabledPosition",
                            "value": "\"ENABLED_Y\""
                          }
                        ]
                      },
                      {
                        "Name": "distArrow",
                        "Type": "Arrow2D",
                        "Properties": [
                          {
                            "name": "MarkEnd",
                            "value": "\"ANGLE\""
                          },
                          {
                            "name": "FillColor",
                            "value": "\"Magenta\""
                          },
                          {
                            "name": "SizeX",
                            "value": "0"
                          },
                          {
                            "name": "X",
                            "value": "L"
                          },
                          {
                            "name": "LineColor",
                            "value": "\"Magenta\""
                          },
                          {
                            "name": "Y",
                            "value": "0"
                          },
                          {
                            "name": "SizeY",
                            "value": "yvalue*100"
                          },
                          {
                            "name": "LineWidth",
                            "value": "3"
                          }
                        ]
                      },
                      {
                        "Name": "xText",
                        "Type": "Text2D",
                        "Properties": [
                          {
                            "name": "Transformation",
                            "value": "1.57"
                          },
                          {
                            "name": "FillColor",
                            "value": "\"Magenta\""
                          },
                          {
                            "name": "SizeX",
                            "value": "size*5"
                          },
                          {
                            "name": "RelativePosition",
                            "value": "\"EAST\""
                          },
                          {
                            "name": "X",
                            "value": "L-size/2"
                          },
                          {
                            "name": "LineColor",
                            "value": "\"Magenta\""
                          },
                          {
                            "name": "Y",
                            "value": "y+ypspace"
                          },
                          {
                            "name": "Text",
                            "value": "%ystring%"
                          },
                          {
                            "name": "SizeY",
                            "value": "size*5"
                          },
                          {
                            "name": "PixelSize",
                            "value": "true"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "Name": "scalarField",
                    "Type": "ScalarField2D",
                    "Properties": [
                      {
                        "name": "ZData",
                        "value": "sum2"
                      },
                      {
                        "name": "Colors",
                        "value": "colors2"
                      },
                      {
                        "name": "MinimumZ",
                        "value": "0"
                      },
                      {
                        "name": "SizeX",
                        "value": "200-0"
                      },
                      {
                        "name": "AutoUpdate",
                        "value": "true"
                      },
                      {
                        "name": "X",
                        "value": "100"
                      },
                      {
                        "name": "SizeY",
                        "value": "100-(-100)"
                      },
                      {
                        "name": "MaximumZ",
                        "value": "2"
                      }
                    ]
                  }
                ]
              },
              {
                "Name": "rightPanel",
                "Type": "DrawingPanel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Gutters",
                    "value": "[0,0,0,0]"
                  },
                  {
                    "name": "ShowCoordinates",
                    "value": "true"
                  },
                  {
                    "name": "MinimumY",
                    "value": "xmin"
                  },
                  {
                    "name": "AutoScaleY",
                    "value": "true"
                  },
                  {
                    "name": "AutoScaleX",
                    "value": "true"
                  },
                  {
                    "name": "OnPress",
                    "value": "computeIntensityy();\ncompute_y();"
                  },
                  {
                    "name": "Visibility",
                    "value": "screenshow"
                  },
                  {
                    "name": "Height",
                    "value": "\"70vh\""
                  },
                  {
                    "name": "Width",
                    "value": "Width2"
                  },
                  {
                    "name": "MaximumY",
                    "value": "xmax"
                  },
                  {
                    "name": "OnDrag",
                    "value": "computeIntensityy();\ncompute_y();"
                  },
                  {
                    "name": "TLMessage",
                    "value": "print?\"\":\"screen view\""
                  }
                ],
                "Children": [
                  {
                    "Name": "mesh2D",
                    "Type": "Mesh2D",
                    "Properties": []
                  },
                  {
                    "Name": "scalarField2",
                    "Type": "ScalarField2D",
                    "Properties": [
                      {
                        "name": "ZData",
                        "value": "Intensityy"
                      },
                      {
                        "name": "Colors",
                        "value": "colors2"
                      },
                      {
                        "name": "MinimumZ",
                        "value": "0"
                      },
                      {
                        "name": "SizeX",
                        "value": "spectrumy2-spectrumy1"
                      },
                      {
                        "name": "SizeY",
                        "value": "xmax-xmin"
                      },
                      {
                        "name": "MaximumZ",
                        "value": "0.05/yscale/N"
                      }
                    ]
                  },
                  {
                    "Name": "singleSlitTrail",
                    "Type": "Trail2D",
                    "Properties": [
                      {
                        "name": "Connected",
                        "value": "true"
                      },
                      {
                        "name": "Measured",
                        "value": "false"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"MAGENTA\""
                      },
                      {
                        "name": "InputX",
                        "value": "YP2"
                      },
                      {
                        "name": "Visibility",
                        "value": "showXY"
                      },
                      {
                        "name": "InputY",
                        "value": "XP"
                      },
                      {
                        "name": "NoRepeat",
                        "value": "true"
                      },
                      {
                        "name": "LineWidth",
                        "value": "5"
                      }
                    ]
                  },
                  {
                    "Name": "multipleSlitsTrail",
                    "Type": "Trail2D",
                    "Properties": [
                      {
                        "name": "Connected",
                        "value": "true"
                      },
                      {
                        "name": "Measured",
                        "value": "false"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"YELLOW\""
                      },
                      {
                        "name": "InputX",
                        "value": "YP"
                      },
                      {
                        "name": "Visibility",
                        "value": "showintensity"
                      },
                      {
                        "name": "InputY",
                        "value": "XP"
                      },
                      {
                        "name": "NoRepeat",
                        "value": "true"
                      },
                      {
                        "name": "LineWidth",
                        "value": "5"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Name": "htmlPanel",
            "Type": "Panel",
            "Expanded": "true",
            "Properties": [],
            "Children": [
              {
                "Name": "controls",
                "Type": "Panel",
                "Properties": [
                  {
                    "name": "Html",
                    "value": "<h2> Controls </h2>\n<p>\u03bb = refers to the wavelength of the light emitted by the light source. \u03bb = 400 \u03bcm is Blue and \u03bb = 700 \u03bcm is Red light.</p>\n<p>N = refers to the number of slits, vertical holes for the light to diffract out to the screen on the right.</p>\n<p>a = refers to the slit width, the size of the holes for light to diffract or pass through.</p>\n<p>d = refers to the slit separation, distance between the slits.</p>\n<p>checkbox to show the intensity on the screen.</p>\n<p>L = refers to the distance of the diffraction slits position to the screen where the diffraction pattern falls on.</p>\n<p>checkbox to show the intensity envelope of the diffraction pattern</p>\n<p>checkbox to show the individual intensity</p>\n<p>Intensity = refers to the strength of the light, higher intensity allows easier visualization, lower intensity provides sharper diffraction pattern distinctions.</p>"
                  }
                ]
              },
              {
                "Name": "description",
                "Type": "Panel",
                "Properties": [
                  {
                    "name": "Html",
                    "value": "<h2> Description </h2>\n<h4>Multiple Slit Diffraction</h4>\n\n<p>The EJSS Multiple Slit Diffraction model allows the user to simulate Fraunhofer diffraction through single or multiple slits. The user can modify the number of slits, the slit width, the slit separation and the wavelength of the incident light. The scale of the diffraction pattern can also be changed and a plot of the light intensity can be toggled on and off with a checkbox.</p>\n\n<p>The minima of single slit diffraction are determined by:</p>\n\n<p>D sin \u04e8 = m \u03bb , \u00a0where m = 1,2,3,......</p>\n\n<p>where D is the single slit width.</p>\n\n<p>For double slit interference, constructive interference (bright spots) are found at:</p>\n\n<p>d sin \u04e8 = m \u03bb , \u00a0where m = 1,2,3,......</p>\n\n<p>and destructive interference dark spots are located at:</p> \n\n<p>d sin \u04e8 = (m+0.5) \u03bb , \u00a0where m = 1,2,3,......</p>\n\n<p>where d is the distance between slits.</p>\n\n<p>Multiple slits will sharpen (narrow) the regions of constructive interference. The overall pattern from multiple slits will be the two-slit pattern multiplied by the single slit diffraction envelope.</p>\n<p>References:</p>\n<p>Douglas Giancoli, Physics: Principles with Applications sixth edition, pages 664-675, Eugene Hecht, Optics fourth edition, pages 460-464.</p>\n\n<p>Credits:</p>\n\n<p>The Multiple Slit Diffraction model was created by Fu-Kwun Hwang using the Easy JavaScript Simulations (EJSS) modeling tool. It was adapted to EJSS version 4.1 by Robert Mohr and Wolfgang Christian at Davidson College. You can examine and modify the model for this simulation if you have EJSS installed by right-clicking within the diffraction frame and selecting \"Open Ejss Model\" from the pop-up menu.</p> \n\n<p>Information about EJS is available at: <a href=\"http://www.um.es/fem/Ejs/\">\"http://www.um.es/fem/Ejs/\"</a> and in the OSP ComPADRE collection <a href=\"http://www.compadre.org/OSP/\">\"http://www.compadre.org/OSP/\"</a></p>\n\n<p>This remixed model is by Lookang based on the earlier EJSS models by Fu-Kwun Hwang, Robert Mohr and Wolfgang Christian and Andrew Duffy.</p>"
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "RootProperties": []
  },
  "metadata": {
    "APP": "WebEJS",
    "CreatedWith": "WebEJS : The web version of Easy JavaScript Simulations",
    "MoreInfo": "WebEJS 1.1",
    "version": "https://www.um.es/fem/wikis/webejs/"
  }
}