Mr. Doob coded these experiments on standard 720p or 1080p monitors. Today, 4K and Retina screens have different pixel ratios. The math that calculates the "drip velocity" or "surface tension" of the poop assumes a 1:1 pixel ratio.

If WebGL is hopeless, find the original source code. Mr. Doob often included a fallback to 2D Canvas.

Older versions of Mr. Doob’s code used proprietary Google Chrome APIs that no longer exist. If you see chrome.experimental.xxx in the console, that code is dead.

This is the most reliable method for archived Mr. Doob experiments.

If basic clearing fails, force a context loss and recovery:

const canvas = renderer.domElement;
canvas.addEventListener('webglcontextlost', function(event) 
  event.preventDefault();
  renderer.clear();
  renderer.render(scene, camera);
, false);
// Create your WebGL renderer with explicit alpha and preserveDrawingBuffer
const renderer = new THREE.WebGLRenderer( 
  alpha: false,           // Disable alpha channel to prevent transparency artifacts
  preserveDrawingBuffer: false,  // Don't keep old frames around
  antialias: true 
);

// Set clear color to something opaque (e.g., black or white) renderer.setClearColor(0x000000, 1); // Fully opaque black

// In your animation loop, manually clear before rendering function animate() renderer.clear(); // Force-clear the buffers renderer.render(scene, camera); requestAnimationFrame(animate);

Here is the surgical guide to restoring your poopy physics.