Source code for 4kb demoscene production “Elevated” released (2016)
files.scene.org
files.scene.org
However, “Elevated” had great visuals, great music, captivated people, and at the same time was a 4 kilobyte demo. It became a milestone instantly, as told by cheering on live video. And it became natural for 4K demos to implement everything in a shader to eliminate the rest of the code and be competitive on the new level of visual performance.
Why not go one step further and just skip the geometry pipeline altogether? Most of the stuff I see on shadertoy has absolutely nothing to do with triangles.
Having built with both SDF and conventional geometry, it's much easier to find excellent 3D modellers than it is to find people who can build with SDF though.
[0] https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2018/pres...
Maybe we simply need to develop a more intuitive domain-specific language for artists to work at this level of abstraction? The benefits of working this way are incredible to me... Just in that one presentation you find quotes like:
> Runtime performance not dependent on brush count
> O(1) particle<->SDF collision detection
> Perfect LODIq, the main author of "Elevated" is indeed best known for popularizing SDFs in the demoscene, but for that particular intro, the SDF raymarching trend had already started and he wanted to do something different.
https://iquilezles.org/articles/function2009/function2009.pd...
The project lives on today: https://github.com/runestubbe/Crinkler and http://crinkler.net/
https://in4k.github.io/wiki/crinkler
And some more info from 2005 seminars. (search for crinkler)
https://files.scene.org/browse/parties/2005/assembly05/semin...
It has a many aspects one would want from a good universe.
Infinite detail. But not "boring". The digits of PI have infinite detail too, but when you don't know the algorithm itself, they probably look just random. Which would be boring. But the Mandelbrot set exhibits many nice patterns one can learn and reason about.
The algorithm that creates the Mandelbrot set can probably be implemented in less than 400 bytes.
2k64sw32sh7sz[.]0:p[,]1:p[:]2:p[o]3:p[]4:p[O]5:p[@]6:p[ ]lz:p5lw/si4 lh/sj0 2-dsxsu0 2-dsysv[0 2-dsxsu[luSalvSblzdsnSq[lqSn0Sq]Sm[laddSoSs LoLslb2* SoSsLoLslbd-lu+Salv+Sbcladlbd+4<mlqd1-Sq0<g]sglgxladlbd* +4 0sr[1sr]st>tLrln;pPlilu+ Sulu2>h]sh lhx[]pljlv+Svlv2>f]sflfx
So then the question becomes what is the absolute minimal hardware and software configuration that you could use to generate a mandelbrot?
Because there is no way to evaluate how "minimal" a configuration is.
No matter which elementary property you assume the universe to have, one would have to ask "Is that a complex thing?". Is gravity complex? Is an electron complex?
1. https://www.youtube.com/c/CloserToTruthTV
My understanding of an answer I've heard is along these lines:
If there is truly nothing then that means there are also no bounds/limits/rules, which means there is nothing stopping everything from being. Out of nothing comes the boundless cornucopia of existence, from complete lack of constraints that is nothingness.
There is a tradeoff to be made between (algorithmic) information specified as a program/software versus an interpreter/hardware http://www.hutter1.net/publ/ctoex.pdf
However, all we really need is a Turing-complete runtime, which can be very simple, e.g. https://en.wikipedia.org/wiki/Rule_110 https://beza1e1.tuxen.de/articles/accidentally_turing_comple...
One easy way to make our universe is to run all possible programs (even if you don't think our universe is computable, we would still end up running simulations which are indistinguishable to arbitrary precision). We can even apply an anthropic argument to this: that the vast majority of programs are not universes conducive to containing life, but we must necessarily find ourselves in one which is.
I really hope it continues to be possible for this art form to exist.
Hopefully AI doesn't one day ruin the demoscene as well. Seems like a Pandora's box for cheating and/or asymmetric resource advantages.
I don't think they'll be much ruining going on. The people who make these demos use everything they can get their hands on, as long as it helps with cool visuals, a great soundtrack, and sandal executable size. In terms of how they get there everything seems to be allowed and even expected. And if one of those things is a trained network, so be it. Many groups have their own custom tools or even one-offs for only one demo.
I feel like I have a high level understanding of most parts of the stack, but graphics programming has eluded me thus far.
Would writing a ray tracer be a good starter project? I know I've seen it recommended by several people before.
https://threejs.org/examples/#webgl_geometry_terrain_raycast
The Book of Shaders looks quite interesting however, thank you for the link!
Using these tools doesn't mean your final project has to be JS-based as well. It just happens to be a convenient way to focus on specific aspects of the project.
Beginner. https://youtu.be/0ifChJ0nJfM
Advanced. https://youtu.be/BFld4EBO2RE
Website. https://iquilezles.org/
Raytracing in a weekend is also useful: https://raytracing.github.io/
Yes!
https://web.archive.org/web/20120119015415if_/http://www.iqu...
https://www.youtube.com/watch?v=1dcrV_7JpXQ
Pouet link if you want the binary: https://www.pouet.net/prod.php?which=1221
It blew my mind when I first came across it in 2003, and it's still highly impressive even now.
For whatever reason I became obsessed with this lesser known demo called g-cube and watched it a lot in 2011.
Just wanted to share(anyone remember it?): https://www.youtube.com/watch?v=fc0gh5wnItw
That path brought me to HPC, efficient and high performance programming and showed me how thinking about writing efficient code made a difference.
Yes, you can't arrive to demoscene level wizardy in every application/tool you write, but optimizing the obvious and then some changes things a lot.
Thinking about it again, possibly coming from C64 and early x86 hardware already primed me to "do more with less" mindset already, but '.the .product' get the things rolling.
all about slowing down the computer nowadays, including build time cough like rust cough