Build and Deploy an Amazing 3D Web Developer Portfolio in React JS | Beginner Three.js Tutorial
Вставка
- Опубліковано 2 бер 2023
- The most impressive websites in the world use 3D graphics and animations to bring their content to life. Learn how to build your own ThreeJS 3D Developer Portfolio today!
What to do after mastering Three JS? Master the most powerful web dev framework today - Next 14! www.jsmastery.pro/ultimate-ne...
⭐Hostinger - hostinger.com/mastery10
Use the code JAVASCRIPTMASTERY to save up to 91% on all yearly hosting plans.
📚 FREE Ultimate ThreeJS Cheatsheet: resource.jsmastery.pro/threej...
📚 Materials/References:
GitHub Code (give it a star ⭐): github.com/adrianhajdin/proje...
GitHub Gist Code Snippets: gist.github.com/adrianhajdin/...
Assets, Components, Public folders: drive.google.com/drive/folder...
Bruno Simon Portfolio - bruno-simon.com/
Junni - next.junni.co.jp/
In this course, you'll learn the following:
- ThreeJS - a powerful 3D graphics library for rendering and animating the 3D model
- React Three Fiber - a popular library for creating 3D graphics with ThreeJS in React
- TailwindCSS - a popular utility-first CSS styling framework
- Framer Motion - the most popular library used to bring your React website to life with animations
You'll also learn how to:
- Load, create and customize stunning 3D models and geometries with various lights, as well as understand the 3D world with a camera and positioning of an object in space.
- Make your code reusable and scalable using Higher Order Components (HOCs) and other industry-standard best practices
- Implement sending emails through a form on the website
- Ensure responsiveness across all devices and improve your site's performance using Suspense and Preload.
💻 Join JSM on Discord - / discord
🐦 Follow JSM on Twitter - / jsmasterypro
🖼️ Follow JSM on Instagram - / javascriptmastery
💼 Business Inquiries: contact@jsmastery.pro
👇 Time Stamps:
00:17:55 Layout
00:21:07 Navigation bar
00:40:57 Hero Section
01:07:41 About Section
01:17:09 Higher Order Component
01:23:28 Experience Section
01:44:33 Projects Section
02:01:01 Testimonials
02:13:15 Contact
02:32:09 3D Stars
02:49:09 Deployment
Want to land your dream programming job in 3 - 6 months?
⭐ JSM Masterclass Experience - jsmastery.pro/masterclass
Become a Software Engineer. Guaranteed.
cant't able to deploy this on vercel any solutions
can you please make use of Webxr with threeJS to simulate AR products in a e-commerce site this would be a crazy project
Hie i am having a problem deploying site, when i run ...》》》 npm run build,
i get (!) Some chunks are lager than 500 kbs after minification
The folder it shows is the dist/assets/three-891170d2.js 624.09 kB | gzip: 161.01 kB
Is they a way i can deploy??
Thanks
I must be fullstack Developer, I am ready to sacrifice everything even though I come from very poor background, I must achieve my dream
from where did you get those png for about section....?
Now I know how ill spend my weekend
Enjoy! 😊
I'm already getting started 💯
Definitely staying indoors this weekend
@@denniswambua4471 no touching grass this weekend? :D
Same also
👇 Time Stamps:
00:17:55 Layout
00:21:07 Navigation bar
00:40:57 Hero Section
01:07:41 About Section
01:17:09 Higher Order Component
01:23:28 Experience Section
01:44:33 Projects Section
02:01:01 Testimonials
02:13:15 Contact
02:32:09 3D Stars
02:49:09 Deployment
Thanks for the Awesome Video!
Thanks man
Thankyou❤
01:34:25 is Tech section
02:24:05 is earth model section
Bro did you faced any difficulty following this project?
This is the first time you're making a not so beginner-friendly app, but it's still superb. Thank you so much always coming through with the best tutorials.
This is fantastic! Thanks, Adrian, for the time and effort you put into the production of such first-class content.
I had just been thinking about learning 3D web development for the front end and you already have a free course on it! I am blown away by your consistency! Thank you so much, Adrian, thank you!
Hey everyone, just to leave a heads up that we can use react-parallax-tilt instead of react-tilt so that we don't have to face library peer dependency issues while deploying the project.
Edit:
At 12:00, use react-parallax-tilt instead of react-tilt and remove --legacy-peer-deps from the command.
Also wherever you are using: import Tilt from "react-tilt", replace it with your new library like this: import Tilt from "react-parallax-tilt".
And some of you might be facing an error: Could not resolve three (something like this), the fix is to add "three" along with other libraries while npm installation.
Dude how to contact you. I have some doubts related to the project. Do reach out please
@@dakshkumar992 I didn't understand which Logo are you talking about. Is it the meta tag of the site or the Navbar one?
@@deepaktripathi3777 I don't why but i can't add my mail here. So just view my yt profile and there is some contact info about me on the About page. Contact me there.
How do you resolve this the peer dependency issues if you've already used react-tilt.
@@EmmanuelArowoselu Just simply uninstall the library by running the command "npm uninstall react-tilt --legacy-peer-deps" and then installing react-parallax-tilt by the command "npm install react-parallax-tilt".
i can't stress this enough, your teaching, rhythm and editing is out of this world
For anywone who can't get the balls to float in the Experience section at 01:42:22, this is what worked for me.
In the Ball.jsx file in the BallCanvas component delete the `frameloop="demand"` property. Should work now 😁
I believe setting the property to 'always' also works -> frameloop='always'
Anyway thank you! your solution led me to fix the ball rotation
Thank you very much buddy.
You're the best!!
Thanks you so much. Saved my life!!!
Thank you very much. You are the best. It looks alive now.
I'm finishing my Computer Science Degree, and I'm doing a portfolio with some projects and this content is a HUGE HELP, thank you so much love all your videos!
I've been learning Reactjs and I just make use of framer motions but I've been interested in Threejs, I'm happy you make this course 😍
Enjoy! 😊
This was so simple to follow and also extremely informative on how I can adapt and build other projects with similar features. Thank you 😊
"if we save that.... everything breaks" was my favorite part of the tutorial. thank you for posting this, it truly was very informative and extremely useful. hoping good things come your way.
Adrian uploads nothing short of high end and over the top quality content. Thank you very much bro. I learn a whole lot from you.
Glad you like it
👇 Time Stamps Below! :
00:17:55 Layout
00:21:07 Navigation bar
00:40:57 Hero Section
01:07:41 About Section
01:17:09 Higher Order Component
01:23:28 Experience Section
01:34:23 Tech Section
01:44:33 Projects Section
02:01:01 Testimonials
02:13:15 Contact
02:32:09 3D Stars
02:49:09 Deployment
Thanks for the Amazing Video Adrian! I am currently going along with it and then I'll be making my changes to it.
This tutorial was great and I hope to see more 3JS in the future! One thing I do wish is that you could show us the creation of assets that you use in these projects. It's one thing to take preconceived assets and put them together, but a whole other thing to create assets from scratch.
watch a blender tutorial
@@gabrieldiaz6509 is blender gltf? sorry Im new to 3D scenes and looking to create my school logo in 3D.
@@rybaxter6454 yes, blender guru is great to start in this.
Also, at 1:08:22 the second line in About has to be changed to import { Tilt } from 'react-tilt' or else it will throw an error (at least it did for me)
tnx bro
yes yes yes thanks a lot brother ... you save me my entire evening... this comment deserve more like
Thanks bro.
thank you really my head almost exploded
Thanks a lot. I was on the verge of breaking down
Use import { Tilt } from 'react-tilt' ; instead of import Tilt from 'react-tilt'; to avoid white screen problem thank you ❤
Think you Dude
hi i`m having a pproblem in hero ssection light and postion and rotation not reflected
@@michaelpacto364 increase the hemisphere intensity To 8 or more it worked for me
And spotlight intensity to 1
Play with them until you get your correct lighting
Same here @@michaelpacto364
i love u
i love how you said words carefully and clearly, english is my scnd language and this really helps. thankyou!
For many days I was looking for threejs tutorial. And here, you brought this with a stunning project. Hats off to you.
Thank you so much 😀
For those who are just starting or are in the navBar section: At the 39:31 mark the code looks one way, but at the 39:32 the mark, the code goes back to where it was at the 39:00 mark .. still LOVE the video! It’s just the things I changed 😂 until I figured it out was going on drove me bananas
Seriously, your vids make me learn JS more than anyone. I wish you had twice as many subscribers as you already have.
such an amazing video. The world needs more of these man that are trying to help people get better
You've literally made a video of all the things I want to learn now. You're incredible
Always love your videos. They are so incredibly helpful and provide an excellent framework to make some incredible projects. My wife loves her blog site that I made from another one of your videos and now I have an excellent portfolio site. Thank you for everything!
Followed and loved it from start to finish. It's a lot to take in honestly but I'm gonna start one from scratch and add a twist to the design and 3D models. Thanks so much Adrian! (Would love to see more of three.js and motion stuff)
Hey where to get those 3d models?
@@sujayshanbhag2055sketchfab
I just completed it and I'm in love with it.
I am overwhelmed by your tutorial, and I extend my heartfelt gratitude for the effort and time you put in and also for making this available free of cost. Because of people like you, we have hope in our journey. I thank you from the core of my heart.
Hey there I did not get error in the navbar but the prelisted items in order like at timeframe 26:00 we can see that the sections are hero, about, experience so on but in the timeframe 30:35 how they dissappeared? please let me know the solution.
I will make it but my 3D models can not load in hero section
heyy, how much time did it take you to complete this project?
Hi there, so I open up the components like the Computers in my hero section and it was empty did u find a similar problem with your assets?
@@authenticself3800 they didn't disappeared, I believe it just was not in frame
Questi video sono una miniera d'oro, meglio sfruttarli ora prima che sia troppo tardi! Questo è il futuro e la richiesta di lavoro è altissima! Complimenti dall'Italia
What a wonderful instructional video. Thank you for taking the time to offer this tutorial to the public. I learned an incredible amount and Love the way this portfolio looks!
I just built a portfolio website 2 weeks ago, but this one looks insane. Looks like I’m building another!!
Glad you like it! 😊
fr, doing the same
@@arielebabini9012 same with me happening
I have been watching and learning from your videos since long. Actually from more than 1 and half years. But never thanked you for making these videos. Now it's my first comment on your video. Thank you really thank you sir !! You are really an excellent teacher and guide. Hope you continue to make these amazing videos and never get tired of giving knowledge to us.
Thank you so much!!!
Thank you for the wonderful tutorial! You took me on a fantastic adventure and I had so much fun learning from you!
Couldn't be better... I literally created a website in 1 day and learned so much
You and Llama Dev are so closely aligned with your content - it's so helpful for me to watch both your guys videos as you both put so much effort and they're the most relevant and timely tutorials I can find. Thank you very much as always!
Thank you so much! And yeah, Llama is great! 🦙🔥
yeah they are the best in the youtube
@@javascriptmastery i have a error when i do = npm install --legacy-peer-deps @react-three/fiber @react-three/drei maath react-tilt react-vertical-timeline-component @emailjs/browser framer-motion react-router-dom
plz help me
@@zerominute1209 whats the error
Always expect mind-blowing videos from Adrian. He has always been fresh inside the Bootcamp. I am so proud to have joined the JSMastery bootcamp.
Thank you so much Rodgers!
How much is it to join the bootcamp,and what are the prerequisites, I do not want to waste my time and their time too since I am still beginner...Thanks
No doubt, one of the best development channels ever! Congrats Adrian!
Thank you! 😊
Finally! Love threejs, and I love React w/ Framer Motion, but have always struggled to really get a head around getting them to play with each other
56:11 penumbra is the second shadow casted by the initial shadow(umbra), it covers a wider area and surrounds the initial shadow.
thank you for the explanation!
hey Adrian,
The way you explained every concept in detail, made the entire learning experience seamless and enjoyable. once again thank you for sharing your knowledge and expertise with the world. You have made a significant contribution to the web developer's community, and your efforts will continue to benefit aspiring developers like me for years to come.
love from India 🇮🇳 ❤
Thank you! Love to India!
GLTF not working in mobile devide , how to fix it ?
Yes finally! I have been trying to learn this new tech through other tutorials for weeks now but no one can teach the way you teach!!! 🎉 thank you for uploading this video!
Enjoy! 😊
have you implemented this , is this working ? please reply because , i am getting error
successfully completed the project
thank you so much!
Amazing tutorial. Thanks a lot Adrian! 🤩
This channel is a blessing for both beginners and intermediates.
Thank you! 😊
I was supposed to watch other courses today but this just went top of my list. 3D is always interesting
Enjoy! :)
Awesome - love that the pc you downloaded was working on your tutorial (just at the bit I, ahem, first got stuck on too) so you can prolly add quntum computing/ time travel to the skillset!
I’d love to see you tackle 3JS forward where the react site is 90% done and your tackling more advanced 3D topics like; camera moment or physics. I like to see how you problem solve. I’ve sort of hit a wall and know the basics. More complicated builds I get lost.
Thank you so much for doing the tutorial for three js. And hope for more of such three js tutorial in the future. ❤️
More to come!
If you are getting white screen during about section (01:07:41 About Section)
How to fix:
import {Tilt} from 'react-tilt';
Not:
import Tilt from 'react-tilt';
thanks
i am getting THREE.WebGLRenderer: Context Lost.and nothingshowing how to fix this?
You're incredible dude. Keep up the amazing work!
What a good place to find 3d models like these. Great tutorial!
Boom, I'll have this done by the end of the day! Thanks! Your content is always topnotch.
Thank you so much, enjoy!
Adrian, i followed all the steps and i have myself a nice looking portfolio and all thanks to you for the work you have put in this project.
Getting Could not resolve "three" error what to do?
Awesome tutorial! I didn't expect it to be that easy, Tailwind is GOAT
What an incredible tutorial. Very thorough and legit. Really appreciate the effort put into this
For the packages used @12:30 use this line in your terminal "npm install @react-three/fiber @react-three/drei maath react-parallax-tilt react-vertical-timeline-component @emailjs/browser framer-motion react-router-dom" - this worked for me as of 21/05/2023
Thanks for posting this!! Saved me big time. I was trying to fix it for hours. Don't forget to change the Tilt import as well to "import Tilt from "react-parallax-tilt" on any components that use it.
Without GitHub account will it work
thank you. At the end of the app everything is working but i have this error: VM11:1 THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values. Do you have the same?
never disappoints, always top-notch projects.
Thank you.
Appreciate it!
Sir I'm getting a error while building this project in scene.gltf during create a hero. Jsx code while not working properly I'm stuck in mid what should I do and ther error in public folder that h provide
Thank you is not enough, I'm grateful beyond words.
Thanks Adrian for this awesome work, you literally blessed my day with this video!
Hello everyone. You might encounter an error at around 54:17 which says "Uncaught Div is not part of the THREE namespace...".
You might be tempted to wrap the Suspense around the entire Canvas instead of just the OrbitControls. That works until you have to set up the loader. Then you have to move the Suspense back. I wonder why this happens.
So if you get the error, just continue until you have set up the CanvasLoader.
I am also getting the same error . have you got solution?
@benwaters2353
@benwaters2353
2 months ago
If anyone else is stuck at 53:59, first try removing fallback from the suspense tag also try removing some chrome extensions. For me a couple chrome extensions I had were blocking it from loading. he answerd it remove fallback
@@laibaiqbal7801 This happens because the Canvas component (ComputerCanvas, EarthCanvas, etc) hasn't yet been completed. Notice it only has a div in it. That's what's causing the error. After the 3D gltf file has been rendered in it, the error should go away. The Canvas component does not accept html elements. Only THREE Components
In Loader.jsx I deleted Loader part and added a console.log it solved that problem. Also I downgraded my three version to 0.149.0 for fixing the lights.
@@ArdaAydnVideolar Oh I see
Thank you Adrian! Super useful video to get me out of my "AngularJS" denial :-) - Loved the video and used it to kick start my own portfolio and dip my toes into the react world!
Amazing. Enjoy!
dude if you doubled this amount, then you can buy a course for me at this rate . and in 3 months i would've given you 10x of this price by getting a job :/
I always get excited with a tutorial of this man
This channel is AMAZING!!! It offers some of the best tutorials that are easy to understand. These tutorials have enlightened my mind and unleashed numerous possibilities for my personal development. Thank you for sharing these incredible videos.
just completed your metaversus tutorial project...loved it....I am currently doing project based learning....I have learned so many things by just following your project tutorial.....I hope to become a good react developer in coming days❤❤❤❤
Keep it up
Yes!!!!
Thanks, dude.
Abraço do Brasil!
God bless you!
Greetings to Brasil!😊
This is the most amazing thing I have ever seen in my developer life...
If anyone is having trouble with a deprecation warning on "react-tilt", I suggest using "react-parallax-tilt" instead and defining the variables something like this:
{/* ... rest of the component */}
Thanks ❤❤❤
DId you solve when you try to view it in mobile phone but works section doesn't show up?
@@najrulsumon3062 I hace the same issue, can you fixed it?
@@arielelias2413 Yes. I used AOS for that part only.
Now this error shows up
Uncaught SyntaxError: The requested module '/node_modules/.vite/deps/react-parallax-tilt.js?v=fecbe886' does not provide an export named 'ParallaxTilt'
I'm jst speechless at d premium-quality courses u give to us at free of charge. I'm really grateful nd we will love to see more
Stay blessed boss
You too boss!
If someone has error like this "Uncaught Error: R3F: Div is not part of the THREE namespace! Did you forget to extend?" you shoud just remove div in Loader Component and that's all
👇 Time Stamps:
00:17:55 Layout
00:21:07 Navigation bar
00:40:57 Hero Section
01:07:41 About Section
01:17:09 Higher Order Component
01:23:28 Experience Section
01:44:33 Projects Section
02:01:01 Testimonials
02:13:15 Contact
02:32:09 3D Stars
02:49:09 Deployment
Hi this is Stephen from Nigeria I really love the way you code, God bless you for the value you give
If anyone else is stuck at 53:59, first try removing fallback from the suspense tag also try removing some chrome extensions. For me a couple chrome extensions I had were blocking it from loading.
Ayo thanks man
I had the same issue, i remove the fallback property and it works
My man! I was trying forever to fix this. I removed the fallback and it fixed it. Thanks!
@@simp4_jesus953 What did you do, just keep it at ?
Thanks man, it really helped!
If anyone got stuck in 53:00 to 54:00
If the issue is:
X [ERROR] No matching export in "node_modules/three/build/three.module.js" for import "LinearEncoding"
node_modules/@react-three/drei/core/SpotLight.js:3:76:
3 │ ...etry, Matrix4, WebGLRenderTarget, RGBAFormat, LinearEncoding, ShaderMaterial, DoubleSide, RepeatWrapping }...
╵ ~~~~~~~~~~~~~~
How to fix:
The high chance is you are using outdated versions, to check that go to your project directory and type `npm outdated` after that you'll get a list of outdated
according to that update the new version, for a example:
npm update three
npm update framer-motion
npm update @types/react
npm update @react-three/drei
I hope you a wonderful life man
Thank you so much for this amazing tutorial. Loved it and learned a lot while building it.
Learning about the HOC with SectionWrapper was amazing.
great job! Thank you. I'm expecting from you video about docker and ci/cd in context of mern projects. I hope you can explain it easy
Cool idea!
at 1:44:00 I realised, that balls don't float as I expect (they did strange rotation only when I did microscroll. It looks like veery slow animation and of course it doesn't looks good)
I delete "frameloop="demand"" and add "requestAnimationFrame" parameter at BallCanvas component --> Canvas tag, and now it looks much more better
also it could be frameloop='always' ,but I hav ethis error with the app running: VM11:1 THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.Do you hav ethe same at the end?
Thanks man. Float now works on mine too.
best web tutorial i have ever seen. Thank you
Hi Adrian honestly I'm speechless, keep up the good work
what an amazing website! You're better than universities since I am learning way more for free. Thanks a lot! By the way, could you build a react app with a paid subscription or paid features? That would be really awesome!
Great suggestion!
@@javascriptmastery Yeah that would be better
These projects are always cool, and I could follow them and just repeat it, but I'm hardly learning and 90% of it seem to require you to know everything that exists already. The fact you guys can come up with this stuff and show others how to make it is really quite something. But if I made this and displayed it as something I had created, it'd be a complete lie.
Start small on the projects if you need to. It gets easier. There’s a lot to learn here but yeah, it’s definitely more copy-pasting if you don’t know what’s really going on haha
@@sneaky3014dude this is like extraterrestial language for me, i'm really sad that i can't build what i would love to do because i'm only a ui/ux designer and this would take months Even years to learn and i do not have the time for it :(
you’re the best. i can’t thank you enough
Looks stunning!
Hello, you did great. Can you tell me the VS code extensions you are using?
Man you need to make another 3D website. The video has crossed 20k views. I am watching it on 31st May, 2 months after, and it already has 34k likes. Btw, this is a great video!!
Love your work brother. Thanks, I'm using this on a real non-portfolio project. ❤
Imagine the Metaverse or Omniverse in VR where “web sites” extend their purpose into fully 3D constructions, or worlds where you can interact with various NPCs, each trained on the specifics of the site. This video is inspiring and has my mind running wild!! Haha.
This is my sign to take threeJS seriously. Love it🥰🥰🥰
Yess!🔥
If u increase the intensity of the spotlight....you will be able to see that the code on the computer model is the code you are writing😗
Adrian thank you, for all these amazing videos!
nice weekend build. just completed it. thank you very much
just a suggestion, it would be nicer if the small balls, after you rotate them, would automatically turn back to their front/logo instead of staying on the empty side.
so did you implement this?
if yes, share your code please
😂😂😂😂
Good work man! This is awesome! I am actually building this out myself and love it. I was wondering If I could get a few directional pointers from ya. I am working on making it so after the user stops rotating the balls that the slowly rotate back to their starting rotation position. I am not sure where to start on researching how to do this. Any sudgestions would be amazing. Thanks.
can you resolved it? i want to do the same thing
This is the first time I am commenting on any youtube video
I just wanted to say thanks for such an amazing tutorial
- It was so easy going
- your way of teaching is amazing
I just loved developing this portfolio!!
Looking forward to develop many more projects like this
Hello can you please tell is it okay for a beginner to do this? I covered HTML CSS and React js now looking to make projects. Is this project okay or tough for a beginner? Also can you suggest what projects to make if this will be tough i cant seem to decide what to do. I want to make atleast 3-4 good projects as my background is not of IT as well. Thankyou
@@kartavyasharma6272 I don’t feel this programmer is for a beginner and I’m not a beginner .. he makes great content .. start from the very, very simplest tutorials so you can gain confidence. Programming is not easy #goodLuck2u
Once again, another professional application!
Thanks JM for great free resource.
54:15 I got stuck with the following error:
"Warning: The tag is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter."
not only but also with , , , ...
Resolve: try to change last line of Computers.jsx to "export default ComputersCanvas "
Hope this will help someone saving some time.
Thank you so much! god bless you
Thank you lol
Thank you so much
Did not work for me are there any other options?
@@morikami26 did u find anything , i'm stuck even now ?
Not sure if I'm the only one that missed it but around 52:00 the export at the bottom changes to ComputersCanvas
Thanks! At the 39:31 mark the code looks one way, but at the 39:32 the mark, the code goes back to where it was at the 39:00 mark .. still LOVE the video! It’s just the things I changed 😂 until I figured it out was going on were driving me bananas
lol that is crazy
Thank You for this amazing and comprehensive tutorial!
I want to thank you for your efforts in making such good content for free , keep it up , it helps a lot . Thanks.
DId the tutorial as of 3/12/2023 and ran into an issue and it looks like others have had the same problem. If when setting up all of the files and doing the imports you get the error, "You can mark the path "three" as external to exclude it from the bundle, which will remove this
error." all you have to do is run "npm install --legacy-peer-deps three use --force" in terminal.
thank you, that cleared all the hundreds of THREE errors that popped up in terminal
Really thank you
Man I have lost words. "That's all I can say at this moment.
I have to upgrade my website immediately after this video
Yess, do it! 😊
@@javascriptmastery Thanks Bro.