inigo quilez

All Photos
Today's rabbit hole - porting a raytracer I wrote in 2001 in assembly language to Windows 10, and making it work in 1080p rather than the hardcoded 240p. Surprisingly, it was pretty easy to understand the code after 20 years. Source:…
I'm strongly AF myself. Related, I wouldn't be surprised if this poll also became a Product vs Web developer discriminator.
The two main shapes of a project's source: Architecture-First (AF) src/module*/module*.cpp,h src/module*/module*.psd,ma src/module*/module*.glsl FileType-First (FF) src/code/module*/module*.cpp,h src/art/module*/module*.psd,ma src/shaders/module*/module*.glsl What's yours?
Is it possible to configure Github to disable version control, contribution activity, and all the development features? If not, do you know of alternative products that focus only on hosting, sharing and browsing open source projects (source, documentation and binaries)?
For values in the range 0 to 1, powers larger than 1 push them down and powers smaller than 1 pull them up. So, we are pushing the red+blues down and pulling the greens up a little. Images are pixels, pixels are colors, colors are numbers. And, you can do maths on numbers.
The "Matrix Color" formula.
Stoked that as of today, my company @smoothstep0 develops Quill/@QuillSmoothstep, the most advanced & professional VR animated film making package, responsible among others for Sundance, Tribeca & Venice International Film Festival nominated films. Story:…
Hint - the name of a blur doesn't come from the direction of change but the direction of blurring. In other words, if you are tempted to think the bottom one is radial, think of what a horizontal blur and a vertical blur are and how we don't name them reversely.
I hope this helps. Looking forward to your letters.
Using Perlin noise as activation function for a tiny 3,000 params fully connected network to approximate a photo. So, instead of using ReLU or Sin I used noise (much richer, non-periodic search space than a SIREN). Not remarkable, but definitely works! I'll write something up.
Why call the new Matrix4 film "Matrix : Resurrections" when they could have called it "Matrix : The Homogeneous Coordinate".
I recently had to use a UI editor, and it seems they are EXACTLY the same as the Visual Basic I used 25 years ago? 1. Drag "Button" from Toolbox 2. Drop into panel 3. Align to other elements 4. Fill code for button1_on_click() So, no much progress? (Besides immediate mode UIs)
New Video: The Babylonian multiplication Full video:…
Airplane touch screen, Horror Stories 1. Film flickers and aliases because nobody cared to properly downsample it. 2. Front passenger reclines seat while in your 10th minute into a 2048 game. 3. Suddenly switches on and burns your retinas because of a small turbulence.
(for the raymarching/Shadertoy folks - it features domain repetition and ambient occlusion the way we do it today, but the smooth-minimum and soft shadow were still not fully developed. Also, the reason for udSqBox is that square roots were expensive back then)
I had a nostalgia moment and I ported this raymarched SDF / "mathematical painting" that I made in 2008 to Shadertoy:
Some classic, 3-line micro-shaders:
I wrote an article about natively building SDF fractal noise (say for procedural terrains) by iteratively blending spheres as opposed to traditional noise displacement; because we need more "SDF-Native" techniques. Article… Shader
Flipping/negating a vector into the correct hemisphere can create temporal discontinuities that will ruin your sequence/animation. Instead, reflect or clip the vector to the hemisphere! This has saved my day multiple times over the years. Read more:…
I think @Twitter's product managers like numerical eastern eggs: * Video upload length limit is 2m20s, or 140 seconds - same limit as a for tweet's character count. * The background in the "Dim" display settings is rgb( 21, 32, 43 ), a cute sequence. * Are there more?
Alias-Free GAN pdf:… project page: networks match the FID of StyleGAN2 but differ dramatically in their internal representations, and they are fully equivariant to translation and rotation even at subpixel scales
Retweeted by inigo quilez
In order to smoothly ramp up (ie, EaseInOut) a stationary object into motion you can't simply multiply smoothstep by time, that'll get you a broken animation (left). Instead you need to compute the integral of smoothstep (right):…
I'm always surprised by how creative and inexhaustible the space of gear design feels to an outsider like me. This one is cool, did you see it @henryseg ?…
What you can create are blend operators that "approach" ‖∇f‖=1 in some limit that you choose. For example, f=√(u²+v²) gives ‖∇f‖² = 1 + 2uv/(u²+v²)<∇u·∇v> which approaches 1 when one of the two distances is very small or very large. More info in my upcoming book! (2/2)
Cannot be done I think: for a blend operator f(u,v) that takes two SDFs u and v with ‖∇u‖=1 and ‖∇v‖=1, I get ‖∇f‖² = (∂f/∂u)² + (∂f/∂v)² + 2(∂f/∂u)(∂f/∂v)<∇u·∇v> So the length of the gradient depends on the relative orientation of the two input gradients. (1/2)…
Hi web-friends. Do you have any recommendations for web hosting in the US for high traffic websites? (with php/sql/cgis, the classic stuff). Something reliable and with good customer service?
It _must_ become part of <cstring>. And you know it @isocpp. Please. Like this tweet if you think they should add it.
Amusingly enough, the inventor of C++, Stroustrup, must be the person on earth who's name you'd most likely expect to find in a C header file: char *stroustrup(char *str1, char *str2) Return a copy of the first occurrence of str2 in str1, or null. See also: strstr(), strdup()
Linear interpolation: c(t) = a·(1-t) + b·t Exponential interpolation: c(t) = a¹⁻ᵗ · bᵗ It behaves "linearly" in exponential domains (rotations with complexes/quaternions, or scaling objects). If for scalars and you need performance: c(t) = 2^[ (1-t)·log₂a + t·log₂b ]
This algebra manipulation toy/game is pretty cool…
📢Our new#CVPR20211 paper with@angeloskathh,@FidlerSanjaa and Andreas Geiger is on arXiv! We present Neural Parts, a novel 3D primitive representation that is not limited to a specific family of shapes but instead yields arbitrarily complex primitives.
Retweeted by inigo quilez
Isn't it unfortunate that this isn't the convention for n-spherical coordinates? S¹ : x₀ = cos α₀ x₁ = sin α₀ S² : x₀ = cos α₀ x₁ = sin α₀ cos α₁ x₂ = sin α₀ sin α₁ S³ : x₀ = cos α₀ x₁ = sin α₀ cos α₁ x₂ = sin α₀ sin α₁ cos α₂ x₃ = sin α₀ sin α₁ sin α₂
If you are into #demoscene hacking: the @revision_party is around the corner, so I updated my sample projects for demos and executable graphics with the multi-pass system I used for Hoody last year (tweaked based on advice from @eddbiddulph) and more:…
Remote employees should be called "quaternions" - they don't commute, and are extra complex to work with.
It's taken me a few months to be back to normal life, but finally I'm doing an new live stream for Patreon supporters: an AMA session, next week, March 24 at 12pm PST (8pm CEST I think):
An Elevated Command Prompt (friends from the #demoscene will get this one). Thanks @zadjii at Microsoft for allowing shaders in the Windows Terminal (…). Now, before your manager notices, add hot reloading, error reporting AND mipmaps for "shaderTexture"..?
Here goes my valentines mathematical heart.… It's a few years old, but I'll give it a try to reposting it. ps - I'm kind of amazed I recorded this as a single 10 minutes long take (except for video glitch at the end), and on first attempt.
Graphing a bouncing ball on a staircase: Better Quality Video:…
Can anybody confirm with their own html5 project (not that asynch shader compilation (KHR_parallel_shader_compile) is working as usual on Edge (Win10_64bits, 87.0.664.75) but is now broken in Chrome (Win10_64bits, 88.0.4324.96)? (using some long shader)
I haven't stared at TV screen for 20+ years. But recently I've had to look at a few and gosh, every single one aliased, flickered and/or had broken colors. I was horrified! (People don't seem to care though, in which case, why give them config options in the first place?)
The SIGGRAPH Art Gallery deadline is in 1 week!! Excited to work with our jury— Memo Akten @memotv, Valencia James @valjamdance, Inigo Quilez @iquilezles, Behnaz Farahi, Yoon Chung Han @hanryss— to identify innovative creative art+tech projects. Submit at:…
Retweeted by inigo quilez
Added 4 more analytic gradient shaders for SDF primitives to the list:…
Every time a product, platform, language, methodology or sausage-making-tool that I never learnt gets obsolete, I blissfully think of all the time I saved and instead used to make actual things. #unsolicitedadvice : practice "Resist The New Shinny Thing" and "Deferred Learning"
And, it seems I'm not the first one to think of this. I just searched for "2 and Pi ligature" in case there actually already exists an Unicode utf-8 character for it (it doesn't 🙁), and I found this:…L
Idea for a "π to τ" transition plan: 1. don't introduce the new symbol τ just yet, but 2. we strongly encourage π to be always preceded by a 2 (and adjust formulas accordingly) 3. we allow the ligature of 2 and π like the "a" and "e" make æ 4. wait a couple of generations
It has text output and can be programmed -> "Hello World" It has pixels and can be programmed -> Mandelbrot set
A super simple cityscape with 5 functions (could be 3). (originally for TikTok, but let me test how #verticalvideo feels on Twitter)
Twiends™ uses the Twitter™ API, displays it's logo & trademarks, and is not endorsed or certified by them. These items remain the property of Twitter. We do not sell followers, we only provide display advertising. Bots & fake accounts are not permitted on twiends. © 2009
Grow Your Twitter Free
Want To Grow Your Twitter?
We help other people find and follow you on Twitter.
Key Info:
Started in 2009
Over 6 million signups
Country targeting provided
We never auto tweet to your timeline
We never auto follow others
We actively moderate our community
Please Share
Please upgrade your browser  chrome