If anyone's interested in what I've been up to lately, I've been leading development of some 3D foundation models at @Roblox—like a next-gen texture generator, released today: https://t.co/YVpMG1Y0Jp
4k resolution, PBR materials… and it's free. :-)
Also gets some things right that are important in practice (and annoying with other tools), like generating good texture even in spots where different parts of the mesh intersect.
Was happy this required not just ML, but some classic signal processing to really get right. Great work, by a great team.
Has definitely been a journey of understanding how generative AI tools can be designed as just another level of abstraction for creation—rather than a “one shot” replacement for artists. Still a lot of work to do, and more to come…
DINOv2 has never seen a caption, and Qwen3 has never seen an image. We still aligned their embedding spaces without a single image-caption pair.
It even works when the images and the captions come from different datasets.
Project page: https://t.co/2YHSkXVz1D
⬇️
Looking at OpenAI releasing hundreds of mathematical results, I think we really have to lead with empathy here.
When you’ve spent years learning a craft, whether it’s writing code, creating illustrations or doing mathematics, and suddenly a lot of what you do seems to be a prompt away, of course that’s disorienting. Your craft is how you define yourself, what you’re proud of, where you find flow, sometimes the thing that gives your day meaning. It’s a huge part of your identity.
And I get how this can lead to a pretty nihilistic feeling, like you wake up one morning and think, okay, if everything can just be prompted into existence, what am I supposed to do now? What am I getting better at? What is all this effort for?
Software engineers have been grappling with this for a while, and I expect more people will experience it as AI keeps accelerating. Writing a book, creating a movie, maybe someday helping solve a disease, more and more things we’ve spent our lives learning could feel a prompt away.
I think that progress is amazing, and I’m 100% confident we’ll find harder problems to work on and new crafts to fall in love with. But knowing that intellectually doesn’t make the sense of loss disappear, especially when the change happens this fast and feels this brutal.
We can celebrate the breakthroughs and still care about the millions of people trying to figure out where they fit and what gives their life meaning in a world becoming this intelligent. “You can do more now” might be true, but people also need time to process what they feel they’ve lost.
DLSS 5 running in the browser with #webgpu
And yes it works on MacOS too.
Try the the live demo here https://t.co/frqdwHzeDv
You can also try it with your own models
#WebDev#AI#threejs
After co-inventing ChatGPT, I kept asking myself: why have superhuman chat models not led to AGI?
I’ve spent the last 2 years in stealth building a new way to train models (RLCD), and a new type of frontier AI model that we are releasing today: Jev
• 20-200x faster
• 40-400x cheaper (w/ output tokens free)
• Frontier composable intelligence optimized for decisions
AFAICT the shortest path to AI-based economic revolution
I resigned from Khronos Group today. I spent the last three years doing graphics API research at Khronos and Microsoft. Neither of them is acting responsibly. They are racing straight to self-increasing lines of code per triangle and gambling with our lives. More thoughts below.
Neural Texture Compression (NTC) for #ThreeJS.
NTC shrinks material sizes by 90% by compressing all textures together into a single compact neural network.
Demo + Trainer + #ThreeJS runtime library here:
https://t.co/bFZOY55iqN
Numbers software designers should know
8.3 ms = one frame at 120 Hz
16.7 ms = one frame at 60 Hz.
100 ms = response feels instantaneous
200–300 ms = transitions feel snappy
300–500 ms = transitions feel deliberate
1 second = delay interrupts thought
10 seconds = waiting loses attention
44 × 44 pt = comfortable minimum touch target
4.5:1 = minimum contrast for ordinary text
3:1 = minimum contrast for large text
45–90 characters = comfortable body line length
1.2–1.45× font size = comfortable body line height
⚠️ PSA: This week will be like April Fool's regarding results made by (& ostensibly made by) frontier models. 🤖
Some of the demos are truly impressive.
Others are things we could *already* generate in < 30 seconds, since the 1990s—like procedural terrain.
Don't be fooled. 🤡
This might be the most important paper on surface shading to come out in years. TL;DR: microfacet models are wrong and proposed wave-based or hybrid alternatives are wrong too. This is an exciting opportunity for new research! https://t.co/ZTtvzicabz
@keenanisalive Finally, like for all my past projects, I’ve also put an informal writeup of the project on my webpage.
Full project page: https://t.co/aD1VLUblg2
</🧵>
A practical guide that follows the evolution of rendering techniques: from classic rasterization and voxels to ray tracing, path tracing, signed distance fields, and modern Gaussian splatting: https://t.co/wwcgKLZFiv
#gamedev#GraphicsProgramming#Rendering#ComputerGraphics
Introducing Cosmos 3 Edge: our open frontier world model built to run on-device.
Cosmos 3 Edge helps robots learn and act, autonomous vehicles understand road scenes and predict intent, and vision AI agents reason across live video for smart infrastructure.
With 4B parameters and a 2B Nemotron-based reasoner, you can run it on DGX Spark, NVIDIA Jetson, and more.
Box3D is now public & open-source. 🎉
We've used it as our 3D physics engine for the past year, for a Sandbox game where players can build whatever they imagine, or developers can build any game - Box3D handles anything thrown at it.
Open development like this makes games better for everyone. Congrats to @erin_catto on the release.
https://t.co/nfFPYHPL8M
It isn’t the point of this project, but looking at the triangulations made me think about some GPU optimization esoterica.
Everyone knows “triangle count” has an impact on performance. Graphics programmers also know that the ordering of the triangles can also make a significant difference, and integrate mesh optimization tools.
For the special case of planar figures like these, total triangle edge length can become the distinguishing performance characteristic. GPUs work with 2x2 blocks of pixels so they can generate derivatives for texture sampling and shaders. At triangle edges, they still usually have to do calculations for complete 2x2 blocks, regardless of whether 1,2,3, or 4 pixels in the block are actually needed. Long, skinny triangles can require over double the fragment shader invocations that area-maximizing triangles do.
Consider triangulating a circle: the obvious way is to make a single triangle fan, but you can reduce the total edge length by inscribing a polygon inside the circle and only fanning out from that to the circle. Slightly more vertex work, but less fragment work.
There probably isn’t any real world case where this would be a crucial optimization, but having an “optimization worldview” means always noticing the tradeoffs.