Welcome to my journey of mastering Three.js! This repository documents my progress from the fundamentals to advanced 3D web development techniques. Each step includes hands-on projects, experiments, and code examples. Whether you're here to learn, collaborate, or provide feedback, feel free to explore and contribute!
- Scenes, Cameras, and Renderers: Setting up the core components of a 3D world.
- Geometries and Materials: Creating and styling 3D objects.
- Transformations and Animations: Moving, scaling, and rotating objects.
- Textures and UV Mapping: Adding realism with images and patterns.
- Lighting and Shadows: Enhancing scenes with lights and shadows.
- Orbit Controls: Making scenes interactive with camera controls.
- Shaders and Custom Materials: Writing GLSL for custom visual effects.
- Physics and Simulations: Adding realism with physics engines.
- WebXR: Building immersive VR/AR experiences.
Here are some of the hands-on projects I've worked on, complete with live demos:
- Description: A simple introduction to Three.js, showcasing a rotating 3D cube.
- Live Demo: View Demo
- Code: Source Code
- Description: Interactive PBR material inspector with adjustable textures (grass, boulder, spaceship) and real-time parameter controls.
- Live Demo: View Demo
- Code: Source Code
- Description: Simulating planetary orbits with realistic textures and animations.
- Live Demo: View Demo
- Code: Source Code
To run any of the projects locally:
- Clone this repository:
git clone https://github.com/abdulrahmans0414/threejs-mastring.git
- Navigate to the project folder:
cd threejs-mastring/01_basic
- Install dependencies:
npm install
- Start the development server:
npm run dev
I welcome contributions, feedback, and collaboration! Hereβs how you can help:
-
Report Issues: Found a bug or have a suggestion? Open an issue.
-
Submit Pull Requests: Have a fix or improvement? Submit a PR.
-
Share Feedback: Let me know what you think!
Here are some of the resources that have been invaluable in my Three.js learning journey:
- Three.js Documentation: The official documentation is a must-read for understanding core concepts, APIs, and examples.
- Three.js Examples: A collection of official examples showcasing advanced techniques and features.
- Three.js Journey: A comprehensive paid course by Bruno Simon, covering everything from basics to advanced topics like shaders and WebXR.
- GLSL Shaders Tutorial: A beginner-friendly guide to writing GLSL shaders, essential for custom materials and effects in Three.js.
- Three.js Forum: A great place to ask questions, share projects, and learn from the community.
- Three.js GitHub Repository: Explore the source code, report issues, or contribute to the library.
- MDN WebGL Guide: Learn the basics of WebGL, the foundation of Three.js.
- YouTube Channels: Channels like Bruno Simon and SimonDev offer free tutorials and project walkthroughs.
These resources have been instrumental in my learning process, and I highly recommend them to anyone starting or advancing their Three.js journey!
If you find this repository helpful, give it a βοΈ star βοΈ to show your support!
Happy coding! Let's build amazing 3D experiences together. π