A beautiful, interactive 3D web-based graduation invitation built with React Three Fiber, combining immersive design, animations, and real-time 3D effects to create a memorable digital celebration experience.
- β¨ Fully 3D Invitation Scene using
@react-three/fiber
and@react-three/drei
- Dark mode and light mode themes
- πΈ Photo gallery & ambient effects
- π‘ Real-time lighting, camera motion, and postprocessing (Bloom)
- π± Responsive HTML overlays styled with TailwindCSS
- π¨ Customizable thank you message (based on url path:
lec_<name>
- lecturer,toho_<name>
- Tourism Hospitality club,capstone_<name>
- Capstone team,best_<name>
- My best friends) - π Live Link
- ποΈ Demo Video
- React + TypeScript + Vite
- TailwindCSS β For elegant, fast UI styling
- three - Core 3D library
- @react-three/fiber β WebGL renderer for React
- @react-three/drei β Helpers and abstractions
- @react-three/cannon - Physics engine for 3D objects
- @react-three/postprocessing β Postprocessing, ambient light and glow effects
- maath β For smooth animation transitions
- lodash - For utility functions
- react-responsive - For responsive design
- react-icons - For icons
- tailwind-merge - For merging Tailwind classes
π public/
βββ πΌοΈ assets/ β storing images
βββ ποΈ fonts/ β storing font mappings
βββ π models/ β storing 3D model files
βββ π textures/ β storing textures for 3D models and scenes
π src/
βββ π¦ components/
β βββ π§± 3d-models/ β models generated from .glb files
β βββ π 3d-shapes/ β 3D shapes created with R3F and drei
β βββ π 3d-scenes/ β components for structure, loading, and controls of scenes
β βββ π§© ./ β non-3D related shared components
βββ π§ context/ β context files for global state (e.g., theme)
βββ π₯οΈ screens/ β screen components (e.g., Home, Thank You)
βββ π― sections/ β 3D sections used in Home screen
βββ π οΈ utils/ β utility/helper functions
π App.tsx β Main React component
π¨ App.css β Main CSS file (e.g., Tailwind import)
π§· index.tsx β React DOM entry point
π§ main.tsx β App bootstrap/logic entry point
git clone https://github.com/Puppychan/graduation-invitation
cd graduation-invitation
npm install
npm run dev
π Dark Mode | π Light Mode | |
Thank You Screen |
![]() |
![]() |
Instruction |
![]() |
![]() |
3D - Welcome |
![]() |
![]() |
3D - Subtitle |
![]() |
![]() |
3D - University Info |
![]() |
![]() |
3D - Invitation Info |
![]() |
![]() |
This project was born from a vision to transform the traditional graduation announcement into something extraordinary. Moving beyond simple text messages or static designs, I wanted to create an immersive, interactive experience that would make my invitation truly memorable.
My goal was to transport friends and family into a captivating 3D world where they could explore and interact with the invitation like a game. I imagined a space where loved ones could not only feel the excitement and joy of graduation but also feel honored as significant participants in my journey.
Having just begun my exploration of 3D rendering, Blender, and WebGL a month ago, this represents only my second venture into 3D creation. It's both a celebration invitation and a milestone in my developing skills. I hope you enjoy experiencing it as much as I enjoyed creating it!
- All 3D models are taken from Sketchfab
- Gradient texture is taken from uiGradients
- Gummy texture is taken from MatCaps
- Font is taken from Google Fonts
- Text design is inspired by Sandbox
Have ideas or feedback? Feel free to open an issue or submit a PR!
This project uses a dual licensing structure:
-
π§ Source code: MIT License
-
π¨ Design and layout: CC BY-NC 4.0
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
If you use this code or design elements in your project, please include the following attribution:
Based on work by [Tran Mai Nhung] (https://github.com/Puppychan/graduation-invitation)
See NOTICE.md for asset attributions and third-party licenses.