puls (256 bytes)
JanRrrolaKadlec1 HN recommenders · 2011–2014
36K views · demo · evergreen · Uploaded 2009-09-28
A 256-byte MS-DOS intro that renders a raymarched, procedural 3D animation. It won the 256-byte competition at Riverwash 2009 and the scene.org award for best technical achievement that year, and the author published commented x86 assembly source.
HN commenters cite it as the most impressive 256-byte production and as an example of how much graphics code can fit in a tiny binary.
24:26The Beauty of Bézier Curves
Freya Holmér
1:13:50The Continuity of Splines
Freya Holmér
3:36elevated by Rgba & TBC | 4k intro (FullHD 1080p demoscene demo)
Demoscene High-Quality Videos (Annikras)
24:46Painting a Character with Maths
Inigo Quilez
1:01:07The Ultimate Game Boy Talk (33c3)
media.ccc.de
45:35The Real Story Behind Wayland and X - Daniel Stone (linux.conf.au 2013)
Mladen Mijatov
1:10:00A Deep Dive into Nanite Virtualized Geometry
SIGGRAPH Advances in Real-Time Rendering
2:22A Mind Is Born (256 bytes)
lftkryo
3 comments from Hacker News
Neat hack! But stacking sine waves with a bit of modulation isn't exactly earth-shattering. You might like to try some of these: [LINK] . The most impressive to date is probably Puls: [VIDEO] . The top three 256b productions on Pouet are all doing the same basic thing of ray marching against an isosurface. The sophistication of the geometry has increased a lot since Lattice, which used something simple like cos(x)^2 + cos(y)^2 + cos(z)^2 = f(t) where f(t) is an oscillatory function of time that controls the thinning and fattening of the lattice.
Řrřola (a famous demoscene coder [1]) found a far better constant than the original (a 2.7-fold accuracy improvement) by using an optimisation algorithm over all three constants present in the original inverse square hack. His algorithm and the result (along with a plot of relative error) can be found on his blog [2]. [1]: See, for example, this 256-byte raycaster [VIDEO] [2]: [LINK]
> You really don't want to use x86 hardware transcendental instructions ...unless you're doing size-optimised graphics intros, where tremendous accuracy is not essential and the stack-based nature of x87 makes for some extremely compact code: [LINK] [VIDEO] I think the main reason why this issue hasn't been so significant is that the majority of code that uses those instructions isn't dependent on extreme accuracy - code that does would likely use their own routines and/or even arbitrary-precision arithmetic.