{"version":10,"randomSeed":"1a67a3063df11b3769e3b15e244f1189","graph":{"viewport":{"xmin":-3.019058835721153,"ymin":-3.019058835721151,"zmin":-3.019058835721153,"xmax":3.019058835721153,"ymax":3.019058835721151,"zmax":3.019058835721153},"threeDMode":true,"worldRotation3D":[0.49301149919625376,-0.865874469567211,0.08485908680442768,0.8533261333290887,0.5002613346572178,0.14687786499648028,-0.1696295134674481,-1.1173479599147356e-16,0.9855079036527938],"axis3D":[0,0,-0.9999999999982557],"speed3D":1.2246483076991963,"showPlane3D":false,"showNumbers3D":false,"showAxis3D":false,"product":"graphing-3d"},"expressions":{"list":[{"type":"expression","id":"88","color":"#c74440","latex":"S_{R}"},{"type":"expression","id":"90","color":"#388c46","latex":"S_{I}"},{"type":"expression","id":"81","color":"#6042a6","latex":"r_{H}=r_{a}"},{"type":"expression","id":"82","color":"#aaaaaa","latex":"r_{a}=0.0003","hidden":true},{"type":"folder","id":"7","title":"molecular definition","collapsed":true},{"type":"text","id":"4","folderId":"7","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":"5","folderId":"7","color":"#388c46","latex":"M=\\left[\\left(8,0\\right),\\left(6,1\\right),\\left(6,1\\right),\\left(8,2.1\\right),\\left(6,2\\right),\\left(6,3\\right),\\left(0,1\\right),\\left(0,1\\right),\\left(1,3\\right),\\left(1,3\\right),\\left(0,4\\right),\\left(0,4\\right),\\left(1,5\\right),\\left(1,5\\right),\\left(1,5\\right),\\left(1,6\\right),\\left(1,6\\right),\\left(1,6\\right)\\right]","hidden":true},{"type":"expression","id":"9","folderId":"7","color":"#c74440","latex":"N=\\operatorname{count}\\left(M\\right)"},{"type":"text","id":"12","folderId":"7","text":"counts of immediate \"terminal\" atoms for each atom when viewed as \"central\""},{"type":"expression","id":"13","folderId":"7","color":"#6042a6","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":"15","folderId":"7","text":"counts of bonds on each atom"},{"type":"expression","id":"16","folderId":"7","color":"#c74440","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":"18","folderId":"7","text":"bitmasks for angle-vectors to add for each atom's position"},{"type":"expression","id":"19","folderId":"7","color":"#388c46","latex":"G_{A}=\\left[0,2,4,10,18,36,64,128,260,516,1034,2058,4114,8210,16402,32804,65572,131108\\right]"},{"type":"expression","id":"23","folderId":"7","color":"#2d70b3","latex":"K=19"},{"type":"expression","id":"22","folderId":"7","color":"#c74440","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":"26","folderId":"7","text":"extract bit i of n, R -> Z -> N"},{"type":"expression","id":"27","folderId":"7","color":"#aaaaaa","latex":"B\\left(n,i\\right)=\\operatorname{floor}\\left(\\operatorname{mod}\\left(\\frac{n}{2^{i-1}},2\\right)\\right)"},{"type":"text","id":"29","folderId":"7","text":"(x, y, z) positions of atoms in terms of angle list"},{"type":"expression","id":"30","folderId":"7","color":"#2d70b3","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.9,1\\right\\}\\cdot c_{is}\\left(a\\left[i\\right]\\right)"},{"type":"expression","id":"32","folderId":"7","color":"#6042a6","latex":"c_{is}\\left(\\alpha\\right)=\\frac{\\left(2\\alpha.x,2\\alpha.y,\\alpha.x^{2}+\\alpha.y^{2}-1\\right)}{\\alpha.x^{2}+\\alpha.y^{2}+1}"},{"type":"folder","id":"34","title":"molecule building tools","collapsed":true},{"type":"text","id":"36","folderId":"34","text":"add hydrogens and lone pairs"},{"type":"expression","id":"37","folderId":"34","color":"#2d70b3","latex":"L_{P}=\\left[0,1,0,0,0,0,1,2,3,4\\right]"},{"type":"expression","id":"38","folderId":"34","color":"#388c46","latex":"K_{HL}=7","slider":{"hardMin":true,"min":"1","step":"1"}},{"type":"expression","id":"39","folderId":"34","color":"#6042a6","latex":"K_{HL}\\to1"},{"type":"expression","id":"41","folderId":"34","color":"#c74440","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":"42","title":"display","collapsed":true},{"type":"expression","id":"43","folderId":"42","color":"#2d70b3","latex":"R_{E}=\\left[1.5,1.5,2,2,2,2,2,2,2,2\\right]"},{"type":"expression","id":"44","folderId":"42","color":"#388c46","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":"46","folderId":"42","text":"bonds"},{"type":"expression","id":"47","folderId":"42","color":"#aaaaaa","latex":"C_{g}=\\operatorname{hsv}\\left(0,0,0.4\\right)"},{"type":"expression","id":"50","folderId":"42","color":"#388c46","latex":"I_{S}=\\operatorname{segment}\\left(\\left(\\infty,\\infty,\\infty\\right),\\left(\\infty,\\infty,\\infty\\right)\\right)","hidden":true},{"type":"expression","id":"49","folderId":"42","color":"#2d70b3","latex":"\\left[\\left\\{M\\left[k\\right].x=0:I_{S},\\operatorname{mod}\\left(M\\left[k\\right].y,1\\right)=0:\\operatorname{segment}\\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}","lineWidth":"3"},{"type":"expression","id":"92","folderId":"42","color":"#aaaaaa","latex":"R_{G}\\left(p\\right)=\\left(p.y,-p.x,p.z\\right)"},{"type":"expression","id":"93","folderId":"42","color":"#c74440","latex":"N_{V}\\left(p,x\\right)=\\frac{xp}{\\operatorname{distance}\\left(\\left(0,0,0\\right),p\\right)}"},{"type":"expression","id":"94","folderId":"42","color":"#2d70b3","latex":"W_{d}=0.1","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"1"}},{"type":"expression","id":"91","folderId":"42","color":"#388c46","latex":"\\left[\\left\\{\\operatorname{mod}\\left(M\\left[k\\right].y,1\\right)=0.1:\\operatorname{segment}\\left(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)\\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}","lineWidth":"3"},{"type":"expression","id":"96","folderId":"42","color":"#6042a6","latex":"\\left[\\left\\{\\operatorname{mod}\\left(M\\left[k\\right].y,1\\right)=0.1:\\operatorname{segment}\\left(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)\\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}","lineWidth":"3"},{"type":"text","id":"65","folderId":"42","text":"atoms"},{"type":"expression","id":"66","folderId":"42","color":"#aaaaaa","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":"67","folderId":"42","color":"#c74440","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":"52","folderId":"42","color":"#aaaaaa","latex":"P_{M}=\\left[P_{S}\\left(A_{B},g\\right)\\operatorname{for}g=\\left[1...N\\right]\\right]","colorLatex":"C_{M}","pointSize":"5R_{M}"},{"type":"folder","id":"54","title":"rapidly changing data","hidden":true,"collapsed":true},{"type":"expression","id":"55","folderId":"54","color":"#2d70b3","latex":"A_{B}=\\left[\\left(0.48158609839145305,-0.40783651351044226\\right),\\left(1.405928733880228,-1.153779834723553\\right),\\left(-0.3489224806564623,0.24431330255095074\\right),\\left(1.2947644173113804,0.6450905707789003\\right),\\left(0.05110426760123365,-1.0925528909386792\\right),\\left(-0.15654698906765818,0.3408192475577538\\right),\\left(0.7202689227209562,0.004495037999036721\\right),\\left(-0.9691827356024341,-0.8751210142435923\\right),\\left(-1.970228860597441,0.04200569230246411\\right),\\left(0.12035177838494215,-0.44233289440398926\\right),\\left(0.3143572147871758,0.03915082959220317\\right),\\left(1.225247053852343,-0.015095469541867912\\right),\\left(-0.39641733622588204,-0.5237281250039982\\right),\\left(0.6047526376586598,-1.1319105687642221\\right),\\left(0.5740610381014057,-0.24632046836698485\\right),\\left(0.531912326113132,0.419963691339599\\right),\\left(-0.3329549235358502,0.4666651138797162\\right),\\left(-0.008728711699255818,-0.12597271585880154\\right)\\right]"},{"type":"folder","id":"57","title":"initial approximation of layout","collapsed":true},{"type":"expression","id":"58","folderId":"57","color":"#6042a6","latex":"S_{I}=\\left(A_{B}\\to\\left[\\left(2\\operatorname{random}\\left(\\right)-1,2\\operatorname{random}\\left(\\right)-1\\right)\\operatorname{for}b=\\left[1...N\\right]\\right]\\right)"},{"type":"expression","id":"60","folderId":"57","color":"#c74440","latex":"S_{R}=\\left(S_{I},G_{A}\\to\\left[0\\right],K_{HL}\\to1,K\\to1\\right)"},{"type":"folder","id":"69","title":"potential-directed renderer"},{"type":"expression","id":"97","folderId":"69","color":"#aaaaaa","latex":"K_{R}=\\sum_{j=1}^{N}\\sum_{k=1}^{N}\\left\\{M\\left[j\\right].y=k:\\left\\{k>j:\\left\\{\\operatorname{abs}\\left(\\operatorname{distance}\\left(P_{S}\\left(A_{B},j\\right),P_{S}\\left(A_{B},k\\right)\\right)-1\\right)>0.1:1,0\\right\\},0\\right\\},0\\right\\}","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"1"}},{"type":"expression","id":"70","folderId":"69","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:10^{\\left(4-K_{R}\\right)}\\operatorname{abs}\\left(\\operatorname{distance}\\left(P_{S}\\left(a,f\\right),P_{S}\\left(a,g\\right)\\right)-1\\right),\\left\\{K_{R}=0:\\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}},0\\right\\}\\right\\}"},{"type":"expression","id":"72","folderId":"69","color":"#aaaaaa","latex":"h=0.0001","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"1"}},{"type":"expression","id":"71","folderId":"69","color":"#6042a6","latex":"V_{Px}\\left(a\\right)=\\left[\\frac{V\\left(a+\\left\\{M\\left[b\\right].x=1:\\frac{r_{H}}{r_{a}},1\\right\\}\\cdot\\left[\\left\\{b=c:\\left(h,0\\right),\\left(0,0\\right)\\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":"76","folderId":"69","color":"#6042a6","latex":"V_{Py}\\left(a\\right)=\\left[\\frac{V\\left(a+\\left\\{M\\left[b\\right].x=1:\\frac{r_{H}}{r_{a}},1\\right\\}\\cdot\\left[\\left\\{b=c:\\left(0,h\\right),\\left(0,0\\right)\\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":"77","folderId":"69","color":"#aaaaaa","latex":"V_{P}\\left(a\\right)=\\left(V_{Px}\\left(a\\right),V_{Py}\\left(a\\right)\\right)"},{"type":"expression","id":"73","folderId":"69","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}-r_{a}V_{P}\\left(A_{B}\\right)\\right)\\right\\}"}],"ticker":{"handlerLatex":"S_{V}","minStepLatex":"100","playing":true,"open":true}}}