SimonDev

@simondev.bsky.social

Optimization can be tricky. Here’s how to go from drawing a few hundred trees to virtually unlimited in Three.js, step by step. This will be high level, but not so much that you can’t fill in the details. #threejs

Bild

Lerp is used everywhere in games. It’s simple, but combined with a few small tricks it becomes incredibly powerful. This thread is full of visual examples.

Bild

The dot product is used everywhere in games, often with unit vectors to determine how aligned they are. But if it’s never really clicked for you, this thread is full of visual examples.

Bild

Most online “GLB optimizers” only optimize for file size, but they still take up a huge amount of memory. One Sketchfab example: No compression: 39 MB file, 342 MB in memory Other tools: 4.26 MB file, 22 MB in memory My tool: 0.68 MB file, 6 MB in memory

Hope you'll all have a great holiday season! My Holiday Kit contains over 100 3D models and it's completely free to download and use in your games. No need for a donation, or credits - it's all yours! ✨🎁 kenney.nl/assets/holid...

BildBild

Live link : planpoint-webgpu.vercel.app My new #threejs project is live. WebGPU + SSGI + SSR + SSAO + SSS + DOF + Chromatic Aberration + Octahedral impostors = happiness haha. 1 million triangles and 25.000 trees, with all PP effects, running at 60 FPS, under 10mb download 😊

WebGPU Building Demo - Planpoint

Experience native Screen Space Global Illumination (SSGI) with WebGPU and React Three Fiber. Watch real-time color bleeding, dynamic emissive lighting, and realistic light bounces in an interactive 3D...

planpoint-webgpu.vercel.app

🔔 TSL exercises now available! TSL is the future of Three.js, unlocking the power and performance of WebGPU. The integrated shader homework on my site now includes experimental TSL support. This is a free upgrade for all existing Shader students. #threejs #webgpu

Bild

🔔 Quizzes are live now! Integrated right into each lesson and covering all #gamedev and #threejs sections. These will count toward your completion certificate when it launches. It's been a while, but homework and tests were the best part of school, right? 😅

Almost done updating my Graveyard Kit, I've remade every single 3D model in this #gameassets pack. It'll release (probably!) near the end of the week, free for everyone and can be used for any purpose. Thank you for all your support all these years! ✨

Bild

🔔 Site update: new SimonDev site is super functional and getting better. Latest addition: integrated shader homework - edit GLSL in-browser and match target output. It’s a polished evolution of my 2023 GLSL site. Reminder, teachable students can access same content (and more) Link below 👇

Bild

"Phosphor" for(float i,z,d;i++<8e1;o+=(cos(d/.1+vec4(0,2,4,0))+1.)/d*z){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=normalize(cos(vec3(4,2,0)+t-d*8.));p.z+=5.,a=a*dot(a,p)-cross(a,p);for(d=1.;d++<9.;)a+=sin(a*d+t).yzx/d;z+=d=.05*abs(length(p)-3.)+.04*abs(a.y);}o=tanh(o/1e4);

A little followup to the last section: If you understand heuristics and admissibility, you can tweak A* to run much faster! If you're willing to sacrifice perfection, faster still. Learn about it in my latest section on graph traversal. simondev.io

"String Theory" for(float i,z=fract(dot(FC,sin(FC))),d;i++<1e2;){vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.z+=9.;for(d=.7;d<4.;d/=.9)p+=cos(p.yzx*d-t/vec3(2,1,5))/d;z+=d=.002+abs(p.z)/2e1;o+=(sin(z+4.*p.z+vec4(0,1,5,0))+1.2)/d;}o=tanh(o/1e4);