{"version":10,"randomSeed":"03615efef5401e65866e0fbfc71517fb","graph":{"viewport":{"xmin":-2.264582724568165,"ymin":-3.1171287320904795,"xmax":4.198263682661381,"ymax":2.290410305491586},"showGrid":false,"showXAxis":false,"showYAxis":false},"expressions":{"list":[{"type":"expression","id":"119","color":"#388c46","latex":"S_{R}"},{"type":"expression","id":"181","color":"#388c46","latex":"S_{I}"},{"type":"expression","id":"183","color":"#000000","latex":"r_{H}=3r"},{"type":"expression","id":"182","color":"#6042a6","latex":"r=0.0002","hidden":true,"slider":{"hardMin":true,"hardMax":true,"min":"0","max":"1"}},{"type":"folder","id":"49","title":"molecular definition","collapsed":true},{"type":"text","id":"12","folderId":"49","text":"format: M is the molecule, each entry a pair (atom, bonding), where atom is atomic number (+ 0.1 * (formal charge)), bonding is an index into M for a \"central\" atom to which it's bonded (+ 0.1 * (pi bonds))"},{"type":"expression","id":"1","folderId":"49","color":"#c74440","latex":"M=\\left[\\left(6,6\\right),\\left(6,1\\right),\\left(6,2\\right),\\left(6,3\\right),\\left(6,4\\right),\\left(6,5\\right),\\left(1,1\\right),\\left(1,1\\right),\\left(1,2\\right),\\left(1,2\\right),\\left(1,3\\right),\\left(1,3\\right),\\left(1,4\\right),\\left(1,4\\right),\\left(1,5\\right),\\left(1,5\\right),\\left(1,6\\right),\\left(1,6\\right)\\right]","hidden":true},{"type":"expression","id":"42","folderId":"49","color":"#388c46","latex":"N=\\operatorname{length}\\left(M\\right)"},{"type":"text","id":"37","folderId":"49","text":"counts of immediate \"terminal\" atoms for each atom when viewed as \"central\""},{"type":"expression","id":"66","folderId":"49","color":"#c74440","latex":"C_{T}=\\left[\\operatorname{total}\\left(\\left[\\left\\{\\operatorname{round}\\left(m.y\\right)=k:1,0\\right\\}\\operatorname{for}m=M\\right]\\right)+\\left\\{M\\left[k\\right].y=0:0,1\\right\\}\\operatorname{for}k=\\left[1...N\\right]\\right]"},{"type":"text","id":"81","folderId":"49","text":"counts of bonds on each atom"},{"type":"expression","id":"83","folderId":"49","color":"#2d70b3","latex":"C_{B}=\\left[\\operatorname{total}\\left(\\left[\\left\\{\\operatorname{round}\\left(m.y\\right)=k:1+10\\operatorname{mod}\\left(m.y,1\\right),0\\right\\}\\operatorname{for}m=M\\right]\\right)+\\left\\{M\\left[k\\right].y=0:0,1+10\\operatorname{mod}\\left(M\\left[k\\right].y,1\\right)\\right\\}\\operatorname{for}k=\\left[1...N\\right]\\right]"},{"type":"text","id":"161","folderId":"49","text":"bitmasks for angle-vectors to add for each atom's position"},{"type":"expression","id":"130","folderId":"49","color":"#2d70b3","latex":"G_{A}=\\left[0,2,6,14,30,62,64,128,258,514,1030,2054,4110,8206,16414,32798,65598,131134\\right]"},{"type":"expression","id":"164","folderId":"49","color":"#2d70b3","latex":"K=19","slider":{"hardMin":true,"min":"1","step":"1"}},{"type":"expression","id":"175","folderId":"49","color":"#2d70b3","latex":"S_{M}=\\left(G_{A}\\to\\operatorname{join}\\left(G_{A},2^{K-1}+G_{A}\\left[\\operatorname{round}\\left(M\\left[K\\right].y\\right)\\right]\\right)\\right)"},{"type":"text","id":"134","folderId":"49","text":"extract bit i of n, R -> Z -> N"},{"type":"expression","id":"132","folderId":"49","color":"#6042a6","latex":"B\\left(n,i\\right)=\\operatorname{floor}\\left(\\operatorname{mod}\\left(\\frac{n}{2^{i-1}},2\\right)\\right)"},{"type":"text","id":"169","folderId":"49","text":"(x, y) positions of atoms in terms of angle list"},{"type":"expression","id":"144","folderId":"49","color":"#6042a6","latex":"P_{S}\\left(a,g\\right)=\\sum_{i=1}^{N}B\\left(G_{A}\\left[g\\right],i\\right)\\cdot\\left\\{M\\left[i\\right].x=0:0.45,\\left|\\operatorname{mod}\\left(M\\left[i\\right].y,1\\right)-0.1\\right|<10^{-5}:0.7,1\\right\\}\\cdot c_{is}\\left(a\\left[i\\right]\\right)"},{"type":"folder","id":"75","title":"molecule building tools","collapsed":true},{"type":"text","id":"116","folderId":"75","text":"add n-alkyl (length m, starting site n)"},{"type":"expression","id":"117","folderId":"75","color":"#c74440","latex":"B_{nA}\\left(m,n\\right)=\\left(M\\to\\operatorname{join}\\left(M,\\left[\\left(6,\\left\\{k=1:n,N+k-1\\right\\}\\right)\\operatorname{for}k=\\left[1...m\\right]\\right]\\right)\\right)"},{"type":"expression","id":"118","folderId":"75","color":"#2d70b3","latex":"B_{nA}\\left(1,1\\right)"},{"type":"text","id":"104","folderId":"75","text":"add carboxyl group (starting site n)"},{"type":"expression","id":"105","folderId":"75","color":"#c74440","latex":"B_{Cg}\\left(n\\right)=\\left(M\\to\\operatorname{join}\\left(M,\\left[\\left(6,n\\right),\\left(8,N+1.1\\right),\\left(8,N+1\\right)\\right]\\right)\\right)"},{"type":"expression","id":"106","folderId":"75","color":"#2d70b3","latex":"B_{Cg}\\left(1\\right)"},{"type":"text","id":"108","folderId":"75","text":"start with a carbon ring (size n)"},{"type":"expression","id":"109","folderId":"75","color":"#6042a6","latex":"B_{R}\\left(n\\right)=\\left(M\\to\\left[\\left(6,\\left\\{k=1:n,k-1\\right\\}\\right)\\operatorname{for}k=\\left[1...n\\right]\\right]\\right)"},{"type":"expression","id":"110","folderId":"75","color":"#000000","latex":"B_{R}\\left(6\\right)"},{"type":"text","id":"77","folderId":"75","text":"add hydrogens and lone pairs"},{"type":"expression","id":"84","folderId":"75","color":"#388c46","latex":"L_{P}=\\left[0,1,0,0,0,0,1,2,3,4\\right]"},{"type":"expression","id":"79","folderId":"75","color":"#6042a6","latex":"K_{HL}=7","slider":{"hardMin":true,"min":"1","max":"12","step":"1"}},{"type":"expression","id":"101","folderId":"75","color":"#388c46","latex":"K_{HL}\\to1"},{"type":"expression","id":"78","folderId":"75","color":"#388c46","latex":"B_{HL}=\\left\\{M\\left[K_{HL}\\right].x>1:\\left(M\\to\\operatorname{join}\\left(M,\\left\\{C_{B}\\left[K_{HL}\\right]=4:\\left[\\right],\\left[\\left(\\left\\{s\\le L_{P}\\left[\\operatorname{round}\\left(M\\left[K_{HL}\\right].x\\right)\\right]-10\\left(M\\left[K_{HL}\\right].x-\\operatorname{round}\\left(M\\left[K_{HL}\\right].x\\right)\\right):0,1\\right\\},K_{HL}\\right)\\operatorname{for}s=\\left[1...\\left(4-C_{B}\\left[K_{HL}\\right]\\right)\\right]\\right]\\right\\}\\right),K_{HL}\\to K_{HL}+1\\right)\\right\\}"},{"type":"folder","id":"51","title":"display","collapsed":true},{"type":"expression","id":"8","folderId":"51","color":"#388c46","latex":"R_{E}=\\left[1.5,1.5,2,2,2,2,2,2,2,2\\right]"},{"type":"expression","id":"2","folderId":"51","color":"#2d70b3","latex":"C_{E}=\\left[\\operatorname{hsv}\\left(0,0,0.8\\right),\\operatorname{hsv}\\left(0,0,0\\right),\\operatorname{hsv}\\left(0,0,0\\right),\\operatorname{hsv}\\left(0,0,0\\right),\\operatorname{hsv}\\left(0,0,0\\right),\\operatorname{hsv}\\left(0,0,0\\right),\\operatorname{hsv}\\left(230,1,1\\right),\\operatorname{hsv}\\left(0,1,1\\right),\\operatorname{hsv}\\left(80,1,1\\right),\\operatorname{hsv}\\left(0,0,0\\right)\\right]"},{"type":"text","id":"30","folderId":"51","text":"bonds"},{"type":"expression","id":"32","folderId":"51","color":"#388c46","latex":"C_{g}=\\operatorname{hsv}\\left(0,0,0.4\\right)"},{"type":"expression","id":"31","folderId":"51","color":"#000000","latex":"\\left[\\left\\{M\\left[k\\right].x=0:\\operatorname{polygon}\\left(\\left(\\infty,\\infty\\right)\\right),\\operatorname{mod}\\left(M\\left[k\\right].y,1\\right)=0:\\operatorname{polygon}\\left(u_{1},u_{2}\\right)\\right\\}\\operatorname{with}u_{1}=P_{M}\\left[k\\right],u_{2}=P_{M}\\left[\\operatorname{round}\\left(M\\left[k\\right].y\\right)\\right]\\operatorname{for}k=\\left[1...N\\right]\\right]","colorLatex":"C_{g}","lineOpacity":"1","lineWidth":"20"},{"type":"expression","id":"63","folderId":"51","color":"#388c46","latex":"R_{G}\\left(p\\right)=\\left(-p.y,p.x\\right)"},{"type":"expression","id":"65","folderId":"51","color":"#000000","latex":"N_{V}\\left(p,x\\right)=\\frac{xp}{\\operatorname{distance}\\left(\\left(0,0\\right),p\\right)}"},{"type":"expression","id":"70","folderId":"51","color":"#000000","latex":"W_{d}=0.1","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"1"}},{"type":"expression","id":"61","folderId":"51","color":"#c74440","latex":"\\left[\\left\\{\\operatorname{mod}\\left(M\\left[k\\right].y,1\\right)=0.1:\\operatorname{polygon}\\left(u_{1}-N_{V}\\left(R_{G}\\left(u_{1}-u_{2}\\right),W_{d}\\right),u_{1}+N_{V}\\left(R_{G}\\left(u_{1}-u_{2}\\right),W_{d}\\right),u_{2}+N_{V}\\left(R_{G}\\left(u_{1}-u_{2}\\right),W_{d}\\right),u_{2}-N_{V}\\left(R_{G}\\left(u_{1}-u_{2}\\right),W_{d}\\right)\\right)\\right\\}\\operatorname{with}u_{1}=P_{M}\\left[k\\right],u_{2}=P_{M}\\left[\\operatorname{round}\\left(M\\left[k\\right].y\\right)\\right]\\operatorname{for}k=\\left[1...N\\right]\\right]","fill":false,"colorLatex":"C_{g}","lineOpacity":"1","lineWidth":"15"},{"type":"text","id":"53","folderId":"51","text":"atoms"},{"type":"expression","id":"7","folderId":"51","color":"#2d70b3","latex":"C_{M}=\\left[\\left\\{a.x=0:\\operatorname{hsv}\\left(0,0,0\\right),C_{E}\\left[\\operatorname{round}\\left(a.x\\right)\\right]\\right\\}\\operatorname{for}a=M\\right]"},{"type":"expression","id":"86","folderId":"51","color":"#000000","latex":"R_{M}=\\left[\\left\\{a.x=0:0,R_{E}\\left[\\operatorname{round}\\left(a.x\\right)\\right]\\right\\}\\operatorname{for}a=M\\right]"},{"type":"expression","id":"127","folderId":"51","color":"#c74440","latex":"\\left[\\left\\{M\\left[k\\right].x-\\operatorname{round}\\left(M\\left[k\\right].x\\right)>0:P_{M}\\left[k\\right]\\right\\}\\operatorname{for}k=\\left[1...N\\right]\\right]","showLabel":true,"label":"+","hidden":true,"points":false,"dragMode":"NONE","labelSize":"5","suppressTextOutline":true,"colorLatex":"C_{g}"},{"type":"expression","id":"128","folderId":"51","color":"#c74440","latex":"\\left[\\left\\{M\\left[k\\right].x-\\operatorname{round}\\left(M\\left[k\\right].x\\right)<0:P_{M}\\left[k\\right]\\right\\}\\operatorname{for}k=\\left[1...N\\right]\\right]","showLabel":true,"label":"-","hidden":true,"points":false,"dragMode":"NONE","labelSize":"5","suppressTextOutline":true,"colorLatex":"C_{g}"},{"type":"text","id":"97","folderId":"51","text":"lone pairs"},{"type":"expression","id":"100","folderId":"51","color":"#2d70b3","latex":"C_{Y}=\\operatorname{hsv}\\left(60,0.4,0.8\\right)"},{"type":"expression","id":"98","folderId":"51","color":"#c74440","latex":"\\left[\\left\\{M\\left[k\\right].x=0:P_{M}\\left[k\\right]+N_{V}\\left(R_{G}\\left(P_{M}\\left[k\\right]-P_{M}\\left[M\\left[k\\right].y\\right]\\right),0.5W_{d}\\right)\\right\\}\\operatorname{for}k=\\left[1...N\\right]\\right]","colorLatex":"C_{Y}"},{"type":"expression","id":"99","folderId":"51","color":"#c74440","latex":"\\left[\\left\\{M\\left[k\\right].x=0:P_{M}\\left[k\\right]-N_{V}\\left(R_{G}\\left(P_{M}\\left[k\\right]-P_{M}\\left[M\\left[k\\right].y\\right]\\right),0.5W_{d}\\right)\\right\\}\\operatorname{for}k=\\left[1...N\\right]\\right]","colorLatex":"C_{Y}"},{"type":"expression","id":"131","folderId":"51","color":"#388c46","latex":"P_{M}=\\left[P_{S}\\left(A_{B},g\\right)\\operatorname{for}g=\\left[1...N\\right]\\right]","colorLatex":"C_{M}","pointOpacity":"1","pointSize":"50R_{M}"},{"type":"folder","id":"73","title":"rapidly changing data","collapsed":true},{"type":"expression","id":"129","folderId":"73","color":"#c74440","latex":"A_{B}=\\left[3.577074081218209,2147.3652579394516,-123899161.96182524,-164794.81231049076,166996.09014238918,3496.078991438939,21516.725758775036,-23547.18265636218,-33479.80997932217,764.4352979491772,-40772.66549293353,149544325.96740067,1526.7681914498683,-2149.7732251200528,-609.3535535750376,32.41716342688329,-3899.766915830159,-130.7592924474979\\right]"},{"type":"folder","id":"58","title":"initial approximation of layout","collapsed":true},{"type":"expression","id":"177","folderId":"58","color":"#6042a6","latex":"S_{I}=\\left(A_{B}\\to\\left[2\\pi\\operatorname{random}\\left(\\right)\\operatorname{for}b=\\left[1...N\\right]\\right]\\right)"},{"type":"expression","id":"56","folderId":"58","color":"#388c46","latex":"S_{R}=\\left(S_{I},G_{A}\\to\\left[0\\right],K_{HL}\\to1,K\\to1\\right)"},{"type":"expression","id":"28","folderId":"58","color":"#000000","latex":"c_{is}\\left(x\\right)=\\left(\\cos x,\\sin x\\right)"},{"type":"folder","id":"142","title":"potential-directed renderer","collapsed":true},{"type":"expression","id":"143","folderId":"142","color":"#388c46","latex":"V\\left(a\\right)=\\sum_{f=1}^{N}\\sum_{g=1}^{N}\\left\\{f=g:0,\\left\\{M\\left[f\\right].y=g:1,0\\right\\}\\cdot\\left\\{g>f:1,0\\right\\}=1:1000\\left(\\operatorname{distance}\\left(P_{S}\\left(a,f\\right),P_{S}\\left(a,g\\right)\\right)-1\\right)^{2},\\frac{\\left(M\\left[f\\right].x+1\\right)\\left(M\\left[g\\right].x+1\\right)}{\\operatorname{distance}\\left(P_{S}\\left(a,f\\right),P_{S}\\left(a,g\\right)\\right)^{2}}\\right\\}"},{"type":"expression","id":"146","folderId":"142","color":"#c74440","latex":"h=0.0001","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"1"}},{"type":"expression","id":"145","folderId":"142","color":"#000000","latex":"V_{P}\\left(a\\right)=\\left[\\frac{V\\left(a+\\left\\{M\\left[b\\right].x=1:\\frac{r_{H}}{r},1\\right\\}\\cdot\\left[\\left\\{b=c:h,0\\right\\}\\operatorname{for}c=\\left[1...N\\right]\\right]\\right)-V\\left(a\\right)}{h}\\operatorname{for}b=\\left[1...N\\right]\\right]"},{"type":"expression","id":"157","folderId":"142","color":"#c74440","latex":"S_{V}=\\left\\{K=1:\\left\\{M\\left[K_{HL}\\right].x\\le1:\\left(K\\to2,S_{I}\\right),B_{HL}\\right\\},K\\le N:\\left(S_{M},K\\to K+1\\right),\\left(A_{B}\\to A_{B}-rV_{P}\\left(A_{B}\\right)\\right)\\right\\}"}],"ticker":{"handlerLatex":"S_{V}","minStepLatex":"100","open":true}}}