{
  "information": {
    "Title": "webEJS Open Source Brownian Motion Gas Model ",
    "Author": [
      "Francisco Esquembre",
      "Fu-Kwun Hwang",
      "lookang"
    ],
    "AuthorLogo": [
      "./01authorPacoEsquembre2011.png",
      "./01authorfu-kwun.hwang.png",
      "./01authorlookang50x50.png"
    ],
    "Password": "",
    "Keywords": "",
    "Abstract": "http://weelookang.blogspot.sg/2015/08/ejss-brownian-motion-model.html\nEjs Open Source Brownian Motion Gas Model Java Applet by Professor Paco and Hwang, now remixed by lookang so i can learn from examining the codes legally because the condition of use is attribution of original authors.\n\nReference:\nhttp://www.phy.ntnu.edu.tw/ntnujava/index.php?topic=178.msg791#msg791\n\nBrownian motion\nThis is a simulation of Brownian motion of a particle that collides with a large set of smaller particles which move with uniform motion in different random directions.",
    "Copyright": "Creative Commons Attribution",
    "Level": "A level ",
    "Language": "English",
    "Logo": [
      "./screenshot1.png"
    ],
    "RunAlways": "true",
    "ModelTab": "",
    "ModelTabTitle": "",
    "ModelName": "",
    "FixedNavigationBar": "false",
    "CSSFile": "",
    "DetectedFiles": [
      "./01authorPacoEsquembre2011.png",
      "./01authorfu-kwun.hwang.png",
      "./01authorlookang50x50.png",
      "./screenshot1.png"
    ],
    "AuxiliaryFiles": [
      "./Brownian motion/"
    ],
    "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": "false",
    "UseDeltaForODE": "false"
  },
  "description": {
    "pages": [
      {
        "Name": "Brownian motion",
        "Active": "true",
        "Internal": "false",
        "Type": "DESCRIPTION_EDITOR",
        "Locale": "_default_",
        "Title": "Brownian motion",
        "External": "false",
        "Code": "<html>\n<head></head>\n<body>\n<p> <a href=\"http://weelookang.blogspot.sg/2015/08/ejss-brownian-motion-model.htmlhttp://weelookang.blogspot.sg/2015/08/ejss-brownian-motion-model.html\">http://weelookang.blogspot.sg/2015/08/ejss-brownian-motion-model.html</a> </p><h1> </h1><p> </p><h1> </h1><p> </p><h1>      Brownian motion    </h1><p> </p><p>      This is a simulation of brownian motion of a particle that collides with       a large set of smaller particles which move with uniform motion in       different random directions.    </p><p> </p><p>      For more info:    </p><p> </p><p> <a href=\"http://weelookang.blogspot.sg/2010/06/ejs-open-source-brownian-motion-gas.html\">http://weelookang.blogspot.sg/2010/06/ejs-open-source-brownian-motion-gas.html</a> </p><p> </p>\n</body>\n</html>"
      },
      {
        "Name": "Copyright",
        "Active": "true",
        "Internal": "false",
        "Type": "DESCRIPTION_EDITOR",
        "Locale": "_default_",
        "Title": "Copyright",
        "External": "false",
        "Code": "<html>\n<head></head>\n<body>\n<p> </p><p>      Original Author:    </p><p> </p><p>      Simulaci\u00f3n preparada por <strong>Francisco Esquembre</strong> para el libro    </p><p> </p><p> <strong>Creaci\u00f3n de Simulaciones Interactivas en Java.</strong><br><em><strong>Aplicaci\u00f3n       a la Ense\u00f1anza de la F\u00edsica</strong></em> </p><p> </p><p>      (C) Pearson Educaci\u00f3n 2004.    </p><p> </p><p>      Modified by Fu-Kwun Hwang    </p><p> </p><p>      http://www.phy.ntnu.edu.tw/ntnujava/    </p><p> </p>\n</body>\n</html>"
      }
    ]
  },
  "model": {
    "variables": {
      "pages": [
        {
          "Name": "Common",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "print",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "fontb",
              "Value": "\"normal bold 2vw \"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "font",
              "Value": "\"normal normal 2vw \"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "xmin",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Minimum X coordinate",
              "Domain": "public"
            },
            {
              "Name": "xmax",
              "Value": "10",
              "Type": "double",
              "Dimension": "",
              "Comment": "Maximum X coordinate",
              "Domain": "public"
            },
            {
              "Name": "ymin",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "Minimum Y coordinate",
              "Domain": "public"
            },
            {
              "Name": "ymax",
              "Value": "10",
              "Type": "double",
              "Dimension": "",
              "Comment": "Maximum Y coordinate",
              "Domain": "public"
            },
            {
              "Name": "t",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "time",
              "Domain": "public"
            },
            {
              "Name": "dt",
              "Value": "0.1",
              "Type": "double",
              "Dimension": "",
              "Comment": "Increment of time",
              "Domain": "public"
            },
            {
              "Name": "ep",
              "Value": "1",
              "Type": "double",
              "Dimension": "",
              "Comment": "restitution coefficient for the collision with the walls",
              "Domain": "public"
            },
            {
              "Name": "ed",
              "Value": "1.0",
              "Type": "double",
              "Dimension": "",
              "Comment": "restitution coefficient for the collision with the smaller particles",
              "Domain": "public"
            },
            {
              "Name": "np",
              "Value": "600",
              "Type": "int",
              "Dimension": "",
              "Comment": "number of  points for the trace of the particle 0",
              "Domain": "public"
            },
            {
              "Name": "expert",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "track",
              "Value": "",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "language",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "l_play",
              "Value": "\"play\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "l_pause",
              "Value": "\"pause\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "l_reset",
              "Value": "\"reset\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "l_init",
              "Value": "\"initialize\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "l_step",
              "Value": "\"step >\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "l_viewv",
              "Value": "\"view velocity\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "label",
              "Value": "\"play\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "l_size",
              "Value": "\"size=0.0\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "Disks",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "elementinteracted",
              "Value": "-1",
              "Type": "int",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "nmax",
              "Value": "_isMobile  ? 50 : 100",
              "Type": "int",
              "Dimension": "",
              "Comment": "number of particles maximum",
              "Domain": "public"
            },
            {
              "Name": "n",
              "Value": "nmax",
              "Type": "int",
              "Dimension": "",
              "Comment": "number of particles",
              "Domain": "public"
            },
            {
              "Name": "x",
              "Value": "",
              "Type": "double",
              "Dimension": "[n]",
              "Comment": "X coordinates for the disks",
              "Domain": "public"
            },
            {
              "Name": "color",
              "Value": "\"rgba(255,255,255,1)\"",
              "Type": "String",
              "Dimension": "[n]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "vx",
              "Value": "",
              "Type": "double",
              "Dimension": "[n]",
              "Comment": "X coordinates for the velocities of the disks",
              "Domain": "public"
            },
            {
              "Name": "y",
              "Value": "",
              "Type": "double",
              "Dimension": "[n]",
              "Comment": "Y coordinates for the disks",
              "Domain": "public"
            },
            {
              "Name": "vy",
              "Value": "",
              "Type": "double",
              "Dimension": "[n]",
              "Comment": "Y coordinates for the velocities of the disks",
              "Domain": "public"
            },
            {
              "Name": "diameter",
              "Value": "0.2",
              "Type": "double",
              "Dimension": "[n]",
              "Comment": "diameters of the disks",
              "Domain": "public"
            },
            {
              "Name": "mass",
              "Value": "1",
              "Type": "double",
              "Dimension": "[n]",
              "Comment": "mass of the disks",
              "Domain": "public"
            },
            {
              "Name": "nv",
              "Value": "30",
              "Type": "int",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "V",
              "Value": "",
              "Type": "double",
              "Dimension": "[nv]",
              "Comment": "velocity array",
              "Domain": "public"
            },
            {
              "Name": "ID",
              "Value": "",
              "Type": "double",
              "Dimension": "[nv]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "b",
              "Value": "-0.25",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "size",
              "Value": "0.0",
              "Type": "double",
              "Dimension": "",
              "Comment": "actual dimensions of the particle 0",
              "Domain": "public"
            },
            {
              "Name": "px",
              "Value": "0.0",
              "Type": "double",
              "Dimension": "",
              "Comment": "particle coordinate x of particle 0",
              "Domain": "public"
            },
            {
              "Name": "py",
              "Value": "0.0",
              "Type": "double",
              "Dimension": "",
              "Comment": "particle coordinate y of particle 0",
              "Domain": "public"
            },
            {
              "Name": "scale",
              "Value": "0.1",
              "Type": "double",
              "Dimension": "",
              "Comment": "scale the velocity vector arrow",
              "Domain": "public"
            },
            {
              "Name": "sizen",
              "Value": "5.0",
              "Type": "double",
              "Dimension": "",
              "Comment": "size of large particle",
              "Domain": "public"
            },
            {
              "Name": "vmax",
              "Value": "(xmax-xmin)/2",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "l_m",
              "Value": "",
              "Type": "String",
              "Dimension": "[n]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "speed",
              "Value": "",
              "Type": "double",
              "Dimension": "[n]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "KE",
              "Value": "",
              "Type": "double",
              "Dimension": "[n]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "TKE",
              "Value": "0.0",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "MOM",
              "Value": "",
              "Type": "double",
              "Dimension": "[n]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "TMOM",
              "Value": "0.0",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "Events",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "TOLERANCE",
              "Value": "0.001",
              "Type": "double",
              "Dimension": "",
              "Comment": "tolerance for the collisions",
              "Domain": "public"
            },
            {
              "Name": "horizontalRebound",
              "Value": "",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "whether there was a rebound with a horizontal wall",
              "Domain": "public"
            },
            {
              "Name": "rebound",
              "Value": "",
              "Type": "int",
              "Dimension": "",
              "Comment": "the disk that first rebounded with a wall",
              "Domain": "public"
            },
            {
              "Name": "collision",
              "Value": "",
              "Type": "int",
              "Dimension": "",
              "Comment": "the disk that collided",
              "Domain": "public"
            },
            {
              "Name": "collision2",
              "Value": "",
              "Type": "int",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "g",
              "Value": "0",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "showv",
              "Value": "",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "show velocity",
              "Domain": "public"
            },
            {
              "Name": "see",
              "Value": "",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "int",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        },
        {
          "Name": "lookang",
          "Active": "true",
          "Internal": "false",
          "Type": "VARIABLE_EDITOR",
          "PageComment": "",
          "Variables": [
            {
              "Name": "m",
              "Value": "1",
              "Type": "int",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "selected",
              "Value": "\"N = 100\"",
              "Type": "String",
              "Dimension": "[1]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "pxset",
              "Value": "",
              "Type": "double",
              "Dimension": "[m]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "pyset",
              "Value": "",
              "Type": "double",
              "Dimension": "[m]",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "temptext",
              "Value": "\"\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "double",
              "Dimension": "",
              "Comment": "",
              "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": "",
              "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": "",
              "Domain": "public"
            },
            {
              "Name": "world",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "graph",
              "Value": "true",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "disabledworld",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "disabled",
              "Value": "false",
              "Type": "boolean",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "text",
              "Value": "\"select options and observe motion of YELLOW pollen\"",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            },
            {
              "Name": "",
              "Value": "",
              "Type": "String",
              "Dimension": "",
              "Comment": "",
              "Domain": "public"
            }
          ]
        }
      ]
    },
    "initialization": {
      "pages": [
        {
          "Name": "Initialisation",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "Random initialization",
          "Code": "for (var i=1; i<n; i++) {\n  // Random initialization of the disks\n  x[i]  = xmin+0.5*diameter[i] + (xmax-xmin-diameter[i] )*Math.random();\n  vx[i] = vmax*(Math.random()-0.5);\n  y[i]  = ymin+0.5*diameter[i]  + (ymax-ymin-diameter[i] )*Math.random();\n  vy[i] = vmax*(Math.random()-0.5);\n}\n//vdistribution ();\nfor(var i=0;i<nv;i++)ID[i]=i;\n\nvx[0]=vy[0]=0.;\nx[0]=(xmax+xmin)/2; // put large particle at the centre of screen\ny[0]=(ymax+ymin)/2;\nsetSize();\n//if(_isPaused())playpause();\n\n"
        },
        {
          "Name": "lookang",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "if (showv==undefined){\r\n  showv=false;\r\n  }\r\n  \r\n  if (see==undefined){\r\n  see=false;\r\n  for (var i=1; i<n; i++) {\r\n  diameter[i] = 0.0 ;\r\n}\r\n\r\n  }"
        }
      ]
    },
    "evolution": {
      "information": {
        "FPS": "20",
        "SPD": "1",
        "RealTimeVariable": "",
        "Autoplay": "false"
      },
      "pages": [
        {
          "Name": "Motion",
          "Active": "true",
          "Internal": "false",
          "Type": "ODE_EDITOR",
          "Comment": "Uniform motion",
          "IndependentVariable": "t",
          "Increment": "dt",
          "Equations": [
            {
              "state": "x[i]",
              "rate": "vx[i]"
            },
            {
              "state": "y[i]",
              "rate": "vy[i]"
            },
            {
              "state": "vx[i]",
              "rate": "getA(i,vx)"
            },
            {
              "state": "vy[i]",
              "rate": "getA(i,vy)"
            },
            {
              "state": "",
              "rate": ""
            }
          ],
          "Method": "Euler",
          "AbsoluteTolerance": "",
          "PreliminaryCode": {
            "Code": "",
            "Comment": "Code to be executed before rate equations are evaluated"
          },
          "EventMaximumStep": "",
          "Events": {
            "pages": []
          },
          "ZenoEffect": {
            "Code": "",
            "Comment": "",
            "StopAfterEffect": "true"
          },
          "AccelerationIndependentOfVelocity": "false",
          "ForceSynchronization": "false",
          "UseBestInterpolation": "false",
          "EstimateFirstStep": "false",
          "MaximumNumberOfSteps": "10000",
          "DelayInitialCondition": {
            "Code": "",
            "Comment": ""
          },
          "Discontinuities": {
            "pages": []
          },
          "ErrorHandling": {
            "pages": [
              {
                "Type": "ERROR_EDITOR",
                "Name": "Error handling code",
                "Active": "true",
                "Internal": "false",
                "Code": "",
                "Comment": "",
                "ErrorType": "ANY_ERROR"
              }
            ]
          }
        }
      ]
    },
    "fixed_relations": {
      "pages": [
        {
          "Name": "Fixed Rel",
          "Active": "true",
          "Internal": "false",
          "Type": "CODE_EDITOR",
          "Comment": "",
          "Code": "\n\nvar min = 0;\nvar dx;\nvar d2;\nvar dvx;\n\nfor (var i=1; i<n; i++) {\n  for(var j=0;j<i;j++) {\n    // dx is delta x\n    // dy is delta y\n    // dm is distance mean\n    dx = x[j]-x[i], dy = y[j]-y[i], dm = (diameter[i]+diameter[j])/2;\n    // d2 is square of the dx*dx+dy*dy-dm*dm\n    d2 = dx*dx+dy*dy-dm*dm;\n    if (d2<min) {\n      // dvx is delta vx\n      // dvy is delta vy\n      dvx = vx[j]-vx[i], dvy = vy[j]-vy[i];\n      // way to check collision\n      if (dx*dvx+dy*dvy<0) collide(i, j);\n    }\n  } //for j\n} // for i\n//vdistribution();\n\nTKE = 0;\nTMOM =0;\n\nvar r;\nvar d;\n\nfor (var i=0; i<n; i++) {\n  // r is the radius\n  r = diameter[i]/2;\n  // d is distance spacings between particle and bottom\n  d = y[i]-ymin-r;\n  if (vy[i]<0 && d<min) {\n    vy[i]=-ep*vy[i];\n  } // check bottom reverse vy\n  // d is distance spacings between particle and top\n  d = ymax-r-y[i]; // let d .....\n  if (vy[i]>0 && d<min) {\n    vy[i]=-ep*vy[i];\n  } // check top reverse vy\n  // d is distance spacings between particle and left\n  d = x[i]-xmin-r; // d become ....\n  if (vx[i]<0 && d<min) {\n    vx[i]=-ep*vx[i];\n  }\n  // d is distance spacings between particle and right\n  d = xmax-r-x[i];\n  if (vx[i]>0 && d<min) {\n    vx[i]=-ep*vx[i];\n  }\n\n  // label for the mass introduced by wee\n  l_m[i]=\"\"+((i+1));\n  speed[i] = Math.sqrt(vx[i]*vx[i]+vy[i]*vy[i]);\n  KE[i] = 0.5*mass[i]*speed[i]*speed[i];\n  TKE = TKE+ KE[i];\n  MOM[i] = mass[i]*speed[i];\n  TMOM = TMOM + MOM[i];\n}\n\npx=x[0]; //  what is px is particle coordinate of particle 0\npy=y[0]; // what is py particle coordinate of particle 0\n// set\nfor (var counter=0; counter<m /* Iterations */ ; counter++) {\n  pxset[counter]=  x[counter];\n  pyset[counter]=  y[counter];\n}"
        }
      ]
    },
    "custom": {
      "pages": [
        {
          "Name": "collision",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function collide (collision, collision2) {\n  var dx = x[collision2]-x[collision], dy = y[collision2]-y[collision];\n  var distance = Math.sqrt(dx*dx+dy*dy);\n  // Unit vector in the direction of the collision\n  var ax=dx/distance, ay=dy/distance;\n  // Projection of the velocities in these axes\n  var va1=(vx[collision]*ax+vy[collision]*ay),\n  vb1=(-vx[collision]*ay+vy[collision]*ax);\n  var va2=(vx[collision2]*ax+vy[collision2]*ay), vb2=(-vx[collision2]*ay+vy[collision2]*ax);\n  // New velocities in these axes\n  var vaP1=va1 + (1+ed)*(va2-va1)/(1+mass[collision]/mass[collision2]);\n  var vaP2=va2 + (1+ed)*(va1-va2)/(1+mass[collision2]/mass[collision]);\n  // Undo the projections\n  vx[collision]=vaP1*ax-vb1*ay;  vy[collision]=vaP1*ay+vb1*ax;\n  vx[collision2]=vaP2*ax-vb2*ay;  vy[collision2]=vaP2*ay+vb2*ax;\n}"
        },
        {
          "Name": "vdistribution",
          "Active": "false",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "var vmax=(xmax-xmin);\nvar id;\nfunction vdistribution () {\nfor (var i=0; i<nv; i++)V[i]=0;\nfor (var i=0; i<n; i++){\n  id=(var)(nv*Math.sqrt(vx[i]*vx[i]+vy[i]*vy[i])/vmax);\n  if(id>nv-1)id=nv-1;\n V[id]+=1;\n}\n}"
        },
        {
          "Name": "playpause",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function playpause () {\n  if(label===l_play) {\n    label=l_pause;\n    _play();\n  } else {\n    label=l_play;\n    _pause();\n  }\n}"
        },
        {
          "Name": "getAx",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "function getA (i, v) {\n  if(i===0)return b*v[0];\n  else return 0;\n}"
        },
        {
          "Name": "setSize",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "// used to change the sizen of the large particle\nfunction setSize () {\n  mass[0]=2*sizen*sizen;//*sizen; model used to determine the mass of particle 0\n  size=sizen*diameter[1];\n  diameter[0]=size;\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": "android",
          "Active": "true",
          "Internal": "false",
          "Type": "LIBRARY_EDITOR",
          "Comment": "",
          "Code": "//code reference: http://davidwalsh.name/detect-android\nfunction checkAndroid () {\n  var ua = navigator.userAgent.toLowerCase();\n  return ua.indexOf(\"android\") > -1; //&& ua.indexOf(\"mobile\");\n}"
        }
      ]
    },
    "elements": {
      "list": [
        {
          "Classname": "org.colos.ejss.model_elements.hardware.AccelerometerElement",
          "Name": "accelerometer"
        }
      ]
    }
  },
  "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": "%Width1%"
              },
              {
                "name": "Display",
                "value": "\"inline-flex\""
              },
              {
                "name": "Font",
                "value": "font"
              }
            ],
            "Children": [
              {
                "Name": "comboBox",
                "Type": "ComboBox",
                "Properties": [
                  {
                    "name": "Options",
                    "value": "[\"\",\"size = 1\",\"size = 2\",\"size = 5\",\"size = 7\",\"size = 10\",\"\",\"single air molecule\",\"two air molecules\",\"three air molecules\",\"four air molecules\",\"five air molecules\",\"N = 10\",\"N = 20\",\"N = 30\",\"N = 40\",\"N = 50\",\"N = 100\",\"\",\"e particles = 0\",\"e particles = 0.5\",\"e particles = 1\",\"e particle and wall = 0\",\"e particle and wall = 0.5\",\"e particle and wall = 1\",\"\",\"low temperature\",\"medium temperature\",\"high temperature\",\"very high temperature\",\"extremely high temperature\",\"air molecules show\",\"air molecules hide\",\"show v\",\"hide v\"]"
                  },
                  {
                    "name": "Tooltip",
                    "value": "\"select user_defined and drag the mass\""
                  },
                  {
                    "name": "OnChange",
                    "value": "var opts = _view.comboBox.getProperty(\"SelectedOptions\");  // array of options\n    var option = (opts.length > 0)? opts[0]:\"\"; // selected option \n\n//[\"mass on cart =0.00 kg\",\"mass on cart =0.05 kg\",\"mass on cart =0.100 kg\",\"mass on cart =0.15 kg\",\"mass on cart =0.20 kg\",\"mass on cart =0.25 kg\",\"mass on cart =0.30 kg\"]\n\nif ( option==\"single air molecule\"){\n n=2;\n \n  }\n//printing\nelse if (selected[0] == \"print\"){\n  if (print == true){\n    print = false;\n    }\n  else if (print == false){\n    print = true;\n    }\n  }\n//printing\n//coefficient of resititution between particles\n  else if ( option == \"e particles = 0\"){\n    ed = 0;\n    }\n  else if ( option == \"e particles = 0.5\"){\n    ed = 0.5;\n    }\n  else if ( option == \"e particles = 1\"){\n    ed = 1;\n    }\n//coefficient of resititution between particles\n//coefficient of resititution between particle and wall\n  else if ( option == \"e particle and wall = 0\"){\n    ep = 0;\n    }\n  else if ( option == \"e particle and wall = 0.5\"){\n    ep = 0.5;\n    }\n  else if ( option == \"e particle and wall = 1\"){\n    ep = 1;\n    }\n//coefficient of resititution between particle and wall\n//size for 1,2,5,7 and 10\n  else if ( option == \"size = 1\"){\n    sizen = 1;\n    setSize();\n    }\n  else if ( option == \"size = 2\"){\n    sizen = 2;\n    setSize();\n    }\n  else if ( option == \"size = 5\"){\n    sizen = 5;\n    setSize();\n    }\n  else if ( option == \"size = 7\"){\n    sizen = 7;\n    setSize();\n    }\n  else if ( option == \"size = 10\"){\n    sizen = 10;\n    setSize();\n    }\n//size\n  else if ( option==\"two air molecules\"){\n n=3;\n \n  }\n else if ( option==\"three air molecules\"){\n n=4;\n \n  }\n else if ( option==\"four air molecules\"){\n n=5;\n \n  }\n else if ( option==\"five air molecules\"){\n n=6;\n \n  }\n  else if ( option==\"N = 10\"){\n n=11;\n \n  }\n  else if ( option==\"N = 20\"){\n n=21;\n \n  }\n  else if ( option==\"N = 30\"){\n n=31;\n \n  }\n  else if ( option==\"N = 40\"){\n n=41;\n \n  }\n  else if ( option==\"N = 50\"){\n n=51;\n \n  }\n  else if ( option==\"N = 100\"){\n n=101;\n \n  }\n  else if ( option==\"air molecules show\"){\nsee=true;\nfor (var i=1; i<n; i++) {\n  diameter[i] = 0.2 ;\n}\n  }\n else if ( option==\"air molecules hide\"){\nsee=false;\nfor (var i=1; i<n; i++) {\n  diameter[i] = 0.0 ;\n}\n  }\n//\"low temperature\",\"medium temperature\",\"high temperature\",\"very high temperature\",\"extremely high temperature\",\nelse if ( option==\"low temperature\"){\nvmax =size*2;\n  }\n  else if ( option==\"medium temperature\"){\nvmax =size*2+2;\n  }\n   else if ( option==\"high temperature\"){\nvmax =size*2+4;\n  }\n   else if ( option==\"very high temperature\"){\nvmax =size*2+6;\n  }\n   else if ( option==\"extremely high temperature\"){\nvmax =size*2+8;\n  }\n  //showv\nelse if ( option==\"show v\" ) {\n  showv = true;\n}\nelse if ( option==\"hide v\" ) {\n  showv = false;\n}\n\n//vary velocity accoridng to temp\nfor (var i=1; i<n; i++) {\n  // Random initialization of the disks\n // x[i]  = xmin+0.5*diameter[i] + (xmax-xmin-diameter[i] )*Math.random();\n  vx[i] = vmax*(Math.random()-0.5);\n // y[i]  = ymin+0.5*diameter[i]  + (ymax-ymin-diameter[i] )*Math.random();\n  vy[i] = vmax*(Math.random()-0.5);\n}\n//vdistribution ();\n\nif ( Math.abs(vmax)>=0&&Math.abs(vmax)<=2 ) {\n  temptext = \"Low Temperature\";\n}\nelse if ( Math.abs(vmax)>2&&Math.abs(vmax)<=4 ) {\n  temptext = \"Medium Temperature\";\n}\nelse if ( Math.abs(vmax)>4&&Math.abs(vmax)<=6 ) {\n  temptext = \"High Temperature\";\n}\nelse if ( Math.abs(vmax)>6&&Math.abs(vmax)<=8 ) {\n  temptext = \"Very High Temperature\";\n}\nelse if ( Math.abs(vmax)>8&&Math.abs(vmax)<=10 ) {\n  temptext = \"Extremely High Temperature\";\n}"
                  },
                  {
                    "name": "Font",
                    "value": "font"
                  },
                  {
                    "name": "Display",
                    "value": "\"none\""
                  }
                ]
              },
              {
                "Name": "comboBox_2",
                "Type": "ComboBox",
                "Properties": [
                  {
                    "name": "Options",
                    "value": "[\"N = 100\",\"single air molecule\",\"two air molecules\",\"three air molecules\",\"four air molecules\",\"five air molecules\",\"N = 10\",\"N = 20\",\"N = 30\",\"N = 40\",\"N = 50\",\"N = 100\"]"
                  },
                  {
                    "name": "Tooltip",
                    "value": "\"select user_defined and drag the mass\""
                  },
                  {
                    "name": "OnChange",
                    "value": "var opts = _view.comboBox_2.getProperty(\"SelectedOptions\");  // array of options\n    var option = (opts.length > 0)? opts[0]:\"\"; // selected option \n\n//[\"mass on cart =0.00 kg\",\"mass on cart =0.05 kg\",\"mass on cart =0.100 kg\",\"mass on cart =0.15 kg\",\"mass on cart =0.20 kg\",\"mass on cart =0.25 kg\",\"mass on cart =0.30 kg\"]\n\nif ( option==\"single air molecule\"){\n n=2;\n \n  }\n//printing\nelse if (selected[0] == \"print\"){\n  if (print == true){\n    print = false;\n    }\n  else if (print == false){\n    print = true;\n    }\n  }\n//printing\n//coefficient of resititution between particles\n  else if ( option == \"e particles = 0\"){\n    ed = 0;\n    }\n  else if ( option == \"e particles = 0.5\"){\n    ed = 0.5;\n    }\n  else if ( option == \"e particles = 1\"){\n    ed = 1;\n    }\n//coefficient of resititution between particles\n//coefficient of resititution between particle and wall\n  else if ( option == \"e particle and wall = 0\"){\n    ep = 0;\n    }\n  else if ( option == \"e particle and wall = 0.5\"){\n    ep = 0.5;\n    }\n  else if ( option == \"e particle and wall = 1\"){\n    ep = 1;\n    }\n//coefficient of resititution between particle and wall\n//size for 1,2,5,7 and 10\n  else if ( option == \"size = 1\"){\n    sizen = 1;\n    setSize();\n    }\n  else if ( option == \"size = 2\"){\n    sizen = 2;\n    setSize();\n    }\n  else if ( option == \"size = 5\"){\n    sizen = 5;\n    setSize();\n    }\n  else if ( option == \"size = 7\"){\n    sizen = 7;\n    setSize();\n    }\n  else if ( option == \"size = 10\"){\n    sizen = 10;\n    setSize();\n    }\n//size\n  else if ( option==\"two air molecules\"){\n n=3;\n \n  }\n else if ( option==\"three air molecules\"){\n n=4;\n \n  }\n else if ( option==\"four air molecules\"){\n n=5;\n \n  }\n else if ( option==\"five air molecules\"){\n n=6;\n \n  }\n  else if ( option==\"N = 10\"){\n n=11;\n \n  }\n  else if ( option==\"N = 20\"){\n n=21;\n \n  }\n  else if ( option==\"N = 30\"){\n n=31;\n \n  }\n  else if ( option==\"N = 40\"){\n n=41;\n \n  }\n  else if ( option==\"N = 50\"){\n n=51;\n \n  }\n  else if ( option==\"N = 100\"){\n n=101;\n \n  }\n  else if ( option==\"air molecules show\"){\nsee=true;\nfor (var i=1; i<n; i++) {\n  diameter[i] = 0.2 ;\n}\n  }\n else if ( option==\"air molecules hide\"){\nsee=false;\nfor (var i=1; i<n; i++) {\n  diameter[i] = 0.0 ;\n}\n  }\n//\"low temperature\",\"medium temperature\",\"high temperature\",\"very high temperature\",\"extremely high temperature\",\nelse if ( option==\"low temperature\"){\nvmax =size*2;\n  }\n  else if ( option==\"medium temperature\"){\nvmax =size*2+2;\n  }\n   else if ( option==\"high temperature\"){\nvmax =size*2+4;\n  }\n   else if ( option==\"very high temperature\"){\nvmax =size*2+6;\n  }\n   else if ( option==\"extremely high temperature\"){\nvmax =size*2+8;\n  }\n  //showv\nelse if ( option==\"show v\" ) {\n  showv = true;\n}\nelse if ( option==\"hide v\" ) {\n  showv = false;\n}\n\n//vary velocity accoridng to temp\nfor (var i=1; i<n; i++) {\n  // Random initialization of the disks\n // x[i]  = xmin+0.5*diameter[i] + (xmax-xmin-diameter[i] )*Math.random();\n  vx[i] = vmax*(Math.random()-0.5);\n // y[i]  = ymin+0.5*diameter[i]  + (ymax-ymin-diameter[i] )*Math.random();\n  vy[i] = vmax*(Math.random()-0.5);\n}\n//vdistribution ();\n\nif ( Math.abs(vmax)>=0&&Math.abs(vmax)<=2 ) {\n  temptext = \"Low Temperature\";\n}\nelse if ( Math.abs(vmax)>2&&Math.abs(vmax)<=4 ) {\n  temptext = \"Medium Temperature\";\n}\nelse if ( Math.abs(vmax)>4&&Math.abs(vmax)<=6 ) {\n  temptext = \"High Temperature\";\n}\nelse if ( Math.abs(vmax)>6&&Math.abs(vmax)<=8 ) {\n  temptext = \"Very High Temperature\";\n}\nelse if ( Math.abs(vmax)>8&&Math.abs(vmax)<=10 ) {\n  temptext = \"Extremely High Temperature\";\n}"
                  },
                  {
                    "name": "Font",
                    "value": "font"
                  }
                ]
              },
              {
                "Name": "playpause",
                "Type": "TwoStateButton",
                "Properties": [
                  {
                    "name": "OffClick",
                    "value": "_pause();\ntext = \"paused\";\n"
                  },
                  {
                    "name": "TextOn",
                    "value": "\"\u25ba Play\""
                  },
                  {
                    "name": "State",
                    "value": "_isPaused"
                  },
                  {
                    "name": "TextOff",
                    "value": "\"\u275a\u275a Pause\""
                  },
                  {
                    "name": "OnClick",
                    "value": "_play();\ntext = \"playing\";\n"
                  },
                  {
                    "name": "Font",
                    "value": "fontb"
                  }
                ]
              },
              {
                "Name": "Step",
                "Type": "Button",
                "Properties": [
                  {
                    "name": "Tooltip",
                    "value": "\"Step\""
                  },
                  {
                    "name": "OnPress",
                    "value": "%_step%"
                  },
                  {
                    "name": "Text",
                    "value": "\"\u275a\u25ba Step\""
                  },
                  {
                    "name": "OnClick",
                    "value": "%_step%"
                  },
                  {
                    "name": "Font",
                    "value": "fontb"
                  }
                ]
              },
              {
                "Name": "Reset",
                "Type": "Button",
                "Properties": [
                  {
                    "name": "Tooltip",
                    "value": "\"Reset\""
                  },
                  {
                    "name": "OnPress",
                    "value": "%_reset%"
                  },
                  {
                    "name": "Text",
                    "value": "\"\u21bb Reset\""
                  },
                  {
                    "name": "OnClick",
                    "value": "%_reset%"
                  },
                  {
                    "name": "Font",
                    "value": "fontb"
                  }
                ]
              },
              {
                "Name": "print",
                "Type": "CheckBox",
                "Properties": [
                  {
                    "name": "Checked",
                    "value": "print"
                  },
                  {
                    "name": "Text",
                    "value": "\"print\""
                  },
                  {
                    "name": "Font",
                    "value": "\"normal normal 1vw\""
                  },
                  {
                    "name": "Display",
                    "value": "\"none\""
                  }
                ]
              },
              {
                "Name": "checkBoxShowv_2",
                "Type": "CheckBox",
                "Properties": [
                  {
                    "name": "Text",
                    "value": "\"Show d\""
                  },
                  {
                    "name": "Tooltip",
                    "value": "\"Show diameter of air molecules\""
                  },
                  {
                    "name": "OnCheckOn",
                    "value": "see=true;\nfor (var i=1; i<n; i++) {\n  diameter[i] = 0.2 ;\n}"
                  },
                  {
                    "name": "Checked",
                    "value": "see"
                  },
                  {
                    "name": "OnCheckOff",
                    "value": "see=false;\nfor (var i=1; i<n; i++) {\n  diameter[i] = 0.0 ;\n}"
                  },
                  {
                    "name": "Font",
                    "value": "font"
                  }
                ]
              },
              {
                "Name": "checkBoxShowv",
                "Type": "CheckBox",
                "Properties": [
                  {
                    "name": "Text",
                    "value": "\"Show v\""
                  },
                  {
                    "name": "Checked",
                    "value": "showv"
                  },
                  {
                    "name": "Tooltip",
                    "value": "\"Show v of air moelcules\""
                  },
                  {
                    "name": "Font",
                    "value": "font"
                  }
                ]
              }
            ]
          },
          {
            "Name": "displayPanel",
            "Type": "Panel",
            "Expanded": "true",
            "Properties": [
              {
                "name": "Height",
                "value": "\"100%\""
              },
              {
                "name": "Width",
                "value": "%Width1%"
              }
            ],
            "Children": [
              {
                "Name": "plottingPanel",
                "Type": "PlottingPanel",
                "Expanded": "true",
                "Properties": [
                  {
                    "name": "Gutters",
                    "value": "[0,0,0,0]"
                  },
                  {
                    "name": "ShowAreaRectangle",
                    "value": "false"
                  },
                  {
                    "name": "Enabled",
                    "value": "true"
                  },
                  {
                    "name": "OnDoubleClick",
                    "value": "toggleFullScreen();"
                  },
                  {
                    "name": "SquareAspect",
                    "value": "true"
                  },
                  {
                    "name": "MaximumY",
                    "value": "ymax"
                  },
                  {
                    "name": "MaximumX",
                    "value": "xmax"
                  },
                  {
                    "name": "TRMessage",
                    "value": "print?\"\":\"Brownian Motion Model\""
                  },
                  {
                    "name": "GridYShow",
                    "value": "false"
                  },
                  {
                    "name": "MinimumX",
                    "value": "xmin"
                  },
                  {
                    "name": "MinimumY",
                    "value": "ymin"
                  },
                  {
                    "name": "AutoScaleY",
                    "value": "false"
                  },
                  {
                    "name": "AutoScaleX",
                    "value": "false"
                  },
                  {
                    "name": "Height",
                    "value": "+_view._format(window.innerHeight*0.9,\"0\")"
                  },
                  {
                    "name": "GridXShow",
                    "value": "false"
                  },
                  {
                    "name": "Width",
                    "value": "Width1"
                  },
                  {
                    "name": "TLMessage",
                    "value": "print?\"\":text"
                  },
                  {
                    "name": "BRMessage",
                    "value": "print?\"\":\"t= \" + _view._format(t, \"0.00\") + \"s\"+\"\\n\"+temptext"
                  }
                ],
                "Children": [
                  {
                    "Name": "Cell",
                    "Type": "Shape2D",
                    "Properties": [
                      {
                        "name": "FillColor",
                        "value": "\"White\""
                      },
                      {
                        "name": "SizeX",
                        "value": "(xmax-xmin)"
                      },
                      {
                        "name": "ShapeType",
                        "value": "\"RECTANGLE\""
                      },
                      {
                        "name": "X",
                        "value": "(xmax-xmin)/2"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"Blue\""
                      },
                      {
                        "name": "Y",
                        "value": "(ymax-ymin)/2"
                      },
                      {
                        "name": "SizeY",
                        "value": "(ymax-ymin)"
                      },
                      {
                        "name": "LineWidth",
                        "value": "3"
                      }
                    ]
                  },
                  {
                    "Name": "shapeSet",
                    "Type": "ShapeSet2D",
                    "Properties": [
                      {
                        "name": "NumberOfElements",
                        "value": "n"
                      },
                      {
                        "name": "FillColor",
                        "value": "%color%"
                      },
                      {
                        "name": "SizeX",
                        "value": "diameter"
                      },
                      {
                        "name": "ShapeType",
                        "value": "\"ELLIPSE\""
                      },
                      {
                        "name": "X",
                        "value": "x"
                      },
                      {
                        "name": "Y",
                        "value": "y"
                      },
                      {
                        "name": "SizeY",
                        "value": "diameter"
                      },
                      {
                        "name": "EnabledPosition",
                        "value": "\"ENABLED_ANY\""
                      },
                      {
                        "name": "ElementInteracted",
                        "value": "elementinteracted"
                      }
                    ]
                  },
                  {
                    "Name": "particle0_unused",
                    "Type": "Shape2D",
                    "Properties": [
                      {
                        "name": "FillColor",
                        "value": "\"Yellow\""
                      },
                      {
                        "name": "SizeX",
                        "value": "sizen/5"
                      },
                      {
                        "name": "X",
                        "value": "px"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"Black\""
                      },
                      {
                        "name": "Y",
                        "value": "py"
                      },
                      {
                        "name": "SizeY",
                        "value": "sizen/5"
                      },
                      {
                        "name": "LineWidth",
                        "value": "2"
                      },
                      {
                        "name": "Visibility",
                        "value": "false"
                      }
                    ]
                  },
                  {
                    "Name": "particleSet",
                    "Type": "ShapeSet2D",
                    "Properties": [
                      {
                        "name": "NumberOfElements",
                        "value": "m"
                      },
                      {
                        "name": "FillColor",
                        "value": "\"Yellow\""
                      },
                      {
                        "name": "SizeX",
                        "value": "size"
                      },
                      {
                        "name": "X",
                        "value": "pxset"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"Black\""
                      },
                      {
                        "name": "Y",
                        "value": "pyset"
                      },
                      {
                        "name": "SizeY",
                        "value": "size"
                      },
                      {
                        "name": "LineWidth",
                        "value": "2"
                      }
                    ]
                  },
                  {
                    "Name": "arrowSet",
                    "Type": "ArrowSet2D",
                    "Properties": [
                      {
                        "name": "NumberOfElements",
                        "value": "n"
                      },
                      {
                        "name": "FillColor",
                        "value": "\"Magenta\""
                      },
                      {
                        "name": "SizeX",
                        "value": "vx"
                      },
                      {
                        "name": "EnabledSize",
                        "value": "\"ENABLED_ANY\""
                      },
                      {
                        "name": "X",
                        "value": "x"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"Magenta\""
                      },
                      {
                        "name": "Y",
                        "value": "y"
                      },
                      {
                        "name": "Visibility",
                        "value": "showv"
                      },
                      {
                        "name": "SizeY",
                        "value": "vy"
                      },
                      {
                        "name": "Offset",
                        "value": "\"SOUTH_WEST\""
                      }
                    ]
                  },
                  {
                    "Name": "arrow",
                    "Type": "Arrow2D",
                    "Properties": [
                      {
                        "name": "SizeX",
                        "value": "vx[0]"
                      },
                      {
                        "name": "X",
                        "value": "px"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"Magenta\""
                      },
                      {
                        "name": "Y",
                        "value": "py"
                      },
                      {
                        "name": "SizeY",
                        "value": "vy[0]"
                      },
                      {
                        "name": "LineWidth",
                        "value": "3"
                      }
                    ]
                  },
                  {
                    "Name": "trace",
                    "Type": "Trace",
                    "Properties": [
                      {
                        "name": "Maximum",
                        "value": "np"
                      },
                      {
                        "name": "Connected",
                        "value": "_isPlaying"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"Red\""
                      },
                      {
                        "name": "InputX",
                        "value": "x[0]"
                      },
                      {
                        "name": "InputY",
                        "value": "y[0]"
                      },
                      {
                        "name": "NoRepeat",
                        "value": "true"
                      },
                      {
                        "name": "LineWidth",
                        "value": "1"
                      }
                    ]
                  },
                  {
                    "Name": "textSet",
                    "Type": "TextSet2D",
                    "Properties": [
                      {
                        "name": "NumberOfElements",
                        "value": "n"
                      },
                      {
                        "name": "SizeX",
                        "value": "diameter"
                      },
                      {
                        "name": "X",
                        "value": "x"
                      },
                      {
                        "name": "Y",
                        "value": "y"
                      },
                      {
                        "name": "Text",
                        "value": "%l_m%"
                      },
                      {
                        "name": "Visibility",
                        "value": "track"
                      },
                      {
                        "name": "SizeY",
                        "value": "diameter"
                      },
                      {
                        "name": "PixelSize",
                        "value": "true"
                      },
                      {
                        "name": "Font",
                        "value": "\"normal normal 5px Arial, Helvetica, sans-serif\""
                      }
                    ]
                  },
                  {
                    "Name": "traceSet",
                    "Type": "TraceSet",
                    "Properties": [
                      {
                        "name": "NumberOfElements",
                        "value": "m"
                      },
                      {
                        "name": "Maximum",
                        "value": "np"
                      },
                      {
                        "name": "Connected",
                        "value": "_isPlaying"
                      },
                      {
                        "name": "LineColor",
                        "value": "\"blue\""
                      },
                      {
                        "name": "InputX",
                        "value": "pxset"
                      },
                      {
                        "name": "InputY",
                        "value": "pyset"
                      },
                      {
                        "name": "NoRepeat",
                        "value": "true"
                      }
                    ]
                  },
                  {
                    "Name": "Leftcover2",
                    "Type": "Shape2D",
                    "Properties": [
                      {
                        "name": "FillColor",
                        "value": "\"White\""
                      },
                      {
                        "name": "SizeX",
                        "value": "10"
                      },
                      {
                        "name": "RelativePosition",
                        "value": "\"EAST\""
                      },
                      {
                        "name": "ShapeType",
                        "value": "\"RECTANGLE\""
                      },
                      {
                        "name": "X",
                        "value": "xmin"
                      },
                      {
                        "name": "Y",
                        "value": "0"
                      },
                      {
                        "name": "SizeY",
                        "value": "(ymax-ymin)*2"
                      }
                    ]
                  },
                  {
                    "Name": "Rightcover",
                    "Type": "Shape2D",
                    "Properties": [
                      {
                        "name": "FillColor",
                        "value": "\"White\""
                      },
                      {
                        "name": "SizeX",
                        "value": "10"
                      },
                      {
                        "name": "RelativePosition",
                        "value": "\"WEST\""
                      },
                      {
                        "name": "ShapeType",
                        "value": "\"RECTANGLE\""
                      },
                      {
                        "name": "X",
                        "value": "xmax"
                      },
                      {
                        "name": "Y",
                        "value": "0"
                      },
                      {
                        "name": "SizeY",
                        "value": "(ymax-ymin)*2"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "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/"
  }
}