To be human, means to be a panhumanist, in full awareness, living in mankind, through mankind, and for mankind.
Researcher-in-Residence at Nous Research
@BitzelYT
Steve is meant to be beautifully ambiguous. It what makes him so amazing. He could be white with a tan. He could be black. He could be Indian. He could be *anything*.
The editor is now online! Should run on most mid-end gpus!
Also featuring better denoising: wall-aware filtering and bilateral blurring for better edge preservation.
Link:
#threejs
#webgl
#raytracing
#rtx
#light
2-dimensional global illumination in three.js! Done with per-frame jump flooding and 32spp combined with a spatial denoiser!
Every pixel is treated as a point light source.
#threejs
#webgl
#light
#raytracing
#rtx
After over a year of development, I am thrilled to release my ssao implementation to the public. It's easy to configure, has vanilla threejs as its only dependency, and is highly performant (~160 FPS on medium setting on an M1 Mac).
#threejs
#webgl
#webdev
#graphics
(Link⬇️)
After much work I have an SSAO algorithm I'm really happy with - gives better results than basic SSAO and looks softer and more "real".
If there's enough interest I'll turn this into a library.
Also 160FPS on M1 Mac - Pretty fast!
#threejs
#webgl
#3d
#light
#gamedev
#indiedev
10,000 rigidbodies at 15-60FPS in
@threejs
(faster than Unity/Godot). How?
@babylonjs
's new physics system: havok - it works w/ any frontend, so below is a video of Babylon's havok powering physics in a three scene.
Kudos to the whole Babylon team!
#threejs
#webgl
#babylonjs
Realtime global illumination and ambient occlusion in WebGL2 & ThreeJS. CPU for voxelization, voxels for far-field global illumination, N8AO for near-field global illumination.
#threejs
#webgl
#gi
Whatever Miqu is, it has some sort of special sauce. It gets an 83.5 on EQ-Bench (evaluated locally), surpassing *every other LLM in the world except GPT-4*. EQ-Bench has a 0.97 correlation w/ MMLU, and a 0.94 correlation w/ Arena Elo. It *beats* Mistral Medium - at Q4_K_M. I
Presenting: Voxel global illumination demo in three.js (Link in comments)
Uses voxelization in a worker thread, blue-noise powered stochastic sampling, and A-torus denoising to create a realtime GI solution that supports completely dynamic scenes. It runs at 60-80fps (w/out
Coming soon... an improved MeshTransmissionMaterial that acts like a normal PhysicalMaterial in terms of transmission support - thickness, ior, roughness, etc., but has chromatic aberration, noise-based roughness blur, and (primitive) anisotropy support.
#threejs
#webgl
#gamedev
@mrnastynodrama
Humans don't have an instinct to read the way we do for language & walking. But the good news is a human of *any* age can learn reading w/ dedicating practice and effort.
I am excited to announce: development on
#N8GI
, a dedicated, completely real-time voxel GI solution for the web, built in WebGL2, has officially begun! The development will be very out in the open - clear roadmaps, almost daily commits, etc. etc. You can try the pre-pre-alpha
The view is quite nice...
Working on a new
#webgl
demoscene in anticipation of js13k. All of the below is in one shader, using one procedurally generated texture. Runs in ~10ms on M1 Mac. Would use
#threejs
but space constraint of 13K makes me have to work with raw webgl API
Play with some strange sand.
12,000 particles. No tricks - they all collide with each other. One CPU thread. Pure canvas API.
Thanks to
@shr_id
for inspiration.
The galaxy looks beautiful tonight... one million particles in the shape of the milky way.
New ThreeJS demo. Link in replies. Should run on medium to high end devices.
#threejs
#webgl
#gamedev
Working on some new translucency/refraction tech - provides a truly accurate measurement of thickness which in turn allows for proper translucency in MeshPhysicalMaterial without depth peeling.
Blurring the thickness buffer in screen space allows for roughness.
#threejs
#webgl
Do you want to learn about antialiasing in three.js (MSAA, FXAA, SMAA), and the difference between all the types available to you?
Was talking a bit on discord about AA, and I ended up compiling some advice I have into one concrete thought process, so I'm going to make a
I am proud to announce that N8AO 1.7 is out - uses three.js r158, has transparency and stencil support, and more intuitive parameters for AO behavior (when updating, set your *distanceFalloff* to 1)
Link:
Github:
#threejs
#webgl
Recently created accurate god-rays by raymarching against a point-light shadow map: end result - much more visually plausible (and temporally stable!) than the typical approach of depth mask and radial blur.
#webgl
#threejs
#raytracing
#gamedev
#indiedev
I've been doing a lot of CPU optimizations for JavaScript (V8, specifically) recently and thought I'd share a thread of some of my favorites. These optimizations primarily apply to operations you are doing millions of times CPU-side.
(look i even have cringe thread emojis:)
🧵👇
Happy to announce that N8AO now has support for "half-resolution" mode - it is 2x to 4x faster, looks almost identical to full-resolution mode, and using it is as easy as setting `configuration.halfRes` to true.
Check it out:
#threejs
#webgl
#webdev
Added subsurface scattering for high-roughness translucency - tommorow, I'll consolidate the mess that is my code into a more proper material, and from there drei-integration will be on the horizon!
Also online demo:
#threejs
#webgl
ray marched <Caustics> new in drei 💫
beautiful swirls and patterns that appear when light passes through transmissive surfaces. 😍 this was a huge effort by
@N8Programs
! react + threejs users just have to type:
<Caustics {...config}>
<Model />
demo:
@MorsGames
In this case they literally tried to develop an experience to replace PVZ3. They took the name, the art, the style - they were not *adding on* to what Popcap had made, but instead *entirely replacing it*.
World-space voxel GI. Still in the works, lots of issues. Will post more if it pans out.
The scene is fully dynamic, voxelized 20+ times a second, and global illumination is computed at 1ssp and denoised. Many improvements to make/things to try. Feel free to suggest in the
Yesterday I kept working on my
@webaverse
fps. Added shooting and carrot bombs. Fun stuff.
Used vanilla three and three-mesh-bvh.
If you all want to see me continue development let me know! I might do some more streams in the future.
#threejs
#webgl
#indiedev
#gamedev
After much work - refactored the entire subsurface scattering implant into a drop-in replacement for MeshPhysicalMaterial - MeshTranslucentMaterial. Requires transmission to be 1 and attenuationDistance. Comes w/ subsurface scattering.
#threejs
#webgl
I am honored to announce that I am now a moderator in the three.js discord! This community has done so much for me and I'm super excited for this new opportunity to help out. Love to all the
#threejs
people and I can't wait to get started!
32 different lens flares... all w/ occlusion computed dynamically & partially (so a certain % of the flare can be computed). 120fps on M3 Max Lower Power mode - so pretty damn performant.
#threejs
#webgl
Made a funky image transition effect using
@threejs
points and a shader material.
Could be useful for a hologram style thing or an atypical video game character idk.
#webgl
#threejs
#indiedev
#gamedev
we merged
@N8Programs
new pcss implementation into drei. it's fairly fast, noise is passable, and it's a drop in component (it existed before but the update is worth it):
<SoftShadows />
demo:
4spp RectAreaLight soft shadows, sampled with blue noise and raymarching, denoised via 6x depth-aware guassian blur.
End result produces more convincing results than PCSS - it can even follow the light's rotation, as shown below:
#webgl
#raytracing
#raymarching
#threejs
#light
Alright - got a caustics computation working by raytracing quads. 0-bounce caustics just use simple render targets (no rt) and run very smoothly. Support different ior and light area. These aren't faked - based directly on mesh curvature!
#threejs
#webgl
@amasad
I get up at 1am and spend 4 hours at the gym.
From there, I spend 9 hours working on AGI on my Pentium 1.
I then eat a 4000 calorie power meal (which takes another 6 hours)
Then six hours of sleep.
And I still have 10 hours of time left over.
Now that's productivity.
@mrdoob
OpenAI's recent paper on div-centering using a revolutionary hybrid transformer-diffusion model, Centaur, has made some really great progress in this space. Centaur can outperform junior webdevs immediately and even can outperform senior devs on this difficult task. Amazing!
It's... beautiful. I appreciate the shoutout, but my work would never reach such beautiful scenes and applications without the amazing
#threejs
community!
Your porting of drei stuff to vanilla is absolutely awesome - thanks so much :D!
First test of r3f drei's MeshTransmissionMaterial in vanilla
#threejs
The new blur logic in r150's physicalMat looks soo smooth
and
on top of that transmissionsMat adds all these stunning effects 🤯
Shoutout to
@N8Programs
and
@0xca0a
for their awesome work!
#webgl
I've been working on a Procedural Backrooms-Esque Office - a fun demo that will probably become a game.
Procedural dungeons, random paintings (via ) and a custom SSAO algorithm.
Link:
#indiedev
#gamedev
#threejs
#webgl
#3D
SSAO is online - experiment with it and tell me how it goes! What settings look best, how perf is, etc. This is all useful feedback!
#threejs
#ssao
#webgl
After a lot of work (ie. 4 months on-and- of algo refinement) a preliminary omnissr seems to be working. Slow - but reflections are close-to view independent.
Doesn't solve the hidden surface problem - but using a thickness buffer can help.
#threejs
#webgl
#gamedev
#raytracing
Worked with the amazing
@Ameobea10
to turn my god rays demo into an actual library (w/ more features) that people can use, fully integrated with
@pmndrs
postprocessing!
#webgl
#threejs
#raytracing
Library Link:
Demo Link:
After 9hrs of optimization - I got the algorithm running 4x faster! Main idea is compute gi at lower resolution, and then perform a surface-aware upscale.
Great in theory - but lots of little gotchas to work out.
Anyway, scene below (720p) was 15ps with old algo. Now 60fps.
This can't be more true. JavaScript is simultaneously designed to be extremely beginner-friendly and somehow offers near-native performance if you know what you are doing. V8 is a miracle.
Making a fun little game using
#threejs
and
#webgl
for
#GitHubGameOff
. Uses my 2dgi technology in a shooter where you try to find the "silver bullet" that can kill all enemies.
I'm pleased to announce the COMPLETE MLX QUANTIZATION of the entire
#dolphin
line of models by
@erhartford
. These models are awesome for a wide variety of reasons: good coding abilities, amazing emotional understanding, and general narrative ability. And they are ALL now
Super excited that this feature is coming to three.js! Was really fun to work on and should make rough transmission materials more viable in vanilla :D!
Experimenting with
#ammojs
- GImpact concave bodies used for the chain, convex hulls made with SimplifyModifier and
#threejs
's QuickHull for efficient mesh proxy geometry, and of course, a wonderful BVH-powered sponza environment.
All in an afternoon.
#webgl
#physics
#indiedev
Working on an N8AO 1.7 release... going to bring N8AO up to compatibility with modern threejs, fix a few bugs, and apply some optimizations.
Any other (small) feature requests?
Super happy to join
@NousResearch
as a researcher in residence! Can't wait to do work on synthetic data gen, benchmarking, etc.
Amazing group of people that are generally based.
Here is it!!
A satisfying GPU Goo Simulator on three.js running in Web browser╰(▔∀▔)╯
I managed run 45FPS on my GTX1060 laptop and 6FPS on Pixel4. The Goo cast and receive shadow rendered with ray marching.
Pls Comment Like Share.
#threejs
#webgl
#HTML5
Af†er some debugging, I finally the issue - now the ssao works on all devices!
(I wasn't making sure a sampler was high-p)
- should work on any device! Let me know if there are any more glitches!
@nk
Well I plan to write an AO effect next using the denoiser and TR pass from SSGI. That should boost perf since AO is calculated over time instead in just a frame.
Also check out
@N8Programs
AO effect if you haven't seen it yet, it's very great.
@N8Programs
@verekia
I need to also disable XR rendering for the effect pass for the camera matrices. Should work everywhere via postprocessing now on WebXR enabled devices.
@jomezo101
@sauropoko
I'd be down for something like that. A bunch of artists make art that they consent to use for training, and then I train a LORA on stable diffusion with all the butchered art.
THE most beautiful
#web
experience is going live in less than 24 hours!
After months of hard work, the time is finally here! Elysium will be out soon!🚀
Add to your Calendar: 11 am EST ()
#threejs
#js
N8GI now supports an unlimited number of directional lights (as much as three.js will support), or none at all - instead of just one. Shadow support on all these lights exists, but only for PCFSoftShadowMap atm. Point lights coming soon. Then diff shadow types and spot lights.
Hey everyone! Now that N8AO is "out", what features would you like to see implemented next? Or what libraries/features in general would you like to see me work on?
(idk what to do lol)
Addressing contamination concerns:
- The EQ-Bench v2 benchmark it was evaluated on was uploaded *two weeks ago*. The model creator would likely not have known about it, and would have had to specifically seek it out - and given that it is relatively obscure (34 stars on github)
#threejs
talk is back😍. This time,
@N8Programs
and I will have a relaxed chat about 3D on the web, AI, and more. We will be available to answer any of your threejs inquiries. Please join us this Friday, at 7PM EST.
✅Set the reminder and see you there
@yacineMTB
bro we've tried telling people its not real and we've tried giving people hormones
guess which one made them happier in the long term (its the latter)
For anyone wondering what happened to N8GI:
I couldn't get the voxels looking good at multiple frequencies of geometry. Basically, if a scene had detail at mostly one scale (Sponza), the voxels looked good. But if there was geometry at MANY scales, the uniform voxelization fell
Added diffuse (ambient) occlusion and as a result, the bent normals can provide more realistic shading across the entire PBR material!
#raytracing
#threejs
#webgl