❌

Normal view

[Showoff Saturday] Claybound: A 2.5D platformer built in plain three.js with real-time deformable clay.

[Showoff Saturday] Claybound: A 2.5D platformer built in plain three.js with real-time deformable clay.

Playable demo

Here is how it works under the hood:

  • The Clay Aesthetic: To get that tactile stop-motion look, I used rounded boxes and applied low-frequency noise to the vertices. I baked a normal map from an actual sculpted clay ball, which dynamically scales based on the object size.
  • Deformable Terrain: The clay you shape in-game is its own deformable mesh driven directly by your drag inputs.
  • Mobile Optimizations: Getting heavy 3D to run on phones is tough. I rely on meshopt for models and run a fixed 1/120s physics step with interpolation. To save frame time, the shadow map only updates every other frame (saving about 14–26% of frame time).
  • Progressive Loading: Asset size remains a challenge. I set up a later level's boss's models to load asynchronously only after play starts. For a fresh start of that chapter on a 9 Mbps connection, this dropped the initial load time. But I am still not quite where I would like to be.

How do you all handle the initial load payload for heavy 3D experiences on mobile? Would love to hear your optimization strategies!

submitted by /u/dermosef to r/webdev
[link] [comments]
❌