Nice work. I'm curious about where you got the video, was that something you recorded, or got from somewhere? I don't really work with video, but I'm sure I can find something useful for it in the future.
This is awesome! I can't wait to see the mashups that spring forth from this (and hopefully make one or two myself). There will definitely be something really creative soon. Thanks for doing so much legwork on this.
I've clocked many hours into After Effects, but seeing this in a browser and _interactive_ is amazing. Never would I have thought that JS and browsers would progress so much in such a short period of time.
The technology used here to do the image processing is GLSL, in particular fragment shaders (aka pixel shaders). GLSL is a very small C-like language that's become a standard for GPUs. GLSL code gets sent (as a string) to the GPU by javascript via the WebGL API.
Seriously is a JS library for handling the boilerplate of WebGL, composing and compositing multiple shaders in a pipeline/graph, and adjusting their parameters. In addition it comes with a bunch of pre-written shaders.
Shaders themselves are a lot of fun to write, IMO. A pixel shader is just a function that computes a color given an input pixel location. (A shader can also take in additional input such as "textures" to sample from, e.g. a video frame.)
The shader is run with massive parallelization in the GPU. In theory every pixel can be processed simultaneously. This is how these effects can run in real time.
Here are some more examples of what you can do with pixel shaders (including sampling from the webcam in the browser -- should work in Chrome and FF),
http://pixelshaders.com/examples/
> A real-time, node-based video effects compositor for the web built with HTML5, Javascript and WebGL
I for one am really impressed. While I'm not up to date with node.js, WebGL (or even HTML5 tbh), the boundaries that people keep pushing with web technologies is pretty wild.
EDIT: Reading more, I'm not sure if I am proud or embarrassed about my narrow focus over the last few years. I'm proud that I'm making a good living due to it, but disappointed that I haven't been able play with these things. Reading about WebGL [1], I feel like there is a new world to explore (for web programming).
"Sadly, we are unable to get Seriously.js to work on your computer. Sometimes WebGL gets a bit weird with certain graphics hardware and drivers. Please have a look here for more information."
Impressive! It's really amazing to see how OpenGL can enrich the web if it's used right. A few years ago I'd never have guessed shaders could be used in a browser.
I have little experience with Javascript projects, so can I ask why the name Seriously? Wouldn't a more descriptive name cover the contents? Also, why is the main source file 4K lines long? That's a little off-putting.
It's called Seriously for two reasons:
1) At some point, I had this idea that I would make all my Javascript libraries references to Homestar Runner. http://www.hrwiki.org/wiki/Seriously
2) "You can do that in a browser? Seriously?!"
As for the file size, yeah you're right it's too big. I'm working on a grunt.js build script, and when that's done, I'll break the main file into smaller pieces so you can pick and choose which utilities and things you need to load. Right now, it has the color lookup table and noise shaders, among other things, which are not necessary for everybody.
This is the sort of thing we're working on at Vidpresso. If this impresses you, and you want to build stuff like this... we should be friends. Contact info is in my profile.
This is pretty awesome, but it seems like OK Go has cornered the market on "cool web tech" demo music videos. Doesn't anybody remember their collaboration with Google?
I know next to nothing about graphics programming but how does this work? I don't suppose there is a Javascript loop that goes through all the pixels on each frame...
Do you mind sharing your video card info and operating system? It will be hard to debug remotely, but I'll see what I can dig up.
Please post it here or on github: https://github.com/brianchirls/Seriously.js/issues
[+] [-] brianchirls|12 years ago|reply
Please keep the bug reports and questions coming. I'll try to fix/answer what I can.
[+] [-] gojomo|12 years ago|reply
[+] [-] aceperry|12 years ago|reply
Nice work. I'm curious about where you got the video, was that something you recorded, or got from somewhere? I don't really work with video, but I'm sure I can find something useful for it in the future.
[+] [-] johncoogan|12 years ago|reply
[+] [-] rexreed|12 years ago|reply
[+] [-] mshron|12 years ago|reply
Maybe if you're already an after-effects wiz this doesn't seem as magical, but it certainly felt like magic to me.
[+] [-] tyleregeto|12 years ago|reply
[+] [-] garysweaver|12 years ago|reply
[+] [-] wahsd|12 years ago|reply
[+] [-] justncase80|12 years ago|reply
[+] [-] lucb1e|12 years ago|reply
[+] [-] HNLogInShit|12 years ago|reply
[deleted]
[+] [-] tqs|12 years ago|reply
Seriously is a JS library for handling the boilerplate of WebGL, composing and compositing multiple shaders in a pipeline/graph, and adjusting their parameters. In addition it comes with a bunch of pre-written shaders.
Shaders themselves are a lot of fun to write, IMO. A pixel shader is just a function that computes a color given an input pixel location. (A shader can also take in additional input such as "textures" to sample from, e.g. a video frame.)
The shader is run with massive parallelization in the GPU. In theory every pixel can be processed simultaneously. This is how these effects can run in real time.
Here are some more examples of what you can do with pixel shaders (including sampling from the webcam in the browser -- should work in Chrome and FF), http://pixelshaders.com/examples/
I'm in the process of writing an interactive book about pixel shaders, http://pixelshaders.com/
[+] [-] spyder|12 years ago|reply
[+] [-] beggi|12 years ago|reply
[+] [-] Mindless2112|12 years ago|reply
[+] [-] moskie|12 years ago|reply
[+] [-] oneye|12 years ago|reply
I for one am really impressed. While I'm not up to date with node.js, WebGL (or even HTML5 tbh), the boundaries that people keep pushing with web technologies is pretty wild.
EDIT: Reading more, I'm not sure if I am proud or embarrassed about my narrow focus over the last few years. I'm proud that I'm making a good living due to it, but disappointed that I haven't been able play with these things. Reading about WebGL [1], I feel like there is a new world to explore (for web programming).
[1] http://en.wikipedia.org/wiki/Webgl
[+] [-] Cyranix|12 years ago|reply
[+] [-] danielweber|12 years ago|reply
[+] [-] kmm|12 years ago|reply
I have little experience with Javascript projects, so can I ask why the name Seriously? Wouldn't a more descriptive name cover the contents? Also, why is the main source file 4K lines long? That's a little off-putting.
[+] [-] brianchirls|12 years ago|reply
It's called Seriously for two reasons: 1) At some point, I had this idea that I would make all my Javascript libraries references to Homestar Runner. http://www.hrwiki.org/wiki/Seriously
2) "You can do that in a browser? Seriously?!"
As for the file size, yeah you're right it's too big. I'm working on a grunt.js build script, and when that's done, I'll break the main file into smaller pieces so you can pick and choose which utilities and things you need to load. Right now, it has the color lookup table and noise shaders, among other things, which are not necessary for everybody.
[+] [-] wwweston|12 years ago|reply
[+] [-] vanderZwan|12 years ago|reply
[+] [-] Vecrios|12 years ago|reply
[+] [-] benihana|12 years ago|reply
[+] [-] Groxx|12 years ago|reply
Seriously. JS has been this amazing for a while. See also this demo from 2010: http://www.craftymind.com/2010/04/20/blowing-up-html5-video-...
[+] [-] joezydeco|12 years ago|reply
[+] [-] randall|12 years ago|reply
[+] [-] aantix|12 years ago|reply
[+] [-] kingkool68|12 years ago|reply
[+] [-] devongovett|12 years ago|reply
[+] [-] whadar|12 years ago|reply
[+] [-] ErikAugust|12 years ago|reply
[+] [-] beggi|12 years ago|reply
[+] [-] crabasa|12 years ago|reply
http://allisnotlo.st
I fully expect them to do something with Microsoft for IE11 to complete the cycle.
[+] [-] abstractbill|12 years ago|reply
Actually there have been some other very nice ones recently:
http://donottouch.org/
http://lights.elliegoulding.com/
[+] [-] alanh|12 years ago|reply
[+] [-] krrrh|12 years ago|reply
[+] [-] michaelmior|12 years ago|reply
[+] [-] cnlwsu|12 years ago|reply
Great job!
[+] [-] olalonde|12 years ago|reply
[+] [-] unknown|12 years ago|reply
[deleted]
[+] [-] Tomdarkness|12 years ago|reply
Edit: Here is what it looks like for me: http://i.imgur.com/8wflg8Q.jpg in both Firefox 21 and Chrome 29+27
[+] [-] brianchirls|12 years ago|reply
Do you mind sharing your video card info and operating system? It will be hard to debug remotely, but I'll see what I can dig up. Please post it here or on github: https://github.com/brianchirls/Seriously.js/issues
Thanks
[+] [-] lnanek2|12 years ago|reply
[+] [-] lewisflude|12 years ago|reply
[+] [-] underwater|12 years ago|reply