demo_capture = {
   "demoIndex": 5,
   "demoVersion": "5.d",
   "wallMapData": {
      "wall1": {
         "parsAtBirth": {
            "fence": true,
            "half_width_m": 3,
            "half_height_m": 0.05
         },
         "name": "wall1",
         "position_2d_m": {
            "x": 3,
            "y": 6
         },
         "position_2d_px": {
            "x": 300,
            "y": 0
         },
         "fence": true,
         "velocity_2d_mps": {
            "x": 0,
            "y": 0
         },
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "half_width_m": 3,
         "half_height_m": 0.05,
         "half_width_px": 300,
         "half_height_px": 5,
         "width_scaling": 1,
         "height_scaling": 1,
         "color": "white",
         "deleted": false
      },
      "wall2": {
         "parsAtBirth": {
            "fence": true,
            "half_width_m": 3,
            "half_height_m": 0.05
         },
         "name": "wall2",
         "position_2d_m": {
            "x": 3,
            "y": 0
         },
         "position_2d_px": {
            "x": 300,
            "y": 600
         },
         "fence": true,
         "velocity_2d_mps": {
            "x": 0,
            "y": 0
         },
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "half_width_m": 3,
         "half_height_m": 0.05,
         "half_width_px": 300,
         "half_height_px": 5,
         "width_scaling": 1,
         "height_scaling": 1,
         "color": "white",
         "deleted": false
      },
      "wall3": {
         "parsAtBirth": {
            "fence": true,
            "half_width_m": 0.05,
            "half_height_m": 3
         },
         "name": "wall3",
         "position_2d_m": {
            "x": 0,
            "y": 3
         },
         "position_2d_px": {
            "x": 0,
            "y": 300
         },
         "fence": true,
         "velocity_2d_mps": {
            "x": 0,
            "y": 0
         },
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "half_width_m": 0.05,
         "half_height_m": 3,
         "half_width_px": 5,
         "half_height_px": 300,
         "width_scaling": 1,
         "height_scaling": 1,
         "color": "white",
         "deleted": false
      },
      "wall4": {
         "parsAtBirth": {
            "fence": true,
            "half_width_m": 0.05,
            "half_height_m": 3
         },
         "name": "wall4",
         "position_2d_m": {
            "x": 6,
            "y": 3
         },
         "position_2d_px": {
            "x": 600,
            "y": 300
         },
         "fence": true,
         "velocity_2d_mps": {
            "x": 0,
            "y": 0
         },
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "half_width_m": 0.05,
         "half_height_m": 3,
         "half_width_px": 5,
         "half_height_px": 300,
         "width_scaling": 1,
         "height_scaling": 1,
         "color": "white",
         "deleted": false
      }
   },
   "puckMapData": {
      "puck1": {
         "parsAtBirth": {
            "radius_m": 0.15,
            "name": "puck1"
         },
         "bullet": false,
         "jello": false,
         "clientName": null,
         "name": "puck1",
         "position_2d_m": {
            "x": 1.5076721043327395,
            "y": 1.2352104121330898
         },
         "position_2d_px": {
            "x": 151,
            "y": 476
         },
         "velocity_2d_mps": {
            "x": 0.33232722188665836,
            "y": -2.9160364935085004
         },
         "color": "DarkSlateGray",
         "shape": "circle",
         "colorSource": false,
         "density": 1.5,
         "linDamp": 0,
         "hitLimit": 10,
         "createdByClient": null,
         "ageLimit_ms": null,
         "createTail": false,
         "tailPars": null,
         "tail": null,
         "groupIndex": 0,
         "categoryBits": 1,
         "maskBits": 65535,
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "borderWidth_px": 3,
         "age_ms": 0,
         "restitution": 1,
         "restitution_fixed": false,
         "friction": 0.6,
         "friction_fixed": false,
         "radius_m": 0.15,
         "aspectR": 1,
         "half_height_m": null,
         "half_width_m": null,
         "radius_px": 15,
         "width_scaling": 1,
         "height_scaling": 1,
         "radius_scaling": 1,
         "mass_kg": 0.10602875205865551,
         "cursorString_spring_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "cursorString_puckDrag_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "nonCOM_2d_N": [],
         "sprDamp_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "springOnly_force_2d_N": {
            "x": -0.9563790899191404,
            "y": 0.055565099450707194
         },
         "jet_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "impulse_2d_Ns": {
            "x": 0,
            "y": 0
         },
         "hitCount": 0,
         "poorHealthFraction": 0,
         "flash": false,
         "inComing": false,
         "flashCount": 0,
         "navSpringName": null,
         "pinName": null,
         "deleted": false
      },
      "puck2": {
         "parsAtBirth": {
            "radius_m": 0.25,
            "name": "puck2"
         },
         "bullet": false,
         "jello": false,
         "clientName": null,
         "name": "puck2",
         "position_2d_m": {
            "x": 0.817238042440214,
            "y": 1.2753242516320875
         },
         "position_2d_px": {
            "x": 82,
            "y": 472
         },
         "velocity_2d_mps": {
            "x": -0.11963779987919682,
            "y": 1.0497731376630597
         },
         "color": "DarkSlateGray",
         "shape": "circle",
         "colorSource": false,
         "density": 1.5,
         "linDamp": 0,
         "hitLimit": 10,
         "createdByClient": null,
         "ageLimit_ms": null,
         "createTail": false,
         "tailPars": null,
         "tail": null,
         "groupIndex": 0,
         "categoryBits": 1,
         "maskBits": 65535,
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "borderWidth_px": 3,
         "age_ms": 0,
         "restitution": 1,
         "restitution_fixed": false,
         "friction": 0.6,
         "friction_fixed": false,
         "radius_m": 0.25,
         "aspectR": 1,
         "half_height_m": null,
         "half_width_m": null,
         "radius_px": 25,
         "width_scaling": 1,
         "height_scaling": 1,
         "radius_scaling": 1,
         "mass_kg": 0.2945243112740431,
         "cursorString_spring_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "cursorString_puckDrag_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "nonCOM_2d_N": [],
         "sprDamp_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "springOnly_force_2d_N": {
            "x": 0.9563790899191404,
            "y": -0.055565099450707194
         },
         "jet_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "impulse_2d_Ns": {
            "x": 0,
            "y": 0
         },
         "hitCount": 0,
         "poorHealthFraction": 0,
         "flash": false,
         "inComing": false,
         "flashCount": 0,
         "navSpringName": null,
         "pinName": null,
         "deleted": false
      },
      "puck6": {
         "parsAtBirth": {
            "radius_m": 0.2,
            "name": "puck6"
         },
         "bullet": false,
         "jello": false,
         "clientName": null,
         "name": "puck6",
         "position_2d_m": {
            "x": 2.4434598027549232,
            "y": 5
         },
         "position_2d_px": {
            "x": 244,
            "y": 100
         },
         "velocity_2d_mps": {
            "x": -0.829441724810629,
            "y": 0
         },
         "color": "DarkSlateGray",
         "shape": "circle",
         "colorSource": false,
         "density": 1.5,
         "linDamp": 0,
         "hitLimit": 10,
         "createdByClient": null,
         "ageLimit_ms": null,
         "createTail": false,
         "tailPars": null,
         "tail": null,
         "groupIndex": 0,
         "categoryBits": 1,
         "maskBits": 65535,
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "borderWidth_px": 3,
         "age_ms": 0,
         "restitution": 1,
         "restitution_fixed": false,
         "friction": 0.6,
         "friction_fixed": false,
         "radius_m": 0.2,
         "aspectR": 1,
         "half_height_m": null,
         "half_width_m": null,
         "radius_px": 20,
         "width_scaling": 1,
         "height_scaling": 1,
         "radius_scaling": 1,
         "mass_kg": 0.1884955592153876,
         "cursorString_spring_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "cursorString_puckDrag_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "nonCOM_2d_N": [],
         "sprDamp_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "springOnly_force_2d_N": {
            "x": -4.717299013774616,
            "y": 0
         },
         "jet_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "impulse_2d_Ns": {
            "x": 0,
            "y": 0
         },
         "hitCount": 0,
         "poorHealthFraction": 0,
         "flash": false,
         "inComing": false,
         "flashCount": 0,
         "navSpringName": null,
         "pinName": null,
         "deleted": false
      },
      "puck3": {
         "parsAtBirth": {
            "radius_m": 0.15,
            "name": "puck3"
         },
         "bullet": false,
         "jello": false,
         "clientName": null,
         "name": "puck3",
         "position_2d_m": {
            "x": 5.5417289680866455,
            "y": 1.3356447262629045
         },
         "position_2d_px": {
            "x": 554,
            "y": 466
         },
         "velocity_2d_mps": {
            "x": 0.583726454504006,
            "y": -2.6381815255324446
         },
         "color": "DarkSlateGray",
         "shape": "circle",
         "colorSource": false,
         "density": 1.5,
         "linDamp": 0,
         "hitLimit": 10,
         "createdByClient": null,
         "ageLimit_ms": null,
         "createTail": false,
         "tailPars": null,
         "tail": null,
         "groupIndex": 0,
         "categoryBits": 1,
         "maskBits": 65535,
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "borderWidth_px": 3,
         "age_ms": 0,
         "restitution": 1,
         "restitution_fixed": false,
         "friction": 0.6,
         "friction_fixed": false,
         "radius_m": 0.15,
         "aspectR": 1,
         "half_height_m": null,
         "half_width_m": null,
         "radius_px": 15,
         "width_scaling": 1,
         "height_scaling": 1,
         "radius_scaling": 1,
         "mass_kg": 0.10602875205865551,
         "cursorString_spring_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "cursorString_puckDrag_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "nonCOM_2d_N": [],
         "sprDamp_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "springOnly_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "jet_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "impulse_2d_Ns": {
            "x": 0,
            "y": 0
         },
         "hitCount": 0,
         "poorHealthFraction": 0,
         "flash": false,
         "inComing": false,
         "flashCount": 0,
         "navSpringName": null,
         "pinName": null,
         "deleted": false
      },
      "puck4": {
         "parsAtBirth": {
            "radius_m": 0.25,
            "name": "puck4"
         },
         "bullet": false,
         "jello": false,
         "clientName": null,
         "name": "puck4",
         "position_2d_m": {
            "x": 4.804977571488807,
            "y": 1.2391678985453547
         },
         "position_2d_px": {
            "x": 480,
            "y": 476
         },
         "velocity_2d_mps": {
            "x": -0.2101415236214422,
            "y": 0.9497453491916799
         },
         "color": "DarkSlateGray",
         "shape": "circle",
         "colorSource": false,
         "density": 1.5,
         "linDamp": 0,
         "hitLimit": 10,
         "createdByClient": null,
         "ageLimit_ms": null,
         "createTail": false,
         "tailPars": null,
         "tail": null,
         "groupIndex": 0,
         "categoryBits": 1,
         "maskBits": 65535,
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "borderWidth_px": 3,
         "age_ms": 0,
         "restitution": 1,
         "restitution_fixed": false,
         "friction": 0.6,
         "friction_fixed": false,
         "radius_m": 0.25,
         "aspectR": 1,
         "half_height_m": null,
         "half_width_m": null,
         "radius_px": 25,
         "width_scaling": 1,
         "height_scaling": 1,
         "radius_scaling": 1,
         "mass_kg": 0.2945243112740431,
         "cursorString_spring_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "cursorString_puckDrag_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "nonCOM_2d_N": [],
         "sprDamp_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "springOnly_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "jet_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "impulse_2d_Ns": {
            "x": 0,
            "y": 0
         },
         "hitCount": 0,
         "poorHealthFraction": 0,
         "flash": false,
         "inComing": false,
         "flashCount": 0,
         "navSpringName": null,
         "pinName": null,
         "deleted": false
      },
      "puck5": {
         "parsAtBirth": {
            "radius_m": 0.2,
            "name": "puck5"
         },
         "bullet": false,
         "jello": false,
         "clientName": null,
         "name": "puck5",
         "position_2d_m": {
            "x": 3.5891224994785857,
            "y": 5
         },
         "position_2d_px": {
            "x": 359,
            "y": 100
         },
         "velocity_2d_mps": {
            "x": 0.7137583395845721,
            "y": 0
         },
         "color": "DarkSlateGray",
         "shape": "circle",
         "colorSource": false,
         "density": 1.5,
         "linDamp": 0,
         "hitLimit": 10,
         "createdByClient": null,
         "ageLimit_ms": null,
         "createTail": false,
         "tailPars": null,
         "tail": null,
         "groupIndex": 0,
         "categoryBits": 1,
         "maskBits": 65535,
         "angle_r": 0,
         "angularSpeed_rps": 0,
         "borderWidth_px": 3,
         "age_ms": 0,
         "restitution": 1,
         "restitution_fixed": false,
         "friction": 0.6,
         "friction_fixed": false,
         "radius_m": 0.2,
         "aspectR": 1,
         "half_height_m": null,
         "half_width_m": null,
         "radius_px": 20,
         "width_scaling": 1,
         "height_scaling": 1,
         "radius_scaling": 1,
         "mass_kg": 0.1884955592153876,
         "cursorString_spring_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "cursorString_puckDrag_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "nonCOM_2d_N": [],
         "sprDamp_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "springOnly_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "jet_force_2d_N": {
            "x": 0,
            "y": 0
         },
         "impulse_2d_Ns": {
            "x": 0,
            "y": 0
         },
         "hitCount": 0,
         "poorHealthFraction": 0,
         "flash": false,
         "inComing": false,
         "flashCount": 0,
         "navSpringName": null,
         "pinName": null,
         "deleted": false
      }
   },
   "pinMapData": {
      "pin1": {
         "parsAtBirth": {
            "name": "pin1"
         },
         "name": "pin1",
         "position_2d_m": {
            "x": 1,
            "y": 5
         },
         "position_2d_px": {
            "x": 100,
            "y": 100
         },
         "radius_px": 6,
         "radius_m": 0.08,
         "categoryBits": 0,
         "maskBits": 0,
         "velocity_2d_mps": {
            "x": 0,
            "y": 0
         },
         "deleted": false,
         "NPC": false,
         "nextPinName": null,
         "previousPinName": null,
         "fillColor": "blue",
         "borderColor": "gray"
      },
      "pin2": {
         "parsAtBirth": {
            "name": "pin2"
         },
         "name": "pin2",
         "position_2d_m": {
            "x": 5,
            "y": 5
         },
         "position_2d_px": {
            "x": 500,
            "y": 100
         },
         "radius_px": 6,
         "radius_m": 0.08,
         "categoryBits": 0,
         "maskBits": 0,
         "velocity_2d_mps": {
            "x": 0,
            "y": 0
         },
         "deleted": false,
         "NPC": false,
         "nextPinName": null,
         "previousPinName": null,
         "fillColor": "blue",
         "borderColor": "gray"
      }
   },
   "springMapData": {
      "s1": {
         "parsAtBirth": {
            "length_m": 0.5,
            "strength_Npm": 5,
            "unstretched_width_m": 0.05,
            "color": "yellow",
            "damper_Ns2pm2": 0.5,
            "softContraints": false
         },
         "name": "s1",
         "color": "yellow",
         "length_m": 0.5,
         "strength_Npm": 5,
         "unstretched_width_m": 0.05,
         "drag_c": 0,
         "damper_Ns2pm2": 0.5,
         "dashedLine": false,
         "roundedEnds": true,
         "navigationForNPC": false,
         "p1_name": "puck1",
         "pinned": false,
         "p2_name": "puck2",
         "p1p2_separation_2d_m": {
            "x": 0.6904340618925254,
            "y": -0.040113839498997717
         },
         "p1p2_separation_m": 0.6915983761843018,
         "p1p2_normalized_2d": {
            "x": 0.9983164878173947,
            "y": -0.05800163921771255
         },
         "softContraints": false
      },
      "s2": {
         "parsAtBirth": {
            "length_m": 0.5,
            "strength_Npm": 5,
            "unstretched_width_m": 0.05,
            "color": "yellow",
            "damper_Ns2pm2": 0.5,
            "softContraints": false
         },
         "name": "s2",
         "color": "yellow",
         "length_m": 0.5,
         "strength_Npm": 5,
         "unstretched_width_m": 0.05,
         "drag_c": 0,
         "damper_Ns2pm2": 0.5,
         "dashedLine": false,
         "roundedEnds": true,
         "navigationForNPC": false,
         "p1_name": "pin1",
         "pinned": false,
         "p2_name": "puck6",
         "p1p2_separation_2d_m": {
            "x": -1.4434598027549232,
            "y": 0
         },
         "p1p2_separation_m": 1.4434598027549232,
         "p1p2_normalized_2d": {
            "x": -1,
            "y": 0
         },
         "softContraints": false
      },
      "s3": {
         "parsAtBirth": {
            "length_m": 0.5,
            "strength_Npm": 5,
            "unstretched_width_m": 0.05,
            "color": "cyan",
            "damper_Ns2pm2": 0.5,
            "softContraints": true
         },
         "name": "s3",
         "color": "cyan",
         "length_m": 0.5,
         "strength_Npm": 5,
         "unstretched_width_m": 0.05,
         "drag_c": 0,
         "damper_Ns2pm2": 0.5,
         "dashedLine": false,
         "roundedEnds": true,
         "navigationForNPC": false,
         "p1_name": "puck3",
         "pinned": false,
         "p2_name": "puck4",
         "p1p2_separation_2d_m": {
            "x": 0.7367513965978381,
            "y": 0.09647682771754984
         },
         "p1p2_separation_m": 0.7430413169368892,
         "p1p2_normalized_2d": {
            "x": 0,
            "y": 0
         },
         "softContraints": true
      },
      "s4": {
         "parsAtBirth": {
            "length_m": 0.5,
            "strength_Npm": 5,
            "unstretched_width_m": 0.05,
            "color": "cyan",
            "damper_Ns2pm2": 0.5,
            "softContraints": true
         },
         "name": "s4",
         "color": "cyan",
         "length_m": 0.5,
         "strength_Npm": 5,
         "unstretched_width_m": 0.05,
         "drag_c": 0,
         "damper_Ns2pm2": 0.5,
         "dashedLine": false,
         "roundedEnds": true,
         "navigationForNPC": false,
         "p1_name": "pin2",
         "pinned": false,
         "p2_name": "puck5",
         "p1p2_separation_2d_m": {
            "x": 1.4108775005214143,
            "y": 0
         },
         "p1p2_separation_m": 1.4108775005214143,
         "p1p2_normalized_2d": {
            "x": 0,
            "y": 0
         },
         "softContraints": true
      }
   },
   "clients": {
      "local": {
         "color": "red",
         "name": "local",
         "puck": null,
         "isMouseDown": false,
         "button": null,
         "mouseX_px": 640,
         "mouseY_px": 393,
         "mouse_2d_px": {
            "x": 635,
            "y": 389
         },
         "mouse_2d_m": {
            "x": 6.35,
            "y": 2.11
         },
         "selectedBody": null,
         "selectionPoint_l_2d_m": null,
         "selectionPoint_w_2d_m": null,
         "selectionPoint_w_2d_px": null,
         "key_shift": "U",
         "key_ctrl": "U",
         "key_alt": "U",
         "key_space": "U",
         "key_leftArrow": "U",
         "key_upArrow": "U",
         "key_rightArrow": "U",
         "key_downArrow": "U",
         "key_0": "U",
         "key_1": "U",
         "key_2": "U",
         "key_3": "U",
         "key_4": "U",
         "key_5": "U",
         "key_6": "U",
         "key_7": "U",
         "key_8": "U",
         "key_9": "U",
         "key_a": "U",
         "key_b": "U",
         "key_c": "U",
         "key_d": "U",
         "key_e": "U",
         "key_f": "U",
         "key_g": "U",
         "key_i": "U",
         "key_j": "U",
         "key_k": "U",
         "key_l": "U",
         "key_m": "U",
         "key_p": "U",
         "key_q": "U",
         "key_r": "U",
         "key_s": "U",
         "key_t": "U",
         "key_v": "U",
         "key_w": "U",
         "key_x": "U",
         "key_z": "U",
         "key_s_enabled": true,
         "key_k_enabled": true,
         "key_i_enabled": true,
         "triangle_raw_2d_px": [{
               "x": 0,
               "y": 0
            }, {
               "x": 11,
               "y": 12
            }, {
               "x": 3,
               "y": 16
            }
         ],
         "NPC_guncooling_timer_s": 0,
         "NPC_guncooling_timer_limit_s": 2,
         "NPC_shield_timer_s": 0,
         "NPC_shield_timer_limit_s": 0.5,
         "NPC_pin_timer_s": 0,
         "NPC_pin_timer_limit_s": 5,
         "NPC_aimStepCount": 0,
         "NPC_aimStepCount_limit": 20,
         "NPC_skipFrame": false,
         "triangle_2d_px": [{
               "x": 635,
               "y": 390
            }, {
               "x": 646,
               "y": 402
            }, {
               "x": 638,
               "y": 406
            }
         ]
      }
   }
}