[{"data":1,"prerenderedAt":366},["ShallowReactive",2],{"project-2771454":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":44,"post_text":47,"what":48,"said":85,"maker_in_thread":197,"shape":208,"grid":210,"attempts":328,"same_week":329,"maker_shows":39,"maker_hidden":358,"reader_version":359,"card":360},"2771454","My first WebGL demo","The first self-extracting PNG ever?","title","Show HN: My first WebGL demo, the first self-extracting PNG ever?","http:\u002F\u002Fdemoseen.com\u002Fwindowpane\u002Fmagister.html","demoseen.com","daeken",1310843435,2011,101,55,104,1097,10,"notable","creative","demoscene graphics demo","web_app",[24,25,26,27,28],"webgl","demoscene","png","javascript","self-extracting","debated",-0.106,{"positive":32,"neutral":33,"mixed":34,"critical":35},9,7,1,15,32,{"performance":38,"idea":40,"execution":42},{"positive":34,"critical":39},6,{"positive":41,"critical":34},3,{"positive":34,"critical":43},8,[45,46,34,41,41,45,45,46,34,45,41,34,45,34,34,34,45,45,34,34,45,46,41,46,41,45,41,45,46,34,45,46,45,34,34,34,45,34,45,46],0,5,null,{"problem":47,"audience":47,"pricing":47,"motivation":49,"time_to_build":56,"stack":60,"openness":82,"stage":83,"team_size":84},{"value":50,"source":51,"evidence":52},"Going on stage at Solskogen demoparty and exploring the technique","maker",[53],{"id":54,"by":11,"text":55},"2771465","I've been working on this for a couple weeks, attempting to get it looking perfect and get it to 1kb. It's going to be going on stage at http:\u002F\u002Fsolskogen.no\u002F shortly, so I…",{"value":57,"source":51,"evidence":58},"A couple of weeks",[59],{"id":54,"by":11,"text":55},[61,68,74],{"value":62,"source":51,"evidence":63},"WebGL",[64,65],{"id":54,"by":11,"text":55},{"id":66,"by":11,"text":67},"2771770","That's not a JS error. 'S' is a function defined in WebGL, which gets pulled out and names are passed through a regex that filters out certain characters. So it's not getting a…",{"value":69,"source":51,"evidence":70},"JavaScript",[71],{"id":72,"by":11,"text":73},"2771780","Only thing I can think of at this point is that you have an extension inserting something into the body before the canvas. While on Magister, drop…",{"value":75,"source":76,"evidence":77},"HTML","commenter",[78],{"id":79,"by":80,"text":81},"2771904","jrockway","So, it the header makes it look like a PNG: ``` magister.html: PNG image data, 1242 x 1, 8-bit grayscale, non-interlaced ``` If you look at this in an image viewer, it's as…","unknown","launched","solo",{"praise":86,"objections":121,"requests":164,"questions":173,"alternatives":189},[87,106],{"value":88,"source":76,"evidence":89},"Impressive compression and demoscene craft",[90,94,98,102],{"id":91,"by":92,"text":93},"2771538","resnamen","Very neat. I'm happy to see that the demo scene magic still exists. I thought the days of seeing an animated ray traced scene from a 256 byte EXE were over. This runs fluidly on…",{"id":95,"by":96,"text":97},"2771799","yan","Hey, congrats on finally getting it out there! Saw how much work you poured into it and glad it's finally done. Also, mind-bending implementation.",{"id":99,"by":100,"text":101},"2772367","5hoom","Daeken, you are a graphics\u002Fweb wizard of the highest order. Congratulations :)",{"id":103,"by":104,"text":105},"2775937","evilswan","Extraordinary.",{"value":107,"source":76,"evidence":108},"Clever hack that works in a PNG",[109,113,117],{"id":110,"by":111,"text":112},"2771490","robflynn","Pretty cool hack! I'm looking forward to the blog post. It doesn't seem to eat my processor too much. In Chrome with AMD processor it's sitting at about 25% CPU usage.",{"id":114,"by":115,"text":116},"2771543","p0nce","If it's 1k, then it's a serious contender.",{"id":118,"by":119,"text":120},"2771842","steveb","Very cool! I'd love to read how the PNG hack works. To see if your browser supports webgl, go to http:\u002F\u002Fwebglreport.sourceforge.net\u002F On a pokey mac mini, I get a few frames per…",[122,141,156],{"value":123,"source":76,"evidence":124},"Runs very slowly or hogs CPU and GPU, locking up machines",[125,129,133,137],{"id":126,"by":127,"text":128},"2771920","ktsmith","Just to add another token data point. I have it up full screen at 1920x1200. CPU usage is sitting between 50 and 75% of one core and GPU usage jumps back and forth between 40%…",{"id":130,"by":131,"text":132},"2771731","tsvk","Heh. Screen went black for a while, after which: \"Display driver nvlddmkm stopped responding and has successfully recovered.\" Using an old NVIDIA GeForce 6200 with driver…",{"id":134,"by":135,"text":136},"2772001","Emore","(Repeated) kernel panic on Macbook Air\u002FChrome I'm afraid.",{"id":138,"by":139,"text":140},"2772087","gabbo","This is very cool, but when running it on Chrome 13 beta it was extremely choppy and basically locked up my PC. It took 2 minutes to move my mouse to the \"close tab\" button.",{"value":142,"source":76,"evidence":143},"Blank screen or does not load for many users",[144,148,152],{"id":145,"by":146,"text":147},"2771605","geuis","Apologies, but nothing happens when I view it. Running Chrome 12.0.742.122. I see the initial raw PNG splat, but get nothing but a lot of high cpu and a blank browser screen…",{"id":149,"by":150,"text":151},"2771843","nvarsj","It does not work for me either - blank white screen. Same setup, Mac OS X and Chrome. I do get the canvas when pasting that snippet, though.",{"id":153,"by":154,"text":155},"2771945","Groxx","Same situation as the rest of this thread - I just get cpu usage and a white screen, in Chrome stable\u002Fbeta\u002Fdev. OSX on a MBP, only thing I can think that might be shared with…",{"value":157,"source":76,"evidence":158},"More a polyglot than a true self-extracting PNG",[159,163],{"id":160,"by":161,"text":162},"2772549","simcop2387","Even so, I think this is more of a Polyglot than a self extracting PNG.",{"id":79,"by":80,"text":81},[165],{"value":166,"source":76,"evidence":167},"Blog post explaining how the size was reduced",[168,169],{"id":118,"by":119,"text":120},{"id":170,"by":171,"text":172},"2771471","carbocation","Can you give us a few details of what you did? This makes my i7 cry. Edit: Just saw your explanation. Cool - thanks!",[174,179],{"value":175,"source":76,"evidence":176},"Why it fails to load in some browsers and setups",[177,178],{"id":72,"by":11,"text":73},{"id":66,"by":11,"text":67},{"value":180,"source":76,"evidence":181},"Whether the driver bugs found are exploitable",[182,186],{"id":183,"by":184,"text":185},"2772528","trotsky","weren't you recently searching for exploitable webgl driver bugs?",{"id":187,"by":135,"text":188},"2775399","Sorry for the late reply. Here are my details: Mac OS X 10.6.8 all updated \u002F Google Chrome 12.0.742.122 \u002F MacBookAir3,2 \u002F 2.13 GHz \u002F 4GB RAM Would be interesting to know if you…",[190],{"value":191,"source":76,"evidence":192},"Hiding JavaScript in valid images (ha.ckers.org technique)",[193],{"id":194,"by":195,"text":196},"2772656","woodall","I can't get this to work; low end laptop with low end gpu. But is it anything like what Rsnake posted on ha.ckers.org? Link:…",{"comments":198,"answered":199,"key":200},13,2,[201,202,205],{"id":54,"text":55},{"id":203,"text":204},"2771501","Thanks! It isn't too be on the CPU for most people, but for some reason it's eating a massive chunk of CPU-time for some people -- seems to be only in the latest Firefox…",{"id":206,"text":207},"2771925","You were right up until saying it was garbage data. The image data is the demo code itself. This is a real PNG, even if it looks random.",{"commenters":36,"max_depth":32,"maker_replies":198,"first_comment_mins":199,"lifespan_hours":209},41,[211,213,215,217,219,222,224,228,230,233,235,239,241,242,243,245,247,249,252,254,256,257,259,262,264,265,266,268,269,273,276,279,281,282,285,288,290,291,293,294,295,297,299,302,303,307,308,310,314,315,317,320,322,324,325],[54,45,45,212,11,34],"project\u002Fneutral\u002Fidea",[110,45,46,214,111,45],"project\u002Fpositive\u002Fperformance",[203,45,45,216,11,34],"project\u002Fneutral\u002Fperformance",[126,45,34,218,127,45],"project\u002Fcritical\u002Fperformance",[220,45,41,216,221,45],"2771513","notJim",[223,45,41,216,111,45],"2771561",[225,45,45,226,227,45],"2771570","commenter\u002Fneutral\u002Fnone","inportb",[229,45,45,226,221,45],"2772011",[231,45,45,226,232,45],"2772305","chc",[114,45,46,234,115,45],"project\u002Fpositive\u002Fidea",[236,45,46,237,238,45],"2772181","maker\u002Fpositive\u002Fnone","sgrove",[79,34,34,240,80,45],"project\u002Fcritical\u002Fidea",[206,34,45,226,11,34],[160,34,41,212,161,45],[244,34,41,212,184,45],"2772550",[145,199,34,246,146,45],"project\u002Fcritical\u002Fexecution",[248,199,45,226,11,34],"2771610",[250,199,34,246,251,45],"2771723","redthrowaway",[253,199,45,226,11,34],"2771745",[255,199,34,246,251,45],"2771773",[72,199,45,226,11,34],[258,199,34,218,251,45],"2771835",[260,199,45,226,261,45],"2771908","catch23",[263,199,45,226,251,45],"2771921",[149,199,34,246,150,45],[153,199,34,246,154,45],[267,199,34,246,146,45],"2771754",[66,199,45,226,11,34],[270,199,46,271,272,45],"2771825","project\u002Fpositive\u002Fexecution","icey",[274,199,45,226,275,45],"2771897","yaix",[277,199,41,278,146,45],"2772022","project\u002Fneutral\u002Fexecution",[280,199,45,226,11,34],"2772079",[91,41,46,234,92,45],[283,41,41,284,251,45],"2771753","project\u002Fmixed\u002Fexecution",[286,41,45,287,11,34],"2771794","project\u002Fneutral\u002Fdesign",[95,289,46,237,96,45],4,[194,46,34,246,195,45],[292,46,45,212,11,34],"2772741",[118,39,46,234,119,45],[130,33,34,218,131,45],[296,33,45,216,11,34],"2771800",[298,33,45,226,131,45],"2771820",[300,33,45,226,301,45],"2771911","GreySyntax",[99,43,46,237,100,45],[304,32,45,305,306,45],"2772208","other\u002Fneutral\u002Fnone","nhebb",[138,18,34,218,139,45],[170,309,41,216,171,45],11,[311,312,34,246,313,45],"2772187",12,"hmottestad",[134,198,34,218,135,45],[316,198,45,226,11,34],"2772081",[318,198,34,218,319,45],"2772117","brianwhitman",[183,198,41,321,184,45],"maker\u002Fneutral\u002Fnone",[323,198,45,321,11,34],"2772742",[187,198,45,226,135,45],[103,326,46,327,104,45],14,"project\u002Fpositive\u002Fnone",[],[330,335,340,345,349,354],{"id":331,"name":332,"points":333,"category":334},"2781866","Do It (Tomorrow)",237,"productivity",{"id":336,"name":337,"points":338,"category":339},"2782349","StrikeSapphire",147,"finance_crypto",{"id":341,"name":342,"points":343,"category":344},"2770699","Laminated Bus Schedules",94,"other",{"id":346,"name":347,"points":348,"category":334},"2773850","WordStash",69,{"id":350,"name":351,"points":352,"category":353},"2777528","How Much More Will My Taxes Be",49,"web_saas",{"id":355,"name":356,"points":357,"category":353},"2784257","Purify",26,false,"v2",{"id":361,"name":5,"line":6,"ai":358,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":362,"top":18,"kw":363,"maker":11,"domain":10,"tier":19,"attempts":45,"strip":364,"url":9,"mix":365,"praise":88,"objection":123,"sub":21},2771454,-0.11,[24,25,26,27,28],"0513300510310111001105353030510501110105",[32,33,34,35],1793990873855]