Hacker News new | past | comments | ask | show | jobs | submit login
0 to 60 in One Second: Fusing WebGL, CSS 3D and HTML (acko.net)
373 points by co_pl_te on Aug 24, 2013 | hide | past | favorite | 94 comments



This is an astonishing demo -- and I very nearly missed it, because I thought the scrolly graphic at the top was just a fancy animated header, followed by a bunch of text that seemed to be refering to something else. I only discovered the full demo when I accidentally scrolled up, and found it lurking there well above the start-point for the page. I can't help but think that a lot of other viewers must be missing it entirely.

So a note to web-masters: please put any content you want your users to see below the top of the page, not above it.


This is intentional. If you visit the bare ___domain, you get the intro. If you visit an article, you get the article.


Yes, the demo was not obvious until I scrolled back to the top. It is beautiful, and I'm sure it took a lot of hard work. After trying it both FF and Chrome, it's frustrating that a 3 year old machine with a decent dedicated Radeon 4670 GPU, can't run such a simple demo at full 60 FPS.

As cool as it is, am I the only one that thinks the "web penalty" is ridiculous? From Crysis to StarCraft, I can play most new games no problem, but not a simple web demo like this.


That's interesting, I run it on Pentium G860 with Radeon 7770 (so current hardware but pretty low-end) and had butter-smooth 60fps with Firefox 23, Windows 7, CPU usage ~15%, GPU usage ~5%. Perhaps you could check if your hardware acceleration in Firefox is enabled (about:support)? Try webgl.force-enabled in about:config as well.


Yeah same here: sucking at 6-11FPS.. nuff, going to compile ffx v23


What's ridiculous is that we're fawning over something we've always been able to do, just because it's now done over the hundreds of useless layers of indirection that the web imposes.

"The computer revolution hasn't happened yet"...


Runs fine on my 3 year old laptop with a mobile Radeon 5730.


Make sure to click the "play" button in the header for the full experience.


I think they intended this (if you don't notice it it just looks like a nice header. If you DO notice it...)

Though even once you see it, easy to miss is the "settings" cog in the top right. EGA mode!


Exactly. It's like a cool easter egg.


Speaking of hidden things, I just discovered you can rotate the blue ribbon art work as well :)


…and you can unlock an achievement by repeatedly scrolling up/down/up/down/up/etc.


Yes, I missed it, too. I had to come back the 2nd time to see what everyone is talking about.


I almost gave up also - until I scrolled down to Turn Right Past The Header - then scrolled back up :)

Also reload the page with the javascript console on.


I stared at it and played around for too long....

Little badge popped up on the bottom of the screen: Achievement Unlocked - All Glory to the Hypnotoad


The thing about acko.net is that's the way it has looked all along.

So the rewrite simply added a cool multiplier.


> I realized it would make a pretty neat demo just by itself, so I built that in too, to the dulcet tones of Selah Sue—whose last name I hope is not indicative.

The demo and technology are amazing, and he should be proud of his hard work. But I was a bit surprised by his appropriation of someone else's work to add a soundtrack. Why not try to reach out to the artist and ask permission first?

Now before you hit the downvote icon, here's a thought exercise: What do you think HN's reaction would be if a random musician used this web visualization in a music video without asking permission first? How often do we get irate about design theft, and why is doing the reverse in this case okay?

> The songs are used here entirely for educational purposes of course. Not that it matters, since they're all on YouTube anyway.

This is simply untrue. Although the blog entry has educational value, the music itself serves no purpose other than to provide a soundtrack. It's being used for entertainment value, and if the developer does professional web design and references this work on a resume or contract offerings, then it arguably serves a commercial marketing purpose as well.

And saying that the video is available elsewhere? That's again no different than appropriating images or artwork from elsewhere on the web and reusing them for other purposes.

It's good that he credited the music, and I'm glad he thought about reuse issues. But again, why not ask permission first? And if it can't be obtained, why not find a musician who needs the exposure and would be happy to have their music included?


The music does serve a specific purpose.

