The idea came from a practical problem: keeping books organized on a shelf without damaging them. Instead of buying generic bookends, I built a tool that generates custom 3D-printable holders tailored to any book’s exact dimensions.
The core challenge was making Three.js geometry fully reactive to user input without performance drops. The solution uses a debounced update cycle that recalculates mesh geometry only when inputs settle, keeping the renderer smooth at 60fps even during rapid parameter changes.
The parametric model is exported as STL, ready to be sliced and printed. The entire app runs client-side with no backend required — just React state driving Three.js scene updates in real time.