6 ms·
Winning 1kb intro released at Assembly 2015
- cloudsloth 11y agoStunning.
- aikah 11y agocrashed my browser(chrome latest,win 8.1) but there is a video capture linked .
- LeoPanthera 11y agoWorks fine in Safari 8.0.8, OS X 10.10.5
- tantalor 11y agoWhy "intro"? As if "demo" wasn't confusing enough.
- enqk 11y agoIt is standard demoscene terminology for a small Demo.
- baxter001 11y agoAn intro is a demo with a size limit.
- Mithaldu 11y agoThe demoscene started out of the software piracy scene. An intro was a short thing like this one, that people put into the boot sequence of games they cracked or otherwise made available to the scene. Over time these got more elaborate and people started making them separate from the games to show off their prowess in coding, called demos. Nowadays the names serve to differentiate the runtime length and size of the program. Intro = short thing, demo = long full effort thing.
- skrebbel 11y ago> Intro = short thing, demo = long full effort thing. The problem is that that's not true anymore either. Many intros are equally "long full effort" as your average demo. Intro simply means "demo with a size limit", these days (and by "these days" i mean "the last 15 years")
- xorcist 11y agoJust wait until you get to the "megademo". :)
- watson 11y agoThese already exists and are called wild demos: From http://tomaes.32x.de/text/faq.php http://tomaes.32x.de/text/faq.php: A wild demo can be pretty much everything. Some possibilities: - It's any kind of film, usually available as divx/avi file (music videos, shorts, comedies, trash, prerendered animations...) - It's a demo that requires very rare/strange hardware to run (c64 with SCPUs, for example) - It's a demo that simply does not fit in any other competition (and the applying rules) of a given demoparty. - Sometimes, live performances count as 'wild' demos too. ;) However, in most cases, it IS a short movie (clip), either tradionally filmed or CG/animated.
- Mithaldu 11y agoNot quite. Megademos are simply really big demos, the very first example of which being Second Reality by Future Crew. https://www.youtube.com/watch?v=KTjnt_WSJu8 https://www.youtube.com/watch?v=KTjnt_WSJu8 Nowadays megademos might be put into the wild demo compo, but from what i know parties put length restrictions on those as well. The primary purpose of wild demo compos however is to allow platforms that do not compare well with the classic demo platforms, such as the various ARM mini computers, game consoles or really old computers.
- z303 11y agoWhile Second Reality is a classic. It was not the first megademo. I remember the term not being new in the late 80's on the Amiga and ST http://www.pouet.net/prod.php?which=1331 http://www.pouet.net/prod.php?which=1331 http://www.pouet.net/prod.php?which=3119 http://www.pouet.net/prod.php?which=3119 http://www.pouet.net/prod.php?which=3242 http://www.pouet.net/prod.php?which=3242 http://www.pouet.net/prod.php?which=3972 http://www.pouet.net/prod.php?which=3972
- 11y ago
- alt_ 11y agoCute, but doesn't really compare to non-js stuff: https://www.youtube.com/watch?v=qQNIKOD6WnY https://www.youtube.com/watch?v=qQNIKOD6WnY
- mrspeaker 11y agoHa, I love that you are so condescending about what he made, and one of the first comments on the video you linked to was "Yawn. We did better in 256 byte microcode strings in 1986."
- alt_ 11y agoYes, sorry. Just missing the golden days ;)
- TeMPOraL 11y agoYeah, my first reaction: since when JS is a valid target for demos? ;).
- JeremyBanks 11y agoI didn't read it as condescension, but observation: old demos were able to take advantage of a lot that's not available to JavaScript.
- Someone 11y agoBut isn't the whole challenge of a demo to make the most of limited resources?
- agumonkey 11y agoOuh that was cute. The dragon curve part felt like cube ^^ inception. I'd pay to see that in an IMAX theater.
- xentronium 11y agoDifferent limitations (source vs compiled file size).
- mrspeaker 11y agop01 does so much good stuff (http://www.p01.org/releases/ http://www.p01.org/releases/) - the fact that he won Assembly 2015 with a JavaScript demo is testament to his skills!
- bane 11y agoAnybody interested in a well written history of the scene that really helps explain it as a cultural phenomenon should probably read the demoscene chapter in "The Future Was Here", a book about the Amiga. It's probably one of the best written synopsis of the scene I've ever read and really places it well as both a technical and artistic movement and helps provide context for this kind of work.
- chengsun 11y agoAlso, a fantastic visual guide is the documentary film "Moleman 2" (2011). It's freely available to watch on YouTube; highly recommended: https://www.youtube.com/watch?v=iRkZcTg1JWU https://www.youtube.com/watch?v=iRkZcTg1JWU
- not_with_retard 11y agoI can't believe this won the 1kb intro contest, I'm assuming it didn't have any competition.
- replete 11y agoiTerm is also pretty great, because you can split terminal tabs into panes and there are some new neat features allowing you to click on filename strings etc in Finder!
- snikch 11y agoI think you meant to comment on https://news.ycombinator.com/item?id=10069521 https://news.ycombinator.com/item?id=10069521
- gfody 11y agoother results: http://archive.assembly.org/2015 http://archive.assembly.org/2015
- btzll 11y agoI wonder if the bad performance is due to the <1kb requirement.
- Ellipsis753 11y agoAlmost certainly. It would be tempting just to pre-render this to an HD video otherwise.
- sp332 11y agoIn case you missed the link on the page, there's a 1080p version on YouTube https://www.youtube.com/watch?v=NnZUUSdpt-k https://www.youtube.com/watch?v=NnZUUSdpt-k
- hebdo 11y agoThe point was that it is probably much less CPU intensive to decode such a stream in 1080p than to render it from a compressed 1k of Javascript.
- sp332 11y agoAh, I suppose. I like the performance aspect of it though. It feels like something my computer is doing live, as I watch it, instead of a recording of something done in the past.
- taeric 11y agoNot sure the point of the comparison. Yes, some of our encoding technology beats some algorithmic generation of content in performance. If the goal is size of encoding, though, it doesn't come close. Tricks like this can help show how less than a gig of data is enough to encode an operating system. Or a person.
- piAcceptor 11y agoI really hope you are right about encoding a person in less than a gig, but what about the associated genome (3000 megabases), episodic memories and/or neuron connectivity?! Surely this is data that would be essential, yet very hard to algorithmically encode?
- adam12 11y agoHere is the UNPACKED source. function u() { requestAnimationFrame(u); for (g = p ? B.currentTime * 60 : (B = 'RIFFdataWAVEfmt ' + atob('EAAAAAEAAQAAeAAAAHgAAAEACAA') + 'data', b.style.background = 'radial-gradient(circle,#345,#000)', b.style.position = 'fixed', b.style.height = b.style.width = '100%', b.height = 720, h = b.style.left = b.style.top = A = f = C = 0, 6177); g > f; h *= f % 1 ? 1 : .995) for (s = Math.pow(Math.min(f / 5457, 1), 87) + Math.pow(1 - Math.min(f / 5457, 1), 8), f == [b.width = 1280, 1599, 2175, 2469, 2777, 3183, 3369, 3995, 4199, 4470, 4777, 5120][C] && (C++, h = 640), f += p ? (c.translate(640, 360 + h / 45 * Math.random()), c.rotate(A / 5457 - h / 5457), c.scale(1 + s * 8, 1 + s * 8), 1) : (B += T((1 + s * 8) * Math.random() + (1 - s) * (h / 45 * (f * (2 + C / 3 % 1) & 1) + (C > 3) * 8 * (f * (2 + (f / 8 & 3)) % 1)) | 1), 1 / 512), i = p.length; i;) y = p[i -= 7], x = p[i ^= 1], r = p[i + 4], l = p[i + 6], s = 2 * Math.random() + 1, t = s * 4, a = 122, 640 > r ? (640 > Math.abs(p[i ^= 1] += p[i + 2]) || (p[i + 2] *= -1), 640 > Math.abs(p[i ^= 1] += p[i + 2]) || (p[i + 2] *= -1), t = Math.random() > p[i + 7] || p[i + 7] == '22312131212313' [C] & h == 640, w = x - A, p[i + 2] || r * r / 3 > w * w && (t = s * (r - Math.abs(w)) / 45 + 2, a = 2 * Math.random() + 5, p.push(A, 0, s * Math.sin(a += 599), s * Math.sin(a - 11), s * t, C + s, 640, .995), s = 2 * Math.random() + 1, a = 2 * Math.random() + 5, p.push(A, 0, s * Math.sin(a += 599), s * Math.sin(a - 11), s * t, C + s, 640, .995), s = 2 * Math.random() + 1, a = 2 * Math.random() + 2, p.push(A, 0, s * Math.sin(a += 599), s * Math.sin(a - 11), s * t, C + s, 640, .995)), a = p[i + 2] * y / 45, l = p[i + 6] = t ? 640 : .9 * l, t = r) : A = p[i] ++, g > f || (s = r, c.beginPath(), c.lineTo(x + s * Math.sin(a += 599), y - s * Math.sin(a - 11)), s = t, c.lineTo(x + s * Math.sin(a += 599), y - s * Math.sin(a - 11)), c.lineTo(x + s * Math.sin(a += 599), y - s * Math.sin(a - 11)), c.shadowBlur = r, s = l, x = s * 2, a = p[i + 5], c.shadowColor = c.fillStyle = 'rgb(' + [x + s * Math.sin(a += 599) | 1, x + s * Math.sin(a += 599) | 1, x + s * Math.sin(a += 599) | 1] + ')', c.fill()); p ? c.fillText('BLCK4777', 90, 99) : (B = new Audio('data:Audio/WAV;base64,' + btoa(B))).play(p = [f = C = 0, 0, 0, 0, 180, 2, 0, 1, -360, 0, 0, 0, 99, 1, 0, 2, 360, 0, 0, 0, 99, 1, 0, 3, -2880, 0, 0, 0, 1280, 0, 1280, 0]) };
- paulirish 11y agoA bit prettier: https://gist.github.com/paulirish/21326986569181e47f21 https://gist.github.com/paulirish/21326986569181e47f21
- myth_drannon 11y agothe 4kb winner is also amazing http://archive.assembly.org/2015/4k-intro/hydrokinetics-by-prismbeings http://archive.assembly.org/2015/4k-intro/hydrokinetics-by-p...
- segmondy 11y agoAnd today, I was reading that facebook's mobile messenger has 18000 classes, and is about a 100mb, this doesn't take into account other dependencies it has on the OS. These demos are 100% standalone, no external libraries. Progress is a funny thing.
- mbilker 11y agoThe only other dependencies would be assets and OS included libraries. All of the code executed is part of the binary or it is remote JS.
- lawl 11y agoNo, assets are included in the byte count of these demos! Not sure what you mean by RemoteJS though. You aren't allowed to load more JS code from the web.
- nomercy400 11y agoDifferent use case. Facebook is a communications application, with user inputs and networking, focused on getting the information to you as fast as possible for the best user experience, and being always working 24/7. This is a one-off deterministic demo, without inputs or networking. Still, a 1k demo like this is impressive. And 18000 classes is too much for a messenger. But you can't compare them.
- mrich 11y agoThis is a Javascript demo. So let's not discount the browser, Javascript engine, JIT, 3d acceleration libs, sound libs, and everything used from the OS that is involved here. Still it is a great effort. Your argument fits better to a machine like the C64, where demos are really going directly to the hardware and the OS is basically inactive.
- Dylan16807 11y agoWell most of the things you named are inactive. It's using a very tiny bit of external 3d code, and external decompression, but almost everything else out of browser, javascript, libs, and OS is passthrough. The javascript engine exists but does not serve to make it smaller; the code is simple loops and subroutines that would probably be better as native code.
- X-Istence 11y agoThis is one of my favourite demoscene's: https://www.youtube.com/watch?v=auagm5UBTwY https://www.youtube.com/watch?v=auagm5UBTwY
- AceJohnny2 11y agoAnd a breakdown of how it was built: http://iquilezles.org/www/material/function2009/function2009.pdf http://iquilezles.org/www/material/function2009/function2009...
- akx 11y agoWebGL version, by iq himself: https://www.shadertoy.com/view/MdX3Rr https://www.shadertoy.com/view/MdX3Rr
- skrebbel 11y agoNitpick: the demoscene is a community. You linked to one of your favourite demos. (and insiders wouldn't call it a demo but an intro because it's small, and obviously the word "intro" signals something about file size)
- justin_ 11y agoHere's a 256b web compo from 2002 (!) http://wildmag.de/compo/ http://wildmag.de/compo/ A lot of the stuff looks almost trivial compared to what we do today. (And unfortunately a lot of these won't work anymore)
- kornakiewicz 11y agoFor Polish-speaking guys: Ha!art published a magazine about scene with some of good articles: http://www.ha.art.pl/czasopismo/numery-czasopisma/4054-ha-art-47-3-2014 http://www.ha.art.pl/czasopismo/numery-czasopisma/4054-ha-ar...
- rational_indian 11y agoSo Javascript is now Assembly?
- skrebbel 11y agoNo, Assembly is an annual demoparty in Finland.
- clippit 11y agoHow to unpack the compressed html file? I see a lot of binaries in there starts with "PNG".
- rtpg 11y agohow does one even begin to figure out the techniques used to write intros or demos like this?
- csixty4 11y agoIf you're interested in doing C64 demos, here's a decent starting point: http://www.antimon.org/code/Linus/ http://www.antimon.org/code/Linus/
- z303 11y agoRead up on Computer graphics. this EdX course looks a decent starting point https://www.edx.org/course/computer-graphics-uc-san-diegox-cse167x https://www.edx.org/course/computer-graphics-uc-san-diegox-c...