[{"data":1,"prerenderedAt":307},["ShallowReactive",2],{"project-29369877":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":45,"post_text":48,"what":49,"said":85,"maker_in_thread":188,"shape":197,"grid":200,"attempts":269,"same_week":270,"maker_shows":39,"maker_hidden":300,"reader_version":301,"card":302},"29369877","Life Simulation","Life Simulation Written in Rust","title","Show HN: Life Simulation Written in Rust","https:\u002F\u002Fjoelthelion.github.io\u002Flife_web\u002Fdemo\u002F","joelthelion.github.io","joelthelion",1638115043,2021,169,32,282,2533,12,"notable","games","artificial life simulation","web_app",[24,25,26,27,28],"life simulation","rust","natural selection","macroquad","evolution simulation","curious",0.21,{"positive":32,"neutral":33,"mixed":34,"critical":35},8,10,0,2,20,{"execution":38,"design":40,"idea":41,"performance":43,"docs":44},{"positive":39,"critical":39},1,{"positive":34,"critical":34},{"positive":42,"critical":34},4,{"positive":34,"critical":39},{"positive":34,"critical":34},[34,46,46,47,47,46,46,46,47,34,34,34,39,34,46,46,47,47,47,47,34,34,34,34,47,34,46,47,34,34,47,39],5,3,null,{"problem":48,"audience":48,"pricing":48,"motivation":50,"time_to_build":48,"stack":57,"openness":84,"stage":84,"team_size":84},{"value":51,"source":52,"evidence":53},"Finds it fascinating how complex patterns emerge from simple rules and natural selection","maker",[54],{"id":55,"by":11,"text":56},"29369878","I made this simple 2D simulation of life using Rust. I find it fascinating to see how complex patterns can emerge from simple rules, and how well natural selection works! The…",[58,62,73],{"value":59,"source":52,"evidence":60},"Rust",[61],{"id":55,"by":11,"text":56},{"value":63,"source":64,"evidence":65},"Macroquad graphics library","commenter",[66,70],{"id":67,"by":68,"text":69},"29370735","jacobmischka","Macroquad is great, it does make that virtually effortless. Nice work!",{"id":71,"by":68,"text":72},"29375107","Answer to both questions: https:\u002F\u002Fmacroquad.rs\u002F",{"value":74,"source":64,"evidence":75},"R* tree crate for spatial indexing",[76,80],{"id":77,"by":78,"text":79},"29371546","joelthelion2","Believe it or not, there is an annoying bug in the R* tree crate I use that causes it to occasionally panic. I added a very ugly workaround that seems to work quite well though :)",{"id":81,"by":82,"text":83},"29372624","nynx","Oops, you're already using a R* tree!","unknown",{"praise":86,"objections":107,"requests":123,"questions":148,"alternatives":175},[87,102],{"value":88,"source":64,"evidence":89},"Fascinating emergent behaviour from simple rules",[90,94,98],{"id":91,"by":92,"text":93},"29371495","cosmodisk","This is super nice: I sat for nearly 10 min observing how the numbers go up and dow and how they consume each other.",{"id":95,"by":96,"text":97},"29374543","bschwindHN","Much more interesting than Conway's game of life! Thanks for sharing.",{"id":99,"by":100,"text":101},"29384935","ASalazarMX","I had to close the tab because I know I will stare at it for a while and I'm at work. Really interesting. Is the \"biot\" name a reference to Rendezvous with Rama?",{"value":103,"source":64,"evidence":104},"Easy port to the web with Macroquad",[105,106],{"id":67,"by":68,"text":69},{"id":55,"by":11,"text":56},[108,115],{"value":109,"source":64,"evidence":110},"Performance drops badly once biot count grows past 3000, especially on phone",[111],{"id":112,"by":113,"text":114},"29370335","krisrm","This is neat! The simulation didn't remain \"stable\" for me for very long though; biot count pushed over 3000 and I dropped to just a few fps. I'm on a phone and I'm also a bit…",{"value":116,"source":64,"evidence":117},"Hard to tell colour and shape meanings and colour blindness makes it harder",[118,119],{"id":112,"by":113,"text":114},{"id":120,"by":121,"text":122},"29371765","SkyMarshal","Question - it seems you explained what all the colors do, but what do the different shapes mean (squares and circles)?",[124,135,142],{"value":125,"source":64,"evidence":126},"Run as an XScreenSaver or Linux screensaver",[127,131],{"id":128,"by":129,"text":130},"29371822","woodruffw","This is extremely cool! I wonder how much work it would be to bundle it up into an XScreenSaver-compatible binary. Edit: It looks like running it locally on X11 is trivial, so…",{"id":132,"by":133,"text":134},"29377104","8589934591","Neat. Is there a way I can use this as a screensaver on linux?",{"value":136,"source":64,"evidence":137},"Keyboard shortcuts to skip generations",[138],{"id":139,"by":140,"text":141},"29373414","lloydatkinson","Could you add some keyboard shortcuts to make it skip a few dozen generations?",{"value":143,"source":64,"evidence":144},"Port to wgpu and run simulation on GPU",[145],{"id":146,"by":82,"text":147},"29370605","Awesome! Now you gotta port it to wgpu and run the simulation on the GPU!",[149,157,167],{"value":150,"source":64,"evidence":151},"What do the square and circle shapes mean",[152,153],{"id":120,"by":121,"text":122},{"id":154,"by":155,"text":156},"29371796","alexeldeib","Square indicates intelligence, which allows them to move non randomly towards the nearest edible biot (it’s on the page right after the bullet points).",{"value":158,"source":64,"evidence":159},"Is this a specific algorithm like Conway's Game of Life",[160,164],{"id":161,"by":162,"text":163},"29373075","la_fayette","Is this a specific algorithm, defined like conways game of life? I have never read any Rust source code, so I would like to unterstand it generally...",{"id":165,"by":11,"text":166},"29373242","This is closer to real life than Conway's algorithm. Biots are able to move freely, have a very simple genome that gives them unique characteristics, and natural selection does…",{"value":168,"source":64,"evidence":169},"How was Rust compiled for the web",[170,174],{"id":171,"by":172,"text":173},"29373701","worldmerge","That looks really cool! What graphics library did you use or did you make your own? Also how did you compile rust code for the web? And were there any challenges with it like…",{"id":71,"by":68,"text":72},[176,181],{"value":177,"source":64,"evidence":178},"Conway's Game of Life",[179,180],{"id":95,"by":96,"text":97},{"id":165,"by":11,"text":166},{"value":182,"source":64,"evidence":183},"Substrate screensaver by Jamie Zawinski",[184],{"id":185,"by":186,"text":187},"29373467","Datagenerator","That would be great. Another awesome screensaver is called substrate and included in the set 1) by Jamie Zawinski ( among the founders of Netscape and Mozilla ). 1)…",{"comments":46,"answered":35,"key":189},[190,191,194],{"id":55,"text":56},{"id":192,"text":193},"29370404","If you wait for a few more minutes, it's highly likely that a predator will emerge. Maybe you were just unlucky though.",{"id":195,"text":196},"29373153",":-)",{"commenters":198,"max_depth":46,"maker_replies":46,"first_comment_mins":34,"lifespan_hours":199},21,150,[201,203,205,209,211,212,213,215,217,220,222,225,227,229,231,234,235,236,238,239,242,245,247,248,250,252,253,254,256,259,262,267],[55,34,34,202,11,39],"maker\u002Fpositive\u002Fidea",[67,34,46,204,68,34],"project\u002Fpositive\u002Fexecution",[206,34,46,207,208,34],"29371619","project\u002Fpositive\u002Fnone","artursapek",[120,34,47,210,121,34],"project\u002Fneutral\u002Fdesign",[154,34,47,210,155,34],[99,34,46,207,100,34],[128,39,46,214,129,34],"project\u002Fpositive\u002Fidea",[216,39,46,214,78,34],"29371928",[218,39,47,219,129,34],"29372182","project\u002Fneutral\u002Fexecution",[185,39,34,221,186,34],"other\u002Fneutral\u002Fnone",[223,39,34,221,224,34],"29373761","phyalow",[226,39,34,221,129,34],"29373801",[112,35,39,228,113,34],"project\u002Fcritical\u002Fperformance",[192,35,34,230,11,39],"project\u002Fneutral\u002Fidea",[232,35,46,214,233,34],"29371655","Ardon",[95,47,46,214,96,34],[171,42,47,219,172,34],[71,42,47,237,68,34],"project\u002Fneutral\u002Fdocs",[139,46,47,210,140,34],[146,240,47,241,82,34],6,"project\u002Fneutral\u002Fperformance",[243,240,34,244,78,34],"29371554","commenter\u002Fneutral\u002Fperformance",[246,240,34,244,82,34],"29371798",[81,240,34,244,82,34],[195,240,34,249,11,39],"maker\u002Fneutral\u002Fnone",[161,251,47,230,162,34],7,[165,251,34,230,11,39],[91,32,46,207,92,34],[132,255,47,230,133,34],9,[257,255,34,258,11,39],"29383238","commenter\u002Fneutral\u002Fnone",[260,33,34,221,261,34],"29444598","_theory_",[263,264,47,265,266,34],"29371434",11,"project\u002Fneutral\u002Fnone","syspec",[77,264,39,268,78,34],"project\u002Fcritical\u002Fexecution",[],[271,276,281,286,290,295],{"id":272,"name":273,"points":274,"category":275},"29349079","shuffle.dev",317,"web_saas",{"id":277,"name":278,"points":279,"category":280},"29368552","4K Desktop Wallpaper Generator",258,"creative",{"id":282,"name":283,"points":284,"category":285},"29406112","Neko",227,"infrastructure",{"id":287,"name":288,"points":289,"category":275},"29381055","Security Camera Lens Calculator",178,{"id":291,"name":292,"points":293,"category":294},"29391107","py_regular_expressions interactive exercises",175,"learning_science",{"id":296,"name":297,"points":298,"category":299},"29359966","Mood2Movie",163,"consumer_social",false,"v2",{"id":303,"name":5,"line":6,"ai":300,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":304,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":305,"url":9,"mix":306,"praise":88,"objection":109,"sub":21},29369877,[24,25,26,27,28],"05533555300010553333000030530031",[32,33,34,35],1794036613622]