.lookAt(new t3d.Vector3(0, 0, 0), new t3d.Vector3(0, 1, 0));
		camera.setPerspective((45 / 180) * Math.PI, width / height, 0.1, 1000);
		scene.add(camera);

		const controller = new OrbitControls(camera, canvas);

		const waterSimulation = new WaterSimulation(256, 256);

		// interaction

		const ray = new t3d.Ray();
		const mouse = new t3d.Vector2();

		let debounceTimeout = null;

		document.addEventListener('mousemove', event => {
			if (debounceTimeout) {
				return;
			}

			debounceTimeout = setTimeou