An interactive 3D portfolio website built with React and Three.js. This project features a modern, responsive design with a 3D book interface, interactive 3D Earth model, and dynamic components showcasing projects, skills, and experience. Optimized for performance with reduced memory usage and improved rendering efficiency.
- React - Front-end library for building the user interface
- Three.js - 3D graphics library for creating and rendering 3D models
- React Three Fiber - React renderer for Three.js
- React Three Drei - Useful helpers for React Three Fiber
- Vite - Next generation frontend tooling for fast development and optimized builds
- Tailwind CSS - Utility-first CSS framework for styling
- Framer Motion - Animation library for React
- GSAP - Professional-grade animation library
- Styled Components - CSS-in-JS styling solution
- Jotai - Primitive and flexible state management for React
- React Icons - Icon library for React
- React Intersection Observer - Utility for detecting element visibility
- FontAwesome - Icon library for social media and UI elements
- EmailJS - Client-side email sending service for contact form
- Maath - Math helpers for 3D animations
- OGL - WebGL framework for the circular gallery component
- React Tilt - 3D tilt effect for UI elements
- Interactive 3D Book - Animated 3D book interface with page-turning animations
- 3D Earth Model - Optimized Earth model with proper textures and atmospheric effects
- Dynamic Project Gallery - Showcases projects with:
- Rectangular, space-efficient card design
- Dark theme with subtle gradients and rounded corners
- Horizontal card layout with project image on the left and content on the right
- Infinite Scroll Components - Smooth scrolling interface for various content sections
- Particle Effects System:
- Dynamic movement patterns
- Custom textures and effects
- Adaptive boundaries
- Additive blending for enhanced visuals
- Interactive Navbar - Smooth scrolling navigation
- Audio Integration - Background music player
- Responsive Design - Mobile and desktop-friendly interface
- Contact Form - Email integration for visitor messages
- Circular Gallery - Interactive display of skills and technologies
- Starry Background - Animated space-themed backgrounds
- Vertical Timeline - Visual representation of experience and education
- Memory Management - Custom memory management system to reduce memory usage
- Texture Optimization - Efficient texture loading and caching system
- Renderer Optimization - Enhanced Three.js renderer settings for better performance
- Adaptive Quality - Automatic quality adjustments based on device capabilities
- Resource Disposal - Proper cleanup of 3D resources to prevent memory leaks
- Lazy Loading - On-demand loading of assets and components
- Chunked Loading - Split code and assets into manageable chunks
- Node.js (v14 or later)
- npm or yarn
# Clone the repository
git clone https://github.com/bepoooe/adrish-portfolio.git
# Navigate to the project directory
cd adrish-portfolio
# Install dependencies
npm install
# or
yarn# Start the development server
npm run dev
# or
yarn dev# Build the application
npm run build
# or
yarn build
# Preview the production build
npm run preview
# or
yarn preview/src- Source code/components- React componentsAboutMe.jsx- About me sectionBook.jsx- 3D book component with optimized renderingCircularGallery.jsx- Interactive skills gallery using OGLContact.jsx- Contact form with 3D Earth modelExperience.jsx- Main 3D scene setupHero.jsx- Hero section with custom fontsInfiniteScroll.jsx- Custom infinite scrolling componentLoader.jsx- Loading indicator componentMusicPlayer.jsx- Audio controlsNavbar.jsx- Navigation barParticles.jsx- Optimized background particle effectsPortfolio.jsx- Main portfolio containerProjects.jsx- Projects showcase sectionScholasticRecord.jsx- Education history sectionSimpleInfiniteScroll.jsx- Lightweight scrolling componentStarryBackground.jsx- Animated space backgroundTech.jsx- Technologies and skills sectionUI.jsx- User interface elements/canvas- 3D models and scene components
/assets- Static assets/constants- Configuration and constants/hoc- Higher-order components/hooks- Custom React hooks/utils- Utility functionscleanupManager.js- Resource cleanup utilitiesmemoryManager.js- Memory usage optimizationmemoryOptimizer.js- Advanced memory optimization toolsmotion.js- Animation utilitiestextureManager.js- Texture loading and optimization
/public- Static files- Images and other assets
The project uses several build optimizations to ensure the best performance:
- Code Splitting - Vendor dependencies are split into separate chunks
- Terser Minification - Advanced minification with console removal
- Asset Optimization - Small assets are inlined to reduce HTTP requests
- ES2015 Target - Modern JavaScript target for better performance
- HMR Overlay Disabled - Improved development performance
Current Version: 1.0.0 (May 2025)
- Added memory optimization system to reduce RAM usage
- Implemented texture management for better performance
- Enhanced mobile responsiveness for all components
- Optimized 3D models for faster loading and rendering
- Added adaptive quality settings based on device capabilities
- Improved font styling and consistency across sections
This project is private and not intended for redistribution.