An interactive 3D proof of concept for configuring a product box experience in the browser.
This project combines a real-time 3D scene with a simple configurator UI. Users can:
- choose a category (cover design + pricing),
- add a custom engraving text,
- upload a custom cover image,
- animate opening/closing behavior for box and slipcase.
This PoC validates:
- 3D product visualization in a web UI,
- smooth state-driven animation flows,
- lightweight design customization inputs,
- feasibility for a future "save design / add to cart" product flow.
React 19Vite 6Three.jswith@react-three/fiberand@react-three/dreiJotaifor shared animation stateTailwind CSS 4+ Radix-based UI primitives- Mixed
JavaScript/TypeScriptcodebase
npm installnpm run dev- Select a category from the dropdown.
- Enter engraving text in the input field.
- Optionally upload an image to override the default front cover artwork.
- Toggle the checkbox to open/close the box animation.
- Use mouse drag to rotate the camera around the scene.
src/
App.jsx # Main scene + configurator UI
features/
wrapping.jsx # Slipcase mesh, textures, motion
box.jsx # Box assembly and part renderer
boxInnerPart.tsx # Individual box part behavior
cameraController.jsx # Camera transitions
hooks/
useFloating.ts # Floating animation helper
useFolding.ts # Fold/open transform logic
lib/
slipcaseGeometry.ts # Custom geometry generator
data/
categories.ts # Demo product categories and assets
atoms/
atoms.ts # Shared animation state
- "Design speichern" and "In den Warenkorb hinzufügen" are UI placeholders.
- No backend persistence or checkout integration yet.
- Limited category set and static demo pricing.
- No test suite included yet.