The Seba track is chosen for its 80s style synths (itself a reuse of Vangelis' Blade Runner soundtrack), which separates cleanly in the FFT and enables the audio response to follow individual notes.

The Selah Sue track is chosen for its low bpm and jazz style vocals, which can easily be synced to a 6 DOF camera running at a constant speed on spline tracks without causing significant motion sickness. Trust me, you don't want to ride that thing on dubstep.

Neither demo could be accomplished without specific requirements in music, whether it's these songs or others, and each is a novel demonstration of web technology. The full source is on github, there's commentary and accurate, live diagrams of the internal mechanisms.

I don't deny that this is skirting the rules a bit, but the educational goal is genuine. I'm a DSP engineer. What's the difference between me slapping a commercial MP3 on a research project involving real-time graphics and audio processing, and a colleague using a copyrighted Playboy centerfold (1) to demonstrate their image processing algorithm? Also chosen for specific purposes: it contains a complex mix of textures that shows flaws in algorithms well, and is a plausible real world use case too.

For an encore, the server is configured to make pirating the songs from me as inconvenient as possible without compromising the demonstration.

(1) http://en.wikipedia.org/wiki/Lena_Söderberg


This is absurd. For demos of this nature people "rip off" we'll known designs all the time. Think of every corporate logo "done entirely in CSS3" or "Facebook style widget using angular.js" type demos, all of which don't bother asking permission because it's a demo. Derailing this thread because of a pedantic point about copyright protection is unproductive and distracting.


Recreating a logo is not the same as reusing a logo, especially when we are talking about music. What you are describing would be akin to recreating a song by using different sounds, instruments, algorithms, etc. In other words, a new performance or "cover." That's very different than reusing the original, unedited work wholesale.


Yep. It should fall under fair use - even tho i know the law actually doesn't include this as fair use unfortunately.


Now this is something you won't be able to buy with money. True and simple. No agency has talent able AND willing to produce something of that quality and love in the budgets which are normally afforded to marketing campaigns...

It saddens me that i spend most of my professional time working for an agency.


> Now this is something you won't be able to buy with money. True and simple. No agency has talent able AND willing to produce something of that quality and love in the budgets which are normally afforded to marketing campaigns...

That's why we have the demoscene ;-)


What's also of note is that the creator, Steven Wittens, was also one of the core Drupal developers. I was wondering why his name seemed familiar. Looks like genius doesn't stop working.


i feel your pain. wish more companies had the foresight to use webgl, and focus on proper graphics coders not just 'html5' when all they really mean is gradients and rounded corners.


I haven't been amazed by a website like that in a while.


Checkout his presentation it is quite amazing as well, http://acko.net/files/fullfrontal/fullfrontal/webglmath/onli...


This is one of the best presentations I've ever seen, especially considering the subject matter. Incredible.


Dat Presentation. O_O


Here is the video to accompany the presentation: http://www.youtube.com/watch?v=GNO_CYUjMK8 [30:55]


Yeah the amazing part for me is how seamless it all is, and just doesn't get in the way of reading the content, but just enhances it in subtle ways.


I really love the work that was put into the developer tools console interaction.

The "cheater" achievement was a surprise.


There are so many impressive things going on here. The starting animation. Ambient occlusion. Integrating CSS 3D and WebGL. Even the achievements.

Notice he scales down the resolution when there are several frames dropping below 45 FPS. I've been thinking about how to solve the performance problem in voodoo.js, and this could be it. Good stuff.


Dynamically rendering at a lower resolution and then upscaling it to get a consistent 60fps is such a cool technique. The first example I ever saw of using a dynamic frame buffer in that way came in the form of WipEout HD on the PS3 back in 2008 or so[1], totally blew me away.

[1]: http://insidethedigitalfoundry.blogspot.com.au/2008/09/wipeo...


The header animation is the obvious treat... but the thing that sent me completely over the top is is how we camera-pan past the 3D illustration of the disc-based occlusion model during scrolling. <3 <3 <3 I'm currently making CGI-squee-noises worthy of the glory days of the SGI Magic Bus!


For everyone who cannot run this demo (old machine or on mobile) I've put up a recording of the main intro demo (there are actually a couple different ones) here:

http://www.youtube.com/watch?v=zjwA1VmuPnw


how did you get that view on the page? mine seems to be off screen on load and scrolling up doesn't have the same nice pan.


Honestly, I just hit refresh and then the "Home" button on my keyboard really fast, followed by the "start recording" button.


This really does put the rest of the web to shame.


how ? because of the flashy 3D graphics ? there is no real value or usefullness passed the wow effect.


Yes, because of flashy 3d graphics! If you can't see the potential, you are just being obtuse.


There's potential, sure, but at the same time, animations like this don't come cheap - it takes a lot of knowledge, time, effort, and artistic insight to build something like that, which is a rare combination in any one person. But mostly time, and time equals money, and money is something a lot of people-facing companies aren't willing to pay for visuals like these.

Even if the could, that is. I can see gaming companies investing in visuals like this to enhance their game's web pages, or even delegate parts of the game's UI to a browser. Battlefield 3 (and probably 4) does this for its server browser, removing the need for a large chunk of UI from its game, and removing the need to update the whole game in a patch if they want to make changes to their server browser. No fancy 3D effects or animations in there though. At least, not yet. iirc, they've outsourced development of that server browser to a third party.


Seconding Miyamoto's question. Is there a use case for mixing 3D graphics and HTML, as opposed to showing 3D graphics in a box on the page? I don't count "making fancy website intros" as a very important use case, because everyone hated such intros the last time around.


Definitely! This is really just a demo, so I can see how people are complaining that it "doesn't really do anything." But that shows such a startling lack of vision and imagination. We are supposed to see the potential in new tech and then push it further. Or at least, that's how I see myself. Cranks and nay-sayers have no business in this industry, in my not-so-humble opinion.

HTML was originally a document, but today we've stretched it to do so much. And that's great! There's no need to draw a line around fancy webgl stuff. Your whole page can twist and flow and sparkle and whatever. You can make styling prettier sure but also make you content deeper. It will take time work out the kinks but hey, it's an adventure! That's pretty cool! Boring is never good. And there will be those with poor taste no matter the medium. This isn't a fad and it isn't superficial. This can totally change our experience on the web. Why wouldn't you want to take advantage of such cool stuff?


Can't tell if satire or sincere. Maybe that was your intention though.


Do please educate us on its potential, if it's so obvious.


Games perhaps?


To inspire.


Well, I don't know what browsers you guys are using, but on my laptop running linux and firefox 22 with an Intel Core2 Duo, my browser became completely unresponsive for some seconds and then only responded extremely jerkily until I closed the tab.

I just hope this practise doesn't spread outside of artsy demos.


On FF 23 on OS X, my quad-proc Core i7 is barely whirring the CPUs at all. Granted, this laptop does have a real GPU which I seriously doubt is the case for your C2D system.


It's not the GPU. Buttery smooth on Chromium+Linux with an Intel HD 4000.


Nice and smooth with FF24 on Android (Galaxy S4).


What kind of videocard are you running? GLSL probably fell back to software mode.


Mine eyes have seen the glory of the coming of the 3D.


There's some seriously funky stuff going on in the console if you look at it in chrome.


This is incredible; it reminds me of the kind of stuff that sometimes used to crop up on Astounding Websites (http://web.archive.org/web/20010203162500/http://astoundingw...)

It feels like there aren't as many people doing interesting things and exploring new ideas on the web anymore but maybe I just don't know where to look.


Awesome, but this almost drained my macbook battery dry, or at least that's my suspicion. It was in a background tab, but I noticed the name of the playing song had changed, even though my volume was down. Chrome should have some way to prevent a background tab from playing music while the volume is down, and web designers shouldn't expect you to have it turned up! Shouldn't there be an HTML5 hardware API for that??


The second I saw the arrow style I thought of Daim and when I scrolled down, sure enough, there was a piece by Daim. Very nicely done. Props.


My first thought was "Holy shit, is this guy Daim?", a street artist I had forgot about a long time ago. Very nice homage!


Amazing. This is the first WebGL demo running fluently on my system... a 7 year old Athlon Dual Core.


Achievement Unlocked: Black Hole Sun

-from mousing-over the play button too many times

That's 2/8 for me and I see a couple others in this thread. Is anyone keeping track somewhere?


Dat Parallax: From spinning the path or shadow plots, I think

All Glory to the Hypnotoad: Click play, let it run all the way through, or sit in another window for 15+ mintues

I think the rest come from fiddling with js in the console. I've been twisting knobs, like 'fov' and such, but haven't found anything yet.

Frickin brilliant, of course. /hat tip!!!


If you go to the javascript console there's a whole game in there too!


> at times a mess of ad hoc demo formulas and spaghetti, though robust enough in the parts that count.

The story of my development career.


Not working for me in Chrome 29.0 on OS X 10.7 - it seems to assume my setup does not support WebGL (which obviously does)


Mine worked in Chrome 29 after giving it some time after load( ~30 secs)...


Very cool, but note that it requires Chrome Canary. (It seemed to almost work in regular Chrome and I kept reloading)


Worked fine in Chrome 28.0.1500.95 on OSX for me.


Safari 7 as well.


Worked for me with Firefox 21 on Linux with Fglrx drivers, ~12fps at my window size. Firefox 23 got about 15fps in the same scenario.


Worked in normal chrome and Firefox windows for me, unless I'm missing something.


Smooth 60 fps for me on Firefox 26, OS X (stats say at 1250x702 resolution).


WinXP: Fine in Chrome, but in Firefox (23/25) on my machine there's a flickering massacre when scrolling [0]. Maybe it's sth with my GPU drivers though (but then it's weird that in Chrome it's ok).

[0] http://i.imgur.com/LYUINSc.jpg


What GPU? Modern drivers? That's definitely a driver mess, pretty hard to cause something like that to happen if you're just feeding WebGL buffers to the driver...


5-year-old ATI Mobility Radeon, drivers not so modern because they stopped issuing new drivers tens of months ago.


Works on Chrome 28.0.1500.95, on Linux with Intel graphics. That surprised me a little..


Smooth as silk on Windows 8 + Firefox 25 at 2560x1600 full-screen. Amazing.


Worked on Chrome 29.0.1547.57 beta for OS X for me.


It doesn't seem to work in IE11.


IE11’s WebGL support (while good that it’s there at all) is somewhat unfinished.


Am I missing something ? All I see is an article containing text and some images? On iPad 2 safari


Mobile Safari does not support WebGL (except in Apples i-ads)


Yes.


The lighting effect is soooo good.


One of the most impressive posts I've seen on Hackernews in a while -- kudos!


Achivement Unlocked: Refresh Prince of Bel Air


The header of that page blew my mind!


Amazing dude! Nice work!


Nice black screen.


craah on demand in firefox mobile.


you, sir, are a talented man.


next level shit right here


wow....


This is the best performing interactive animation I've ever seen done with web technologies.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: