Hacker News new | ask | show | jobs
by haxiomic 967 days ago
Thank you! I worked on this

We start with a point cloud generated from the model which has color and normal and render each particle as a little hexagon with metallic and iridescent shading. Each particle is given a position and velocity in a texture. Each frame we do a physics step that writes to these textures with fragment shaders. We sum the forces into the velocity texture:

- mouse interaction force

- flow force from time varying curl noise

- spring force to return to original position

- air resistance

last we do a euler step to update position texture. There’s masses of free parameters to control forces and materials, the animation is created by changing parameters per-particle over time

Tech: three.js, GLSL & TypeScript

Tip: Left click to push apart, right click to pull together!

1 comments

This is really awesome -- well done!