Skip to content

Puppychan/graduation-invitation

Repository files navigation

πŸŽ“ Graduation Invitation

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.

🌟 Features

  • ✨ 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

πŸš€ Technologies Used

  • React + TypeScript + Vite
  • TailwindCSS – For elegant, fast UI styling

For 3D Rendering and Graphics

  • 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

Supporting Libraries

  • maath – For smooth animation transitions
  • lodash - For utility functions
  • react-responsive - For responsive design
  • react-icons - For icons
  • tailwind-merge - For merging Tailwind classes

πŸ“‚ Folder Structure

πŸ“ 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

βš™οΈ Getting Started

1. Clone the repo

git clone https://github.com/Puppychan/graduation-invitation
cd graduation-invitation

2. Install dependencies

npm install

3. Start the dev server

npm run dev

πŸ–Ό Screenshots

🌚 Dark Mode 🌝 Light Mode
Thank You Screen image image
Instruction image image
3D - Welcome Screenshot 2025-04-13 at 10 15 28 image
3D - Subtitle image image
3D - University Info image image
3D - Invitation Info image image

🧠 Inspiration

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!

🎨 Design

🀝 Contributing

Have ideas or feedback? Feel free to open an issue or submit a PR!

πŸ“„ License

This project uses a dual licensing structure:

Attribution Requirements

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.

About

This 5-day project is a university graduation invitation, crafted in 3d website using React

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE.md
Unknown
LICENSE-CC-BY-NC.md

Stars

Watchers

Forks

Packages

No packages published