Advanced Thing: - Fur shell grass. This is an old trick, still used today, to render a dense set of approximately parallel fibers without creating much geometry. Effectively, you quantize the fur field along the normal by creating a bunch of planes coloring where the fur is dense and discarding elsewhere. I used this to implement grass, which is relatively performant but atypical. You can easily see why; the grass readily vanishes from certain angles. From the right angles, though, it provides a very fluffy, painterly look which I like. - The water draws from my past work reverse engineering Nintendo code and their common use of scrolling textures and uv-space noise. I drew a very simple tiling water highlight texture (very, very heavily inspired by The Legend of Zelda: The Wind Waker) and implemented a rudimentary version of this back in Workbook 10, but this goes far beyond that. The water is actually drawn dead last, loading the existing color and depth buffers and continuing to draw with stable texture samplers to the original scene. I do this to sample the scene depth buffer, reconstruct world-space coordinates for scene pixels occluded by the sea, and compute a depth value for each water fragment. I then use this to modulate transparency, mix to a darker color for deeper water, and draw noisy shoreline foam. Note that alpha blending is entirely performed in the fragment shader—from the perspective of three.js, webgl, and the gpu itself, the water is a=1 opaque. - 3D boids, running on GPU. Each boid is an instance of a very simple mesh, and I look up the position and velocity for each in GPU-side textures. These pos/vel textures are generated by fragment shaders on full-viewport quads, repurposed to implement GPGPU without actual compute shaders (since WebGL lacks them). Note that this makes use of a modified copy of Three.js's GPUComputationRenderer.