{"version":9,"randomSeed":"ee70ab677b391c6d5bf269bb55e1ac1c","graph":{"viewport":{"xmin":-1.25,"ymin":-1.15639018835206,"xmax":1.25,"ymax":1.1563901883520635}},"expressions":{"list":[{"type":"text","id":"2","text":"inspired by \"Gradient descent, how neural networks learn | Chapter 2, Deep learning\" by 3Blue1Brown (2017) https://www.youtube.com/watch?v=IHZwWFHWa-w"},{"type":"folder","id":"4","title":"library of useful functions","collapsed":true},{"type":"text","id":"5","folderId":"4","text":"project, R^3 -> R^2"},{"type":"expression","id":"6","folderId":"4","color":"#2d70b3","latex":"P\\left(v\\right)=\\frac{\\left(v\\left[1\\right],v\\left[2\\right]\\right)}{v\\left[3\\right]}"},{"type":"text","id":"7","folderId":"4","text":"project list, R^(3*n) -> R^3 -> R^2 -> (R^2)^n"},{"type":"expression","id":"8","folderId":"4","color":"#2d70b3","latex":"P_{L}\\left(v,o,\\phi\\right)=\\left[P\\left(R_{x}\\left(R_{y}\\left(o+\\left[v\\left[3k-2\\right],v\\left[3k-1\\right],v\\left[3k\\right]\\right],\\phi.x\\right),\\phi.y\\right)\\right)\\operatorname{for}k=\\left[1...\\frac{\\operatorname{length}\\left(v\\right)}{3}\\right]\\right]"},{"type":"text","id":"9","folderId":"4","text":"dot product, R^n -> R^n -> R"},{"type":"expression","id":"10","folderId":"4","color":"#c74440","latex":"D\\left(u,v\\right)=\\sum_{k=1}^{\\min\\left(\\operatorname{length}\\left(u\\right),\\operatorname{length}\\left(v\\right)\\right)}u\\left[k\\right]v\\left[k\\right]"},{"type":"text","id":"11","folderId":"4","text":"cross product, R^3 -> R^3"},{"type":"expression","id":"12","folderId":"4","color":"#388c46","latex":"C\\left(u,v\\right)=\\left[u\\left[2\\right]v\\left[3\\right]-u\\left[3\\right]v\\left[2\\right],u\\left[3\\right]v\\left[1\\right]-u\\left[1\\right]v\\left[3\\right],u\\left[1\\right]v\\left[2\\right]-u\\left[2\\right]v\\left[1\\right]\\right]"},{"type":"text","id":"13","folderId":"4","text":"normalise vector, R^n -> R^n"},{"type":"expression","id":"14","folderId":"4","color":"#6042a6","latex":"N\\left(v\\right)=\\frac{v}{\\sqrt{D\\left(v,v\\right)}}"},{"type":"text","id":"15","folderId":"4","text":"insert element as replacement, R^n -> N -> {R, R^2} -> R^n"},{"type":"expression","id":"16","folderId":"4","color":"#2d70b3","latex":"I\\left(L,i,x\\right)=\\left\\{i=1:\\operatorname{join}\\left(x,L\\left[2...\\right]\\right),i=\\operatorname{length}\\left(L\\right):\\operatorname{join}\\left(L\\left[1...\\operatorname{length}\\left(L\\right)-1\\right],x\\right),\\operatorname{join}\\left(L\\left[1...i-1\\right],x,L\\left[i+1...\\right]\\right)\\right\\}"},{"type":"text","id":"17","folderId":"4","text":"rotate around each axis, R^3 -> R^3"},{"type":"expression","id":"18","folderId":"4","color":"#2d70b3","latex":"R_{x}\\left(v,\\theta\\right)=\\left[v\\left[1\\right],v\\left[2\\right]\\cos\\theta-v\\left[3\\right]\\sin\\theta,v\\left[2\\right]\\sin\\theta+v\\left[3\\right]\\cos\\theta\\right]"},{"type":"expression","id":"19","folderId":"4","color":"#388c46","latex":"R_{y}\\left(v,\\theta\\right)=\\left[v\\left[1\\right]\\cos\\theta-v\\left[3\\right]\\sin\\theta,v\\left[2\\right],v\\left[1\\right]\\sin\\theta+v\\left[3\\right]\\cos\\theta\\right]"},{"type":"expression","id":"20","folderId":"4","color":"#6042a6","latex":"R_{z}\\left(v,\\theta\\right)=\\left[v\\left[1\\right]\\cos\\theta-v\\left[2\\right]\\sin\\theta,v\\left[1\\right]\\sin\\theta+v\\left[2\\right]\\cos\\theta,v\\left[3\\right]\\right]"},{"type":"text","id":"25","text":"R^2 -> R function"},{"type":"expression","id":"21","color":"#c74440","latex":"f\\left(x,y\\right)=3\\cos\\left(1.5\\left(x\\right)\\right)\\cos\\left(1.5y\\right)e^{\\frac{-x^{2}-y^{2}}{8}}"},{"type":"text","id":"27","text":"parametric surface"},{"type":"expression","id":"29","color":"#c74440","latex":"\\alpha=0.47","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"2\\pi"}},{"type":"expression","id":"30","color":"#2d70b3","latex":"\\beta=5.63","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"2\\pi"}},{"type":"expression","id":"28","color":"#000000","latex":"F\\left(p\\right)=\\left[0,0,6\\right]+R_{x}\\left(R_{y}\\left(\\left[p.x,f\\left(p.x,p.y\\right),p.y\\right],\\alpha\\right),\\beta\\right)"},{"type":"text","id":"32","text":"viewed size of parameter-space"},{"type":"expression","id":"33","color":"#6042a6","latex":"s=4","labelSize":"medium","slider":{"hardMin":true,"hardMax":true,"min":"0"}},{"type":"folder","id":"37","title":"boring rendering stuff, see https://www.desmos.com/calculator/jbkmvdyevy","collapsed":true},{"type":"expression","id":"67","folderId":"37","color":"#000000","latex":"x\\le x+1","fillOpacity":"1"},{"type":"expression","id":"49","folderId":"37","color":"#2d70b3","latex":"d_{p}=\\frac{1}{4}"},{"type":"expression","id":"38","folderId":"37","color":"#2d70b3","latex":"J=\\left[\\left(i,j\\right)\\operatorname{for}i=\\left[-s,-s+d_{p},...s\\right],j=\\left[-s,-s+d_{p},...s\\right]\\right]","hidden":true},{"type":"expression","id":"41","folderId":"37","color":"#000000","latex":"h=0.0001","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"1"}},{"type":"text","id":"44","folderId":"37","text":"hey look, we're taking a derivative already to render stuff, how cute"},{"type":"expression","id":"42","folderId":"37","color":"#c74440","latex":"M=\\left[\\max\\left(0,D\\left(-N\\left(C\\left(F\\left(z+\\left(h,0\\right)\\right)-F\\left(z\\right),F\\left(z+\\left(0,h\\right)\\right)-F\\left(z\\right)\\right)\\right),N\\left(\\left[1,1,-1\\right]\\right)\\right)\\right)\\operatorname{for}z=J\\right]"},{"type":"expression","id":"45","folderId":"37","color":"#388c46","latex":"W=\\operatorname{sort}\\left(\\left[\\operatorname{rgb}\\left(96+160c,96+160c,96+160c\\right)\\operatorname{for}c=M\\right],\\left[-F\\left(z\\right)\\left[3\\right]\\operatorname{for}z=J\\right]\\right)"},{"type":"expression","id":"46","folderId":"37","color":"#6042a6","latex":"G=\\left[\\operatorname{polygon}\\left(P\\left(F\\left(z\\right)\\right),P\\left(F\\left(z+\\left(d_{p},0\\right)\\right)\\right),P\\left(F\\left(z+\\left(d_{p},d_{p}\\right)\\right)\\right),P\\left(F\\left(z+\\left(0,d_{p}\\right)\\right)\\right)\\right)\\operatorname{for}z=J\\right]","hidden":true},{"type":"expression","id":"47","folderId":"37","color":"#000000","latex":"H=\\operatorname{sort}\\left(G,\\left[-F\\left(z\\right)\\left[3\\right]\\operatorname{for}z=J\\right]\\right)","lines":false,"colorLatex":"W","fillOpacity":"1"},{"type":"expression","id":"48","folderId":"37","color":"#c74440"},{"type":"folder","id":"64","title":"descending sphere"},{"type":"expression","id":"54","folderId":"64","color":"#000000","latex":"a_{m}=\\left(0.8907293810164836,-1.9833744609081676\\right)","hidden":true,"labelSize":"medium"},{"type":"expression","id":"62","folderId":"64","color":"#388c46","latex":"a_{c}=\\left[\\left(1.5886475396880124,-1.941523544907267\\right),\\left(1.489506377743702,-1.954601389084808\\right),\\left(1.3901002876818518,-1.965483909868859\\right),\\left(1.290464907472927,-1.9740156746700608\\right),\\left(1.1906499561658561,-1.9800964226147684\\right),\\left(1.0907140572856358,-1.983676382810412\\right),\\left(0.990719864263517,-1.9847540478118177\\right)\\right]","hidden":true},{"type":"expression","id":"55","folderId":"64","color":"#c74440","latex":"P\\left(F\\left(a_{m}\\right)\\right)","labelSize":"medium","pointSize":"30"},{"type":"expression","id":"65","folderId":"64","color":"#fa7e19","latex":"\\left[P\\left(F\\left(a_{c}\\left[i\\right]\\right)\\right)\\operatorname{for}i=\\left[1...\\operatorname{length}\\left(a_{c}\\right)\\right]\\right]","lines":true,"labelSize":"medium"},{"type":"expression","id":"60","folderId":"64","color":"#c74440","latex":"N_{p}\\left(p\\right)=\\frac{p}{\\operatorname{distance}\\left(\\left(0,0\\right),p\\right)}"},{"type":"expression","id":"61","folderId":"64","color":"#2d70b3","latex":"a_{m}\\to s\\cdot\\left(2\\operatorname{random}\\left(\\right)-1,2\\operatorname{random}\\left(\\right)-1\\right),a_{c}\\to\\left[\\right]"},{"type":"expression","id":"56","folderId":"64","color":"#2d70b3","latex":"a_{m}\\to a_{m}-0.1N_{p}\\left(\\left(\\frac{f\\left(a_{m}.x+h,a_{m}.y\\right)-f\\left(a_{m}.x,a_{m}.y\\right)}{h},\\frac{f\\left(a_{m}.x,a_{m}.y+h\\right)-f\\left(a_{m}.x,a_{m}.y\\right)}{h}\\right)\\right),a_{c}\\to\\operatorname{join}\\left(a_{c},a_{m}\\right)"}]}}