{"version":9,"randomSeed":"a94b874b7d808ddbfcddd273dd9a1249","graph":{"viewport":{"xmin":-2.687155854747314,"ymin":-0.9489516474273394,"xmax":9.626825336044577,"ymax":7.583696429557955}},"expressions":{"list":[{"type":"folder","id":"138","title":"setup"},{"type":"text","id":"88","folderId":"138","text":"points of edge chain (wall) to avoid"},{"type":"expression","id":"1","folderId":"138","color":"#c74440","latex":"P=\\left[\\left(7,0\\right),\\left(6,2.5\\right),\\left(3,3\\right),\\left(1.5,1.5\\right),\\left(0,2\\right),\\left(0,0\\right),\\left(2.5,1\\right),\\left(3,2\\right),\\left(5,1.5\\right),\\left(6,0\\right)\\right]","lines":true},{"type":"text","id":"116","folderId":"138","text":"goal point"},{"type":"expression","id":"117","folderId":"138","color":"#6042a6","latex":"G=\\left(6.5,-5.16\\right)"},{"type":"text","id":"140","folderId":"138","text":"initial position and direction"},{"type":"expression","id":"141","folderId":"138","color":"#000000","latex":"C_{0}=\\left(0.44,1\\right)"},{"type":"expression","id":"148","folderId":"138","color":"#c74440","latex":"H_{0}=0.37","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"2\\pi"}},{"type":"text","id":"101","folderId":"138","text":"time step"},{"type":"expression","id":"77","folderId":"138","color":"#388c46","latex":"d_{t}=0.04","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"1"}},{"type":"text","id":"145","folderId":"138","text":"success distance threshold"},{"type":"expression","id":"146","folderId":"138","color":"#6042a6","latex":"K=5"},{"type":"expression","id":"147","color":"#000000","latex":"\\left(x-G.x\\right)^{2}+\\left(y-G.y\\right)^{2}=K^{2}"},{"type":"text","id":"90","text":"current position"},{"type":"expression","id":"72","color":"#388c46","latex":"C=\\left(2.975930380048409,1.9835939749446974\\right)"},{"type":"text","id":"93","text":"current direction"},{"type":"expression","id":"149","color":"#2d70b3","latex":"H=0.37","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"2\\pi"}},{"type":"expression","id":"74","color":"#000000","latex":"V=\\left(\\cos H,\\sin H\\right)","hidden":true},{"type":"text","id":"95","text":"direction indicator"},{"type":"expression","id":"75","color":"#388c46","latex":"\\operatorname{polygon}\\left(C,C+V\\right)","fill":false},{"type":"text","id":"97","text":"simulation step: do nothing if colliding, increment position by velocity, change direction based on navigator"},{"type":"expression","id":"76","color":"#2d70b3","latex":"S=\\left\\{\\operatorname{distance}\\left(C,G\\right)\\le K:\\left(C\\to C\\right),I\\left(C,V,P\\right)=0:\\left(C\\to C+d_{t}V,H\\to J\\left(C,H,P\\right)\\right)\\right\\}"},{"type":"text","id":"99","text":"reset position and velocity"},{"type":"expression","id":"84","color":"#000000","latex":"R=\\left(C\\to C_{0},H\\to H_{0}\\right)"},{"type":"expression","id":"135","color":"#c74440","latex":"\\left(0,7\\right)","showLabel":true,"label":"Reset","labelSize":"2","labelOrientation":"right","pointOpacity":"1","pointSize":"30","clickableInfo":{"enabled":true,"latex":"R"}},{"type":"text","id":"103","text":"is there a collision? (an intersection between the particle's immediate path and the walls)"},{"type":"expression","id":"79","color":"#000000","latex":"I\\left(c,v,p\\right)=\\sum_{n=1}^{\\operatorname{length}\\left(p\\right)-1}\\left(\\left|\\operatorname{sgn}\\left(L\\left(p\\left[n\\right],p\\left[n+1\\right],c\\right)\\right)-\\operatorname{sgn}\\left(L\\left(p\\left[n\\right],p\\left[n+1\\right],c+d_{t}v\\right)\\right)\\right|\\cdot\\left\\{0\\le\\frac{D\\left(c-p\\left[n\\right],p\\left[n+1\\right]-p\\left[n\\right]\\right)}{D\\left(p\\left[n+1\\right]-p\\left[n\\right],p\\left[n+1\\right]-p\\left[n\\right]\\right)}\\le1,0\\right\\}\\right)"},{"type":"text","id":"134","text":"scoring of a navigation algorithm"},{"type":"expression","id":"132","color":"#6042a6","latex":"M=\\left\\{\\operatorname{distance}\\left(C,G\\right)\\le K:1000,\\operatorname{round}\\left(100\\ln\\left(\\frac{1}{\\operatorname{distance}\\left(C,G\\right)}\\right)+500\\right)\\right\\}"},{"type":"expression","id":"131","color":"#000000","latex":"\\left(0,5\\right)\\left\\{I\\left(C,V,P\\right)\\ge0\\right\\}","showLabel":true,"label":"Score: ${M}","hidden":true,"labelSize":"2","labelOrientation":"right","pointOpacity":"1"},{"type":"text","id":"107","text":"implicit form of a line with points A and B"},{"type":"expression","id":"82","color":"#388c46","latex":"L\\left(A,B,v\\right)=\\left(v.y-A.y\\right)\\left(B.x-A.x\\right)-\\left(v.x-A.x\\right)\\left(B.y-A.y\\right)"},{"type":"text","id":"109","text":"acceleration selector"},{"type":"folder","id":"121","title":"navigation algorithm"},{"type":"text","id":"130","folderId":"121","text":"generated direction"},{"type":"expression","id":"80","folderId":"121","color":"#c74440","latex":"J\\left(c,h,p\\right)=h"},{"type":"text","id":"113","text":"dot product of vectors"},{"type":"expression","id":"114","color":"#2d70b3","latex":"D\\left(u,v\\right)=u.x\\cdot v.x+u.y\\cdot v.y"}],"ticker":{"handlerLatex":"S","minStepLatex":"50","playing":true,"open":true}}}