{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":241838957,"defaultBranch":"master","name":"CrowdEgress","ownerLogin":"godisreal","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-02-20T09:07:33.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13465534?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1702737322.0","currentOid":""},"activityList":{"items":[{"before":"b3ea413cfd85b55fca5c1d17a12da6592968f7c9","after":"94039f952315c85c657f5e6ccd96ddcc32c32c0f","ref":"refs/heads/master","pushedAt":"2024-09-19T14:59:41.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Modify ui.py in many aspects:\nMainly integarte the text editor into GUI to easily modify the input csv file.\nRemove useless double comma and use /t to separate the data in csv file\n+ line=re.sub(r',,', '', line)\n+ line_t = re.sub(r',', ',\\t', line)\n\nWhen the input csv file is saved, remove \\t\n+ new_contents2 = re.sub(',\\t', ',', new_contents)\n\nAdd menubar and file menu to open and save input csv file.\n\n+ self.menubar = Menu(self.window, bg=\"lightgrey\", fg=\"black\")\n+ self.window.config(menu=self.menubar)\n+\n+ self.file_menu = Menu(self.menubar, tearoff=0, bg=\"lightgrey\", fg=\"black\")\n+ self.file_menu.add_command(label=\"Open\", command=self.selectEvacFile, accelerator=\"Ctrl+O\")\n+ #self.file_menu.add_command(label=\"Edit\", command=file_edit, accelerator=\"Ctrl+E\")\n+ self.file_menu.add_command(label=\"Save\", command=self.file_save, accelerator=\"Ctrl+S\")\n+ self.menubar.add_cascade(label=\"File\", menu=self.file_menu)\n+\n+ self.window.bind(\"\", self.file_save)\n+ self.window.bind(\"\", self.selectEvacFile)\n\nFix a small problem in treeview table in dataTool panel:\n+ self.table_agent2exit.delete(*self.table_agent2exit.get_children())\n+ self.table_agent2exit.update()","shortMessageHtmlLink":"Modify ui.py in many aspects:"}},{"before":"2dd49bf94580afbe8743cc19bc27730e75751f64","after":"b3ea413cfd85b55fca5c1d17a12da6592968f7c9","ref":"refs/heads/master","pushedAt":"2024-08-31T07:41:28.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Modify agent.py: Serious problem found in the following line: Group social force is good, but the force component to offset possible oscillation is bad.\nself.socialF += self.groupForce(aj, person.DFactor[self.ID, aj.ID], person.AFactor[self.ID, aj.ID], person.BFactor[self.ID, aj.ID]) + 560.0*ggg(np.dot(-vij, nij))*nij*anisoF # The force term of vij_acutalV is not that useful\nDo not use the force component: 560.0*ggg(np.dot(-vij, nij))*nij*anisoF","shortMessageHtmlLink":"Modify agent.py: Serious problem found in the following line: Group s…"}},{"before":"702d4967ff967e3afc94be464e38f56769b5f067","after":"2dd49bf94580afbe8743cc19bc27730e75751f64","ref":"refs/heads/master","pushedAt":"2024-08-31T06:29:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Re-organize the old documents and images.\nRename the folder and copy new images for version 2.4.","shortMessageHtmlLink":"Re-organize the old documents and images."}},{"before":"2750ffccf2ca532331382722d4b89e285492d777","after":"702d4967ff967e3afc94be464e38f56769b5f067","ref":"refs/heads/master","pushedAt":"2024-06-22T14:48:09.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Important change in simulation.py to compute door direction based on egress flow field.\n\nFor solver=1\n- Utemp = self.UallExit\n- Vtemp = self.VallExit\n+ Utemp = self.UallExit[1:-1, 1:-1]\n+ Vtemp = self.VallExit[1:-1, 1:-1]\n\nFor solver=2\n- Utemp = self.UeachExit[idexit]\n- Vtemp = self.VeachExit[idexit]\n+ Utemp = self.UeachExit[idexit][1:-1, 1:-1]\n+ Vtemp = self.VeachExit[idexit][1:-1, 1:-1]\n\nUse min and max in defining rectangular wall door exit in data.py\nTake doors for example as below.\n- door.params[0]= float(startPt[0])\n- door.params[1]= float(startPt[1])\n- door.params[2]= float(endPt[0])\n- door.params[3]= float(endPt[1])\n+ door.params[0]= min(float(startPt[0]),float(endPt[0]))\n+ door.params[1]= min(float(startPt[1]),float(endPt[1]))\n+ door.params[2]= max(float(startPt[0]),float(endPt[0]))\n+ door.params[3]= max(float(startPt[1]),float(endPt[1]))\n\nCreate npzVD npzVE npzEP npzRadius and npzMass in data.py and draw.py:\n+ npzVD = np.zeros((1, simu.num_agents, simu.num_doors))\n+ npzVE = np.zeros((1, simu.num_agents, simu.num_exits))\n+ npzEP = np.zeros((1, simu.num_agents, simu.num_exits))\n\n+ npzRadius = []\n+ npzMass = []\n+ for agent in simu.agents:\n+ npzRadius.append(agent.radius)\n+ npzMass.append(agent.mass)\n+\n\n+ np.savez(simu.outDataName +'.npz', npzTime, npzSee, npzComm, npzTalk, \\\n+ npzP, npzD, npzC, npzB, npzA, \\\n+ npzVD, npzVE, npzEP, npzRadius, npzMass)\n\nDo not change door direction if any menu is open in testGeom (draw.py)\n\n+ if menu_01 or menu_02 or menu_03 or menu_04 or menu_05 or menu_06:\n+ pass\n else:\n+ change_arrows = True\n+ if not draw_state:\n+ draw_arrows = []\n+ draw_arrows.append((mouse_pos-xyShift)*(1/ZOOMFACTOR))\n+ draw_arrows.append((mouse_pos2-xyShift)*(1/ZOOMFACTOR))\n\t\t...\n\t\t...\n\nShow solver in testGeom: This is actually a problem because that solver may not be truely used in simulation.\n+ #text_surface=myfont.render('solver:'+str(simu.solver), True, white, black)\n+ #screen.blit(text_surface, [800,3]) #+xyShift)\n\nCreate and use geomRev in testGeom:\n #if len(walls)>len(simu.walls) or len(doors)>len(simu.doors) or len(exits)>len(simu.exits):\n- if len(walls)>nw or len(doors)>nd or len(exits)>ne:\n+ if geomRev: #len(walls)!=nw or len(doors)!=nd or len(exits)!=ne:\n\nModify show_flow() in many aspects (draw.py)\nshow iii and jjj in the mouse position:\n+ iii=int((xycoordinate[0]-simu.xmin)/simu.dx)\n+ jjj=int((xycoordinate[1]-simu.ymin)/simu.dy)\n+ text_surface=myfont.render(str([iii,jjj]), True, purple, white)\n+ screen.blit(text_surface, mouse_pos2+[0.0, 36.0])\n\nchange door directions; show mesh; show flow field\n- updateExit2Doors(simu.exit2door, os.path.join(simu.fpath, 'bldDataRev.csv'))\n+ updateExit2Doors(simu.exit2door, os.path.join(simu.fpath, 'bldDataRev.csv'), message='in showFlow:')\n\n+ show_mesh(screen, simu.xmin, simu.ymin, simu.xmax, simu.ymax, simu.xpt, simu.ypt, simu.bldmesh, ZOOMFACTOR, xSpace, ySpace)\n\n\n\nAdd opinionExchange() in agent.py\n+ def opinionExchange(self): #, other, mode=1.0):\n\nResume visible doors and exits to recover solver=0\n+ visible_doors = None\n+ visible_exits = None\n\n+ def updateVisibleDoors(self, walls, doors):\n+ self.visibleDoors=self.findVisibleTarget(walls, doors)\n\n+ for door in doors:\n+ person.visible_doors[self.ID, door.oid]=0\n+\n+ for door in self.visibleDoors:\n+ person.visible_doors[self.ID, door.oid]=1\n+\n+ def updateVisibleExits(self, walls, exits):\n+ self.visibleExits=self.findVisibleTarget(walls, exits)\n+\n+ for exit in exits:\n+ person.visible_exits[self.ID, exit.oid]=0\n+\n+ for exit in self.visibleExits:\n+ person.visible_exits[self.ID, exit.oid]=1\n\nModify function of selectTarget() in agent.py for solver=0\n\nRename several functions in agent.py:\n+ def adaptSocialForce(self, agents, GROUPBEHAVIOR, debug=False)\n+ def updateTalkList(self, debug=False)\n+ def updateSeeList(self, agents, walls)\n\nModify simulation.py:\noutput data into framFDS.csv\n- self.walls = readOBST(FN_FDS, '&OBST', self.zmin, self.zmax, 'obst_fromFDS.csv')\n- self.doors = readPATH(FN_FDS, '&HOLE', self.zmin, self.zmax, 'hole_fromFDS.csv')\n+ self.walls = readOBST(FN_FDS, '&OBST', self.zmin, self.zmax, 'fromFDS.csv')\n+ self.doors = readPATH(FN_FDS, '&HOLE', self.zmin, self.zmax, 'fromFDS.csv')\n #self.doors += readPATH(FN_FDS, '&DOOR', self.zmin, self.zmax, 'hole_fromFDS.csv')\n #self.doors += readPATH(FN_FDS, '&ENTRY', self.zmin, self.zmax, 'hole_fromFDS.csv')\n- self.exits = readEXIT(FN_FDS, '&EXIT', self.zmin, self.zmax, 'exit_fromFDS.csv')\n+ self.exits = readEXIT(FN_FDS, '&EXIT', self.zmin, self.zmax, 'fromFDS.csv')\n\nAdjust group dynamics data in preprocessAgent()\nAdjust agent2exit in preprocessAgent():\n+ #print('shape of tableFeatures for &Agent2Exit:', np.shape(tableFeatures))\n+ try:\n+ table2D = arr1D_2D(tableFeatures)\n+ (mmm, nnn) = np.shape(table2D)\n+ #(mmm, nnn) = np.shape(tableFeatures)\n+ print('shape of tableFeatures for &Agent2Exit:', (mmm-1, nnn-1))\n\n- if nnn < len(self.exits):\n- print(\"Error possibly on input data! \\n The number of exits is not consistent with agent2exit data array! Please check\")\n- print(\"Zero probability colomns are added!\")\n- tableFeatures_new = np.zeros((mmm, len(self.exits)))\n- tableFeatures_new[0:mmm, 0:nnn] = tableFeatures\n- tableFeatures = tableFeatures_new\n+ if mmm-1 < len(self.agents):\n+ print(\"Error possibly on input data! \\n The number of agents is not consistent with agent2exit data array! Please check\")\n+\n+ if nnn-1 < len(self.exits):\n+ print(\"Error possibly on input data! \\n The number of exits is not consistent with agent2exit data array! Please check\")\n+ print(\"Zero probability colomns are added!\")\n+ table_new = np.zeros((mmm, len(self.exits)+1))\n+ table_new[0:mmm, 0:nnn] = table2D\n+ tableFeatures = table_new\n+ except:\n+ tableFeatures = np.zeros((len(self.agents)+1, len(self.exits)+1))\n+ for i in range(1, len(self.agents)+1):\n+ for j in range(1, len(self.exits)+1):\n+ tableFeatures[i, j]=float(1/len(self.exits))\n\nVisible_exits are known exits\n+ person.exit_konwn = person.visible_exits + person.exit_known\n+ (M,N)=np.shape(person.exit_konwn)\n+ for i in range(M):\n+ for j in range(N):\n+ if person.exit_known[i,j]>0:\n+ person.exit_known[i,j]=int(1)\n\nModify many things for solver=0 in simulation_step_2022()\n\n- sumForce = motiveForce + peopleInter + wallInter + doorInter + ai.diss*ai.actualV + selfRepulsion + phyInter #+ ai.sumAdapt + phyInter\n+ ai.sumF = motiveForce + peopleInter + wallInter + doorInter + ai.diss*ai.actualV + selfRepulsion + phyInter #+ ai.sumAdapt + phyInter\n\n # Compute acceleration\n- accl = sumForce/ai.mass\n+ ai.accl = ai.sumF/ai.mass\n\n # Store velocity last time point\n ai.desiredV_old = ai.desiredV\n ai.actualV_old = ai.actualV\n # Update agent velocity\n- ai.actualV = ai.actualV + accl*self.DT # consider dt = 0.5\n+ ai.actualV = ai.actualV + ai.accl*self.DT # consider dt = 0.5\n\nPrepare function to update agent velocity:\n+ def simulation_update_agent_velocity(self):\n+ for idai,ai in enumerate(self.agents):\n+\n+ # Whether ai is in computation\n+ if ai.inComp == 0:\n+ continue\n+\n+ ai.accl = ai.sumF/ai.mass\n+\n+ # Store velocity last time point\n+ ai.desiredV_old = ai.desiredV\n+ ai.actualV_old = ai.actualV\n+\n+ # Calculate agent velocity\n+ ai.actualV = ai.actualV + ai.accl*self.DT\n+\n+ #ai.vel = ai.pos + ai.actualV*self.DT\n+ return None\n\n\nSigned-off-by: godisreal ","shortMessageHtmlLink":"Important change in simulation.py to compute door direction based on …"}},{"before":"8da5c70a26fddec135e0b4f907b61fc4ad845455","after":"2750ffccf2ca532331382722d4b89e285492d777","ref":"refs/heads/master","pushedAt":"2024-04-25T12:06:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"General Update of Codework in 2024Apr","shortMessageHtmlLink":"General Update of Codework in 2024Apr"}},{"before":"c86d95ad5d326e0d15e993cf9f8719281048b798","after":"8da5c70a26fddec135e0b4f907b61fc4ad845455","ref":"refs/heads/master","pushedAt":"2024-04-14T07:30:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Update code version based on my efforts in the past few months.\nLearn many things when I write and debug this program.\nComments are much welcome.","shortMessageHtmlLink":"Update code version based on my efforts in the past few months."}},{"before":"52a096e1a79fcb874aecffbc9fea9bf25c89e8b3","after":"c86d95ad5d326e0d15e993cf9f8719281048b798","ref":"refs/heads/master","pushedAt":"2023-12-16T14:35:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Mainly update data_func.py and draw_func.py\n\nsimulation.py: Output simulation data in txt file. \r\ndata_func.py: Add functions and methods for analysis of output data. In particular, modeify readDoorProb() to draw door probability distribution by using matplotlib; Modify readPRTfile() and dump_evac(). \r\ndraw_func.py: Add visualize_evac() to show binary data file (bin)","shortMessageHtmlLink":"Mainly update data_func.py and draw_func.py"}},{"before":"c2f29f74665d9e9119c1fcfb81b39654b266d296","after":"52a096e1a79fcb874aecffbc9fea9bf25c89e8b3","ref":"refs/heads/master","pushedAt":"2023-12-16T10:54:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Add a new example with 3 doors\n\nAdd a new example with 3 doors. This example is mainly developed for our new manuscript to study opinion exchange.","shortMessageHtmlLink":"Add a new example with 3 doors"}},{"before":"5b9b444837d0163d525d7f4d2f45faa5dd8a48d1","after":"c2f29f74665d9e9119c1fcfb81b39654b266d296","ref":"refs/heads/master","pushedAt":"2023-11-30T11:54:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Add files via upload\n\nMainly renew data.py so that input file are simplified in data format. (&GroupABD and 11/inComp)\r\nAdd oid to Wall/Door/Exit, which is automatically determined by the program. Users can modify the name of Wall/Door/Exit, but not change oid. \r\nLabel the door selection probabily in the figure (dataTool).","shortMessageHtmlLink":"Add files via upload"}},{"before":"8d486a5f96c4f56f79b82583ef4251e3bd353642","after":"5b9b444837d0163d525d7f4d2f45faa5dd8a48d1","ref":"refs/heads/master","pushedAt":"2023-11-30T08:47:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Update examples\n\nAdd door flow test, probably to test faster-is-slower effect","shortMessageHtmlLink":"Update examples"}},{"before":"33e8f70dbfeeef8443c465363f1a99f737ac4464","after":"8d486a5f96c4f56f79b82583ef4251e3bd353642","ref":"refs/heads/master","pushedAt":"2023-11-30T07:40:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Update examples\n\nSimplify group data and use &groupABD; Modify agent data with inComp.","shortMessageHtmlLink":"Update examples"}},{"before":"e5db4fa21d932d40455c186f5b82cf839748292f","after":"33e8f70dbfeeef8443c465363f1a99f737ac4464","ref":"refs/heads/master","pushedAt":"2023-11-30T07:22:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Add source file in the folder\n\nMainly renew data.py so that input csv files are simplified in group data (&groupABD). The agent data are also modified in the data sequence (inComp). The examples are to be renewed soon.","shortMessageHtmlLink":"Add source file in the folder"}},{"before":"ededb7dda966a1309c92f37028929b5b3f30bb7f","after":"e5db4fa21d932d40455c186f5b82cf839748292f","ref":"refs/heads/master","pushedAt":"2023-10-11T15:22:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Add evac_memory_test example\n\nThis example is from Timo's test case, which is originally used for FDS+Evac.","shortMessageHtmlLink":"Add evac_memory_test example"}},{"before":"b20da4cccdffd12c6f71a8b5550f251bdb8af805","after":"ededb7dda966a1309c92f37028929b5b3f30bb7f","ref":"refs/heads/master","pushedAt":"2023-10-11T15:17:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Add Case08 example\n\nAdd an example for IEEE CASE 2008","shortMessageHtmlLink":"Add Case08 example"}},{"before":"e408f2a6f9db5954a2c6b0ee804c3d7b190645f8","after":"b20da4cccdffd12c6f71a8b5550f251bdb8af805","ref":"refs/heads/master","pushedAt":"2023-10-11T07:44:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Modify ui.py simulation.py and draw_func.py\n\nui.py: Add new tabs such as EgressFlow, SocialGroup and DataTool\r\nCoordinate simulation.py with ui.py: Add zmin and zmax in simulation.py. Also write doorProb if solver=1;\r\nDump vel_flow1.npz and vel_flow2.npz to the example-based directory. \r\n&Ped2Exit and &Agent2Exit are both used to identify door probability array in the input file.\r\ndraw_func.py: Change color of forces and add a function show_mesh() visualize ghost cells in pygame screen.","shortMessageHtmlLink":"Modify ui.py simulation.py and draw_func.py"}},{"before":"067753d4f8955bc4399a4bce96c1fe62bd5f78cd","after":"e408f2a6f9db5954a2c6b0ee804c3d7b190645f8","ref":"refs/heads/master","pushedAt":"2023-09-26T07:50:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Modify flow.py and data_func.py\n\nflow.py: Add round() to build mesh for exits\r\ndata_func.py: &Ped -> &Agent; &Wall -> &wall; &Door -> &door; &Exit -> &exit","shortMessageHtmlLink":"Modify flow.py and data_func.py"}},{"before":"836d84ea7e6f4563fcdefedbeeb99f12dae43303","after":"067753d4f8955bc4399a4bce96c1fe62bd5f78cd","ref":"refs/heads/master","pushedAt":"2023-09-07T10:36:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Add files via upload\n\nAdd a new version of user guide for 2023. Comments are welcome!","shortMessageHtmlLink":"Add files via upload"}},{"before":"ae3a05a19a884a22533e73132b82345b0216b466","after":"836d84ea7e6f4563fcdefedbeeb99f12dae43303","ref":"refs/heads/master","pushedAt":"2023-08-31T01:46:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Update flow.py simulation.py data_func.py\n\nflow.py and simulation.py: Use round() to increase precision in mesh calculation. Add def lwr2D() in flow.py and update simulation.py correspondingly. \r\ndata_func.py: Add readDoorProb() and critically modify getData() to let the input file compatibly modified by Excel or other similar software","shortMessageHtmlLink":"Update flow.py simulation.py data_func.py"}},{"before":"61053b95616ffd25f036203ef74b27c14c9b00de","after":"ae3a05a19a884a22533e73132b82345b0216b466","ref":"refs/heads/master","pushedAt":"2023-08-10T08:51:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Update ui.py data_func.py and draw_func.py\n\nAdd some manual text for users in ui.py (In Readme tab)\r\nModify draw_func.py and data_func.py so that the compartment layout data are dumped to a single file (bldDataRev.csv) in TestGeom window.","shortMessageHtmlLink":"Update ui.py data_func.py and draw_func.py"}},{"before":"59949a30b8cfcccb04bc210337cca845a41313fc","after":"61053b95616ffd25f036203ef74b27c14c9b00de","ref":"refs/heads/master","pushedAt":"2023-06-02T15:54:37.753Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"No need to add ExitW so far\n\nNo need to add ExitW so far","shortMessageHtmlLink":"No need to add ExitW so far"}},{"before":"829b5ffe5f44866cca0e64e733e14e034e40bdf1","after":"59949a30b8cfcccb04bc210337cca845a41313fc","ref":"refs/heads/master","pushedAt":"2023-06-02T15:28:35.356Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Merge pull request #4 from godisreal/SFPedCrowd-Physics&Psycho\n\nSf ped crowd physics&psycho","shortMessageHtmlLink":"Merge pull request #4 from godisreal/SFPedCrowd-Physics&Psycho"}},{"before":"803ae3419533e51b1363c2a7d94a2b3290bb088b","after":"f5ebb01c63893d442794d284f56b73af985d602e","ref":"refs/heads/SFPedCrowd-Physics&Psycho","pushedAt":"2023-05-21T11:17:01.133Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Update ui.py and draw.py\n\nModify ui.py: Try to first initialize a geom data, and then compute the flow and agent-based simulation. \r\nModify draw_func.py: Remove item in show_geom()","shortMessageHtmlLink":"Update ui.py and draw.py"}},{"before":"494270e05e58584055a1d4ec07789df9c3208785","after":"829b5ffe5f44866cca0e64e733e14e034e40bdf1","ref":"refs/heads/master","pushedAt":"2023-05-21T10:07:13.114Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Update example Compartment_4Exits_2020\n\nActually it is compartment with 2 Exits! Have fun!","shortMessageHtmlLink":"Update example Compartment_4Exits_2020"}},{"before":"dd1c8b65895c77145109a78551e177d43663d866","after":"494270e05e58584055a1d4ec07789df9c3208785","ref":"refs/heads/master","pushedAt":"2023-05-21T09:31:09.814Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Delete examples/Compartment_4Exits_2020/fds_example directory","shortMessageHtmlLink":"Delete examples/Compartment_4Exits_2020/fds_example directory"}},{"before":"5c6537d870cc97d16b14fe8698c667eca00faa51","after":"dd1c8b65895c77145109a78551e177d43663d866","ref":"refs/heads/master","pushedAt":"2023-05-21T09:29:52.271Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Correct the initial position of an agent\n\nCorrect the initial position of an agent","shortMessageHtmlLink":"Correct the initial position of an agent"}},{"before":"f37678159ea4a683ee71e1a48fb6126c0eed4652","after":"5c6537d870cc97d16b14fe8698c667eca00faa51","ref":"refs/heads/master","pushedAt":"2023-05-21T09:06:14.488Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Delete DoorAlgo_B.fds","shortMessageHtmlLink":"Delete DoorAlgo_B.fds"}},{"before":"1825077e87d0e4c8791d276b16f512a691952d79","after":"803ae3419533e51b1363c2a7d94a2b3290bb088b","ref":"refs/heads/SFPedCrowd-Physics&Psycho","pushedAt":"2023-05-14T03:37:59.335Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Update simulation.py and ui.py draw_func.py\n\nModify simulation.py:\r\nDisable eular2D() in flowMesh()\r\nModify ui.py:\r\nUpdate the parameter panel. (There are 6 items there currently.)\r\nModify draw_func.py:\r\nUse color green to display door.arrow and exit2door","shortMessageHtmlLink":"Update simulation.py and ui.py draw_func.py"}},{"before":"4aeff399f6431a9f97cbaa1f98635d882651540e","after":"1825077e87d0e4c8791d276b16f512a691952d79","ref":"refs/heads/SFPedCrowd-Physics&Psycho","pushedAt":"2023-05-14T01:00:52.195Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Recent Changes of User Guide for Version 2.2","shortMessageHtmlLink":"Recent Changes of User Guide for Version 2.2"}},{"before":"c5dfe4554c2115a4b326bc774adaeb43b24252e0","after":"4aeff399f6431a9f97cbaa1f98635d882651540e","ref":"refs/heads/SFPedCrowd-Physics&Psycho","pushedAt":"2023-05-14T00:45:54.888Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Delete UserGuide1.pdf","shortMessageHtmlLink":"Delete UserGuide1.pdf"}},{"before":"29b7563799bccaf426851b08dab776141d4da3aa","after":"f37678159ea4a683ee71e1a48fb6126c0eed4652","ref":"refs/heads/master","pushedAt":"2023-05-13T16:41:43.278Z","pushType":"push","commitsCount":1,"pusher":{"login":"godisreal","name":"Peng Wang","path":"/godisreal","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13465534?s=80&v=4"},"commit":{"message":"Delete UserGuide1.pdf","shortMessageHtmlLink":"Delete UserGuide1.pdf"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQxNDo1OTo0MS4wMDAwMDBazwAAAAS7APh0","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQxNDo1OTo0MS4wMDAwMDBazwAAAAS7APh0","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNS0xM1QxNjo0MTo0My4yNzg4OTZazwAAAAMsF_2f"}},"title":"Activity · godisreal/CrowdEgress"}