Hiiiii all!! I am Iris Li and I built my portfolio in three.js: RIRRI’S, a small interactive Japanese convenience store on a rainy evening, try it hereeee: https://world.irisli.dev/
- Draw calls on phones. The store was asking a phone for 846 draw calls a frame. I got it to 531 by merging static meshes by material and by colour (a per-vertex material index plus a uniform array of the original materials’ Color objects, so recolouring for seasons still works), checked pixel by pixel against the old build. Full method and numbers: How to Reduce Three.js Draw Calls Without Changing a Pixel
- Proving “nothing changed.” Seeded random, a hand-driven clock, camera drift and particles paused, then a Playwright pixel diff. The same build against itself went from 1.93% differing pixels to 0.007% once everything was held still.
- First visit. Almost all of the cold-start wait is the GPU preparing about 60 shader programs, so the new programs the merge needs are built in the background once the store is showing.
Happy to answer questions about any of it
pls connect!!! The project records (plain text, for when 3D is too much) are at Projects by Iris: Apple Watch apps, AI agents and tools

