[{"data":1,"prerenderedAt":388},["ShallowReactive",2],{"project-9532467":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":45,"post_text":47,"what":48,"said":79,"maker_in_thread":163,"shape":173,"grid":176,"attempts":351,"same_week":352,"maker_shows":18,"maker_hidden":380,"reader_version":381,"card":382},"9532467","Neural Slime Volleyball","Recurrent neural net plays 'neural slime volleyball' in JavaScript","title","Show HN: Recurrent neural net plays 'neural slime volleyball' in JavaScript","http:\u002F\u002Fotoro.net\u002Fslimevolley","otoro.net","hardmaru",1431444547,2015,147,74,141,2565,6,"notable","games","neural network game","web_app",[24,25,26,27],"recurrent neural network","neuroevolution","slime volleyball","javascript","curious",0.063,{"positive":31,"neutral":32,"mixed":33,"critical":18},13,26,1,46,{"idea":36,"docs":39,"design":41,"performance":43,"execution":44},{"positive":37,"critical":38},8,2,{"positive":33,"critical":40},0,{"positive":40,"critical":42},3,{"positive":40,"critical":33},{"positive":33,"critical":40},[40,42,46,46,42,46,46,42,33,42,33,42,40,46,46,46,42,40,42,42,33,40,40,40,42,42,33,42,42,42,42,46,42,42,46,46,42,40,40,46],5,null,{"problem":47,"audience":47,"pricing":47,"motivation":49,"time_to_build":47,"stack":56,"openness":76,"stage":77,"team_size":78},{"value":50,"source":51,"evidence":52},"Learn reinforcement learning and neural nets by building a game","maker",[53],{"id":54,"by":11,"text":55},"9535213","haha, I like that. Yeah, there are a total of 140 weights\u002Fbiases in the neural network. This stuff is not bleeding edge - just taking techniques popular in academia and industry…",[57,65],{"value":58,"source":51,"evidence":59},"JavaScript",[60,64],{"id":61,"by":62,"text":63},"9533799","deepnet","Line 60 of slimevolley_pro.js contains the \"learned\" behaviour in 140 floats: ```…",{"id":54,"by":11,"text":55},{"value":66,"source":67,"evidence":68},"convnet.js","commenter",[69,73],{"id":70,"by":71,"text":72},"9536424","thomasfoster96","I'm a little confused - the convnet.js library doesn't do recurrent neural networks, but the recurrent.js library (by the same author) does. Yet convnet.js seems to be being used…",{"id":74,"by":62,"text":75},"9533724","[accompanying blog post](http:\u002F\u002Fblog.otoro.net\u002F2015\u002F03\u002F28\u002Fneural-slime-volleyball\u002F) I too am perplexed as to what the neurons represent, the blog describes the RNN as 19 inputs…","open_source","launched","solo",{"praise":80,"objections":96,"requests":115,"questions":133,"alternatives":148},[81,88],{"value":82,"source":67,"evidence":83},"Interesting neuroevolution approach",[84,85],{"id":74,"by":62,"text":75},{"id":86,"by":62,"text":87},"9537598","While Deep-Q-Learning is powerful, it uses backprop - your use of CNE genetic evolution rather than backprop may provide a more global search than Mnih's Deep-Q. The methods seem…",{"value":89,"source":67,"evidence":90},"Fun old-school game",[91,95],{"id":92,"by":93,"text":94},"9532849","uuave","Yeah, judging the angles and getting the ball to bounce in the right direction is really hard. But I'm gonna see if my kids can play this. I'm guessing they probably can. I like…",{"id":74,"by":62,"text":75},[97,108],{"value":98,"source":67,"evidence":99},"Game is very hard to play as a human",[100,104],{"id":101,"by":102,"text":103},"9532758","ebbv","This is cute but I think it's just a really hard game to play as a human. Your little dude can't move fast enough.",{"id":105,"by":106,"text":107},"9532747","chillingeffect","This is massively frustrating :) although I started to develop some strategies once I got used to the controls. I have a question though: In useful.js, there's a function like…",{"value":109,"source":67,"evidence":110},"Arrow key bindings fail on non-QWERTY keyboards",[111],{"id":112,"by":113,"text":114},"9535792","data_scientist","Please modify the bindings, the directional keys are international, without a qwerty keyboard I can't play - and no, I will not modify it systemwide for just a JS game. Nice one…",[116,126],{"value":117,"source":67,"evidence":118},"Version that starts untrained so training can be watched",[119,123],{"id":120,"by":121,"text":122},"9540874","squeaky-clean","Hope it didn't seem like I was trying to criticize. The app is really cool, and thanks for open-sourcing it. I'd be really interested in seeing the version that doesn't start…",{"id":124,"by":11,"text":125},"9536462","As requested, I put up a demo of neural slime volleyball without any pre-trained agents so you can see them improve gradually as they evolve:…",{"value":127,"source":67,"evidence":128},"Write-up explaining how it works",[129],{"id":130,"by":131,"text":132},"9533709","cowpig","Whoa.... any chance you can write up something on how this works? I've never seen a working implementation of a recurrent net before. I would be very grateful!! Either way, this…",[134,141],{"value":135,"source":67,"evidence":136},"How the network was trained",[137],{"id":138,"by":139,"text":140},"9533475","discardorama","The interesting thing, to me, is how was network the trained?",{"value":142,"source":67,"evidence":143},"Whether it keeps learning from the human player",[144],{"id":145,"by":146,"text":147},"9533783","donatj","Does it continue to learn when I take over control, eg: learn from me, or is the learning done at the time I can play?",[149,156],{"value":150,"source":67,"evidence":151},"Original Java Slime Volleyball game",[152],{"id":153,"by":154,"text":155},"9533891","bufordsharkley","Very interesting-- slime volleyball was quite the thing back in my high school days. (See it here if you can get the Java applets to run in 2015 [1]) I was surprised to see a few…",{"value":157,"source":67,"evidence":158},"Schmidhuber's Evolino",[159],{"id":160,"by":161,"text":162},"9533749","albertzeyer","The method is not unique. See some of the work of Schmidhuber's group. They are doing a lot of reinforcement learning for recurrent nets (LSTMs) and also via evolutionary…",{"comments":164,"answered":38,"key":165},15,[166,167,170],{"id":124,"text":125},{"id":168,"text":169},"9536808","Hi Sahilwasan If you want to learn I found it is best to get your hands dirty and code rather than just watch videos from MOOCs. I didn't know how to do any of this stuff a few…",{"id":171,"text":172},"9537529","The creatures evolved much faster! If you run the training demo at http:\u002F\u002Fotoro.net\u002Fplanks\u002Ftraining.html I noticed that after 50-100 generations they develop insect like…",{"commenters":174,"max_depth":37,"maker_replies":164,"first_comment_mins":175,"lifespan_hours":174},31,40,[177,179,182,184,187,189,192,193,196,198,200,202,205,206,208,211,213,214,218,221,224,227,229,233,235,238,240,242,244,245,247,248,250,252,256,259,260,262,264,268,270,272,274,276,278,280,282,284,286,288,291,293,294,296,298,300,302,304,307,311,313,315,318,321,322,325,327,330,332,334,337,339,342,347],[124,40,40,178,11,33],"maker\u002Fneutral\u002Fnone",[180,40,42,178,181,40],"9536744","sahilwasan",[168,40,40,183,11,33],"maker\u002Fneutral\u002Fdocs",[185,40,46,186,62,40],"9537455","project\u002Fpositive\u002Fidea",[171,40,40,188,11,33],"maker\u002Fneutral\u002Fexecution",[190,40,40,191,11,33],"9537570","project\u002Fneutral\u002Fdocs",[86,40,46,186,62,40],[194,40,42,195,62,40],"9537677","project\u002Fneutral\u002Fidea",[197,40,40,195,11,33],"9537716",[199,40,42,195,62,40],"9537891",[153,33,46,201,154,40],"project\u002Fpositive\u002Fnone",[203,33,46,201,204,40],"9535551","hiharryhere",[130,38,42,191,131,40],[207,38,42,183,62,40],"9534070",[209,38,42,191,210,40],"9534175","fpgaminer",[101,42,33,212,102,40],"project\u002Fcritical\u002Fdesign",[92,42,46,186,93,40],[215,42,33,216,217,40],"9533276","project\u002Fcritical\u002Fperformance","Ntrails",[219,42,40,220,11,33],"9536870","maker\u002Fneutral\u002Fdesign",[222,42,33,212,223,40],"9532930","eghri",[105,225,42,226,106,40],4,"project\u002Fneutral\u002Fexecution",[228,225,42,226,121,40],"9532971",[230,225,40,231,232,40],"9534136","commenter\u002Fneutral\u002Fnone","juliangregorian",[234,225,40,191,11,33],"9535140",[236,225,46,237,62,40],"9535243","project\u002Fpositive\u002Fexecution",[239,225,40,195,11,33],"9535389",[241,225,46,186,62,40],"9537989",[243,225,40,178,11,33],"9538226",[120,225,46,201,121,40],[246,225,40,191,11,33],"9542363",[70,46,42,226,71,40],[249,46,40,226,11,33],"9536625",[251,46,40,231,71,40],"9536719",[253,18,42,254,255,40],"9533096","project\u002Fneutral\u002Fdesign","nine_k",[257,18,42,254,258,40],"9533371","sweezyjeezy",[74,18,46,186,62,40],[160,18,33,261,161,40],"project\u002Fcritical\u002Fidea",[263,18,33,261,62,40],"9533977",[265,18,40,266,267,40],"9534846","other\u002Fneutral\u002Fnone","darkmighty",[269,18,40,266,62,40],"9535116",[271,18,40,266,267,40],"9535269",[273,18,40,266,11,33],"9536710",[275,18,40,231,62,40],"9535312",[277,18,40,266,267,40],"9535386",[279,18,40,266,62,40],"9538045",[281,18,42,195,62,40],"9535063",[283,18,40,266,62,40],"9537730",[285,18,42,254,232,40],"9534251",[112,287,33,212,113,40],7,[289,287,42,290,62,40],"9535833","project\u002Fneutral\u002Fnone",[292,287,40,290,11,33],"9536656",[145,37,42,195,146,40],[295,37,42,226,62,40],"9535440",[138,297,42,195,139,40],9,[299,297,40,266,62,40],"9535162",[301,297,42,195,139,40],"9539907",[303,297,42,191,62,40],"9540755",[305,297,46,306,139,40],"9540984","project\u002Fpositive\u002Fdocs",[308,309,42,195,310,40],"9533287",10,"seanalltogether",[312,309,42,195,258,40],"9533347",[314,309,42,226,310,40],"9533441",[316,309,42,226,317,40],"9533487","cstrahan",[319,309,46,186,320,40],"9533785","ColinDabritz",[61,309,42,226,62,40],[323,309,46,186,324,40],"9534867","_lce0",[54,309,40,326,11,33],"maker\u002Fneutral\u002Fidea",[328,309,42,226,329,40],"9535556","0xdeadbeefbabe",[331,309,42,226,62,40],"9535806",[333,309,40,183,11,33],"9536818",[335,309,40,266,336,40],"9536986","sgentle",[338,309,40,266,62,40],"9537404",[340,309,40,266,341,40],"9537709","dang",[343,344,42,345,346,40],"9536534",11,"project\u002Fmixed\u002Fperformance","technologia",[348,349,46,186,350,40],"9532768",12,"billconan",[],[353,358,363,368,372,376],{"id":354,"name":355,"points":356,"category":357},"9531265","Ephemeral P2P",803,"languages",{"id":359,"name":360,"points":361,"category":362},"9522489","Deck of Cards",255,"dev_tools",{"id":364,"name":365,"points":366,"category":367},"9521177","gnu-pricing",160,"other",{"id":369,"name":370,"points":371,"category":362},"9532951","Pyre",107,{"id":373,"name":374,"points":375,"category":362},"9513784","Slacker",90,{"id":377,"name":378,"points":379,"category":362},"9522885","Departure",78,false,"v2",{"id":383,"name":5,"line":6,"ai":380,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":384,"top":18,"kw":385,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":386,"url":9,"mix":387,"praise":82,"objection":98,"sub":21},9532467,0.06,[24,25,26,27],"0355355313130555303310003313333533553005",[31,32,33,18],1793990924407]