π Live Demo: https://3d-viewer-eight.vercel.app
π Repository: https://github.com/Omkarkumbhar47/3D-Viewer
π¨βπ» Author: Omkar Kumbhar
A powerful browser-based 3D Model Viewer built using React, Three.js, and React Three Fiber that allows users to load, explore, and interact with 3D models in real time.
This application focuses on performance, usability, and intuitive model interaction, making it suitable for engineering previews, product visualization, and design inspection workflows.
Traditional 3D model inspection tools often require heavy desktop software and complex installations. This project solves that by providing a lightweight, responsive, and interactive web-based 3D viewer that runs directly in the browser.
- Drag & drop 3D model upload
- Real-time rendering using WebGL
- Click-to-select model parts
- Highlight selected meshes with visual feedback
- Seamless canvas β sidebar synchronization
- Traverse model hierarchy
- Toggle mesh visibility
- Select and highlight individual parts
- Bi-directional sync between UI & canvas
- Adjustable lighting for better visualization
- Background color customization
- Environment presets
Capture high-quality screenshots of the 3D canvas:
- Small β 1280Γ720
- Medium β 1920Γ1080
- Large β 2560Γ1440
- Custom resolution support
- Optional transparent background
- Dynamic header & footer sizing
- Fully responsive canvas
- Adaptive sidebar behavior
- Clean and modern UI
Frontend
- React.js
- React Three Fiber
- Three.js
- Drei
- Bootstrap
Rendering
- WebGL-based real-time 3D rendering
UI
- Custom typography (ForumRegular)
- Responsive component architecture
3D-Viewer/
β
βββ public/ # Static assets
β
βββ src/
β βββ components/ # Reusable UI + 3D viewer components
β β βββ Header/
β β βββ Footer/
β β βββ Sidebar/
β β βββ ModelViewer/
β β
β βββ utils/ # Helper functions (lighting, canvas logic, etc.)
β β βββ lightingHelper.js
β β
β βββ fonts/ # Custom fonts
β β βββ Forum-Regular.ttf
β β
β βββ assets/ # Images & static resources
β β βββ 3dLogo.jpg
β β
β βββ App.js # Root component
β βββ App.css # Global styles
β βββ index.js # Entry point
β βββ index.css # Base styling
β βββ reportWebVitals.js # Performance monitoring
β
βββ .gitignore
βββ package.json
βββ package-lock.json
βββ README.md
git clone https://github.com/Omkarkumbhar47/3D-Viewer.git
cd 3D-Viewernpm installnpm start- Upload a 3D model via drag & drop or file input
- Explore model parts from the sidebar
- Toggle visibility of meshes
- Adjust lighting & environment
- Capture high-resolution snapshots
- Implemented real-time 3D rendering in React
- Managed complex state syncing between UI and WebGL canvas
- Optimized performance for large models
- Built scalable component architecture
- Improved UX for technical visualization tools
- Animation controls for models
- Support for additional file formats
- Camera preset saving
- Dark/light theme toggle
- Export model metadata
Contributions are welcome!
If you're interested in:
- WebGL & 3D rendering
- UI/UX improvements
- Performance optimization
Feel free to fork the repo and submit a PR π
- Portfolio: https://v2-portfolio-navy.vercel.app/
- LinkedIn: https://linkedin.com/in/omkar-kumbhar-291168259/
- Email: kumbharomkar747@gmail.com
This project is licensed under the MIT License.

