[{"data":1,"prerenderedAt":375},["ShallowReactive",2],{"project-4570382":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":43,"post_text":44,"what":45,"said":86,"maker_in_thread":213,"shape":223,"grid":226,"attempts":336,"same_week":337,"maker_shows":39,"maker_hidden":367,"reader_version":368,"card":369},"4570382","Ejecta","A Fast, Open Source JavaScript, Canvas Implementation for iOS","title","Show HN: Ejecta, A Fast, Open Source JavaScript, Canvas Implementation for iOS","http:\u002F\u002Fimpactjs.com\u002Fejecta","impactjs.com","phoboslab",1348582133,2012,190,45,82,1677,5,"notable","dev_tools","javascript canvas runtime for ios","library",[24,25,26,27,28],"javascript canvas","ios games","html5 games","opengl","javascriptcore","mixed",0.233,{"positive":32,"neutral":33,"mixed":34,"critical":35},9,10,0,2,21,{"idea":38,"performance":40,"execution":42},{"positive":39,"critical":35},3,{"positive":41,"critical":34},1,{"positive":41,"critical":34},[34,18,39,34,34,18,18,18,39,34,39,39,34,34,34,18,34,34,34,39,34,34,34,34,34,34,39,34,18,34,18,39,34,41,18,18,39,34,41,39],null,{"problem":46,"audience":56,"pricing":44,"motivation":44,"time_to_build":44,"stack":67,"openness":84,"stage":85,"team_size":85},{"value":47,"source":48,"evidence":49},"Lets JavaScript code use the Canvas API natively on iOS, with OpenGL rendering","inferred",[50,52],{"id":51},"post",{"id":53,"by":54,"text":55},"4570815","jaipilot747","That the canvas API is implemented with OpenGL is very impressive. CocoonJS [1] (a similar project for Android, as noted in the comments below) seems to have taken the same…",{"value":57,"source":48,"evidence":58},"Developers building HTML5 games for iOS, especially ImpactJS users",[59,63],{"id":60,"by":61,"text":62},"4570748","soapdog","I purchased ImpactJS after picking the \"Creating HTML5 Games\" book about it. I was really surprised with the quality of the toolkit and how responsive the developer is. I think…",{"id":64,"by":65,"text":66},"4570435","dj2stein9","This looks like a great way to build iOS games in HTML5. If he could to get this to work as an Android project it could be used to build games for OUYA.",[68,75,79],{"value":69,"source":70,"evidence":71},"Objective-C","maker",[72],{"id":73,"by":11,"text":74},"4570448","This project is very much iOS specific. It's written in Objective-C and uses JavaScriptCore (Apple's JS engine). So porting this over to Android would be a lot of work. But have…",{"value":76,"source":70,"evidence":77},"JavaScriptCore",[78],{"id":73,"by":11,"text":74},{"value":80,"source":81,"evidence":82},"OpenGL","commenter",[83],{"id":53,"by":54,"text":55},"open_source","unknown",{"praise":87,"objections":109,"requests":133,"questions":153,"alternatives":169},[88,94,98],{"value":89,"source":70,"evidence":90},"Fast rendering; 1000 sprites at 60fps on iPhone 4S",[91],{"id":92,"by":11,"text":93},"4570437","I haven't done any formal benchmarks. A quick test with 1000 sprites runs with 60fps on the iPhone4s. Also try loading this in Mobile Safari and compare it to the video:…",{"value":95,"source":81,"evidence":96},"Impressive Canvas-on-OpenGL approach",[97],{"id":53,"by":54,"text":55},{"value":99,"source":81,"evidence":100},"Maker is a hacker and does great work",[101,105],{"id":102,"by":103,"text":104},"4570612","firlefans","This guy is a hacker in the truest sense, I read a blog post over a year ago about him tinkering away on this. It didn't seem he'd take it this far. It's a great achievement and…",{"id":106,"by":107,"text":108},"4570717","yesimahuman","I used Impact two years ago on something and I was so impressed with the API simplicity and power (not to mention the fact that it ran very well). This guy does great work.",[110,125],{"value":111,"source":81,"evidence":112},"JIT unavailable on iOS, which may slow JavaScript",[113,117,121],{"id":114,"by":115,"text":116},"4573205","kevingadd","Isn't JS performance going to suffer if it's using a custom build of JSC that can't JIT?",{"id":118,"by":119,"text":120},"4573613","killahpriest","Native iOS doesn't have JIT",{"id":122,"by":123,"text":124},"4573696","jevinskie","JSC as used by an app store app does not use Nitro. As the post stated, JSC is a private framework and the only way to use it in an approved app is to import the source into your…",{"value":126,"source":81,"evidence":127},"Only works on iOS, no Android support",[128,132],{"id":129,"by":130,"text":131},"4570397","dsirijus","Pretty cool. What about the support for Android, any plans for that?",{"id":73,"by":11,"text":74},[134,139,146],{"value":135,"source":81,"evidence":136},"Android support",[137,138],{"id":129,"by":130,"text":131},{"id":64,"by":65,"text":66},{"value":140,"source":81,"evidence":141},"Usable without Xcode or a Mac",[142],{"id":143,"by":144,"text":145},"4570610","drcode","Any plans on making it usable without XCode? (or a Mac, for that matter.) Since the users just write javascript code, as long as you give them a way to insert that code into an…",{"value":147,"source":81,"evidence":148},"Browser version",[149],{"id":150,"by":151,"text":152},"4572591","TazeTSchnitzel","I want this in the browser. Throw away the DOM, and let's just have canvas and JS. Skip loading any HTML or CSS. It would be great.",[154,161],{"value":155,"source":81,"evidence":156},"Are there actual benchmarks?",[157],{"id":158,"by":159,"text":160},"4570413","grimboy","Any actual benchmarks?",{"value":162,"source":81,"evidence":163},"Canvas vs WebGL performance on 2D graphics",[164,165],{"id":53,"by":54,"text":55},{"id":166,"by":167,"text":168},"4570934","spot","webgl can be much faster because you can draw many primitives with one call. there's a lot of overhead from js down to gl.",[170,178,185,192,199,206],{"value":171,"source":81,"evidence":172},"CocoonJS",[173,174],{"id":53,"by":54,"text":55},{"id":175,"by":176,"text":177},"4573676","wklauss","Reminds me of CocoonJS (basically the same idea, also support for Android but closed source). https:\u002F\u002Fvimeo.com\u002F45506217 Neat in any case. Looks like a nice implementation.",{"value":179,"source":81,"evidence":180},"DirectCanvas",[181],{"id":182,"by":183,"text":184},"4571239","imaffett","DirectCanvas from appMobi (I work there) is based on iOS impact (and enhanced) - http:\u002F\u002Fwww.appmobi.com . No need for a Mac or XCode.",{"value":186,"source":81,"evidence":187},"Blossom",[188],{"id":189,"by":190,"text":191},"4572816","erichocean","That's pretty much exactly what Blossom[1] is; there's no need to write HTML or CSS. [1] https:\u002F\u002Fgithub.com\u002Ferichocean\u002Fblossom",{"value":193,"source":81,"evidence":194},"Game Closure",[195],{"id":196,"by":197,"text":198},"4573927","tlrobinson","Cool. This sounds a bit like Game Closure (http:\u002F\u002Fgameclosure.com\u002F)",{"value":200,"source":81,"evidence":201},"Node-Five",[202],{"id":203,"by":204,"text":205},"4570740","arturadib","Interesting! I created Node-Five with a similar goal in mind (low-level graphics and audio from the HTML5 spec): http:\u002F\u002Fdocumentup.com\u002Farturadib\u002Fnode-five Glad to see someone had…",{"value":207,"source":81,"evidence":208},"Corona",[209],{"id":210,"by":211,"text":212},"4571541","kylebrown","I was curious about that too. With android support, it would be a good alternative to Corona (use js instead of Lua). For iOS, an added benefit of is that JavascriptCore uses…",{"comments":214,"answered":39,"key":215},4,[216,219,222],{"id":217,"text":218},"4570469","Thanks for the great response so far! I also wrote about some implementation details of the Canvas API and the challenges with OpenGL in my blog:…",{"id":220,"text":221},"4575206","Yes. I wish we could use the JIT – it would make computational heavy stuff way faster. Most games however aren't performance bound by computation, but by drawing. Not having the…",{"id":73,"text":74},{"commenters":224,"max_depth":18,"maker_replies":214,"first_comment_mins":39,"lifespan_hours":225},36,28,[227,229,233,236,238,241,245,246,247,249,251,252,253,255,256,259,262,264,267,269,271,274,277,278,281,284,287,290,292,294,295,296,297,298,300,304,308,310,315,318,322,324,325,329,333],[217,34,34,228,11,41],"maker\u002Fneutral\u002Fnone",[230,34,18,231,232,34],"4570981","maker\u002Fpositive\u002Fnone","mrspeaker",[234,34,39,228,235,34],"4572900","evmar",[60,41,34,237,61,34],"other\u002Fneutral\u002Fnone",[239,41,34,237,240,34],"4571416","city41",[242,35,18,243,244,34],"4570547","project\u002Fpositive\u002Fidea","programminggeek",[102,35,18,231,103,34],[106,35,18,231,107,34],[248,35,34,237,183,34],"4571247",[143,39,39,250,144,34],"project\u002Fneutral\u002Fnone",[182,39,34,237,183,34],[64,214,39,250,65,34],[150,18,39,254,151,34],"project\u002Fneutral\u002Fidea",[189,18,34,237,190,34],[257,18,34,258,151,34],"4572834","commenter\u002Fneutral\u002Fnone",[260,18,34,237,261,34],"4573153","wwweston",[263,18,34,237,151,34],"4577177",[53,265,18,266,54,34],6,"project\u002Fpositive\u002Fperformance",[166,265,34,268,167,34],"other\u002Fneutral\u002Fperformance",[270,265,34,268,54,34],"4571124",[272,265,34,268,273,34],"4572037","greggman",[114,275,39,276,115,34],7,"project\u002Fneutral\u002Fperformance",[118,275,34,268,119,34],[279,275,34,280,115,34],"4573648","commenter\u002Fneutral\u002Fperformance",[282,275,34,268,283,34],"4574045","vicapow",[285,275,34,268,286,34],"4574199","mamp",[288,275,34,237,289,34],"4574607","dutchbrit",[220,275,34,291,11,41],"maker\u002Fneutral\u002Fperformance",[203,293,34,237,204,34],8,[129,32,39,250,130,34],[73,32,34,228,11,41],[210,32,18,243,211,34],[122,32,34,280,123,34],[175,33,18,299,176,34],"project\u002Fpositive\u002Fexecution",[301,302,39,250,303,34],"4571629",11,"SunboX",[305,306,39,254,307,34],"4572509",12,"matthuggins",[196,309,34,237,197,34],13,[311,312,41,313,314,34],"4574906",14,"project\u002Fcritical\u002Fidea","icemelt8",[316,317,18,243,283,34],"4574048",15,[319,320,18,231,321,34],"4570796",16,"wsc981",[158,323,39,276,159,34],17,[92,323,34,266,11,41],[326,327,41,313,328,34],"4570484",18,"acron0",[330,331,39,250,332,34],"4570428",19,"rabidsnail",[334,331,34,237,335,34],"4570546","antidaily",[],[338,343,348,352,357,362],{"id":339,"name":340,"points":341,"category":342},"4556296","The Deeps",158,"games",{"id":344,"name":345,"points":346,"category":347},"4555423","5000 best",150,"consumer_social",{"id":349,"name":350,"points":351,"category":20},"4560410","assembly.ynh.io",149,{"id":353,"name":354,"points":355,"category":356},"4552914","Quantblocks",99,"finance_crypto",{"id":358,"name":359,"points":360,"category":361},"4548106","WP Simple Social",75,"web_saas",{"id":363,"name":364,"points":365,"category":366},"4557174","AzureFS",66,"infrastructure",false,"v2",{"id":370,"name":5,"line":6,"ai":367,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":371,"top":18,"kw":372,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":373,"url":9,"mix":374,"praise":89,"objection":111,"sub":21},4570382,0.23,[24,25,26,27,28],"0530055530330005000300000030505301553013",[32,33,34,35],1793990885638]