Build a Mindblowing 3D Portfolio Website // Three.js Beginner’s Tutorial

Поділитися
Вставка
  • Опубліковано 24 лис 2024

КОМЕНТАРІ • 1,4 тис.

  • @stolensentience
    @stolensentience 3 роки тому +4586

    Wow this adds a whole new dimension to my programming

  • @bennailyes9303
    @bennailyes9303 3 роки тому +470

    You’re the only guy that I slow the speed down instead of speeding it. in all my career as a developer, in my opinion, you're more productive than all I know. thank you a lot

    • @Titton
      @Titton 3 роки тому +3

      +111

    • @emonymph6911
      @emonymph6911 3 роки тому +14

      He is just a bloody showoff he doesn't teach he just shows off his own skillset, biggest tool in the industry.

    • @hothub8903
      @hothub8903 3 роки тому +4

      @@emonymph6911 ikr

    • @nullbeyondo
      @nullbeyondo 2 роки тому +1

      Ah yes.. slow down.. sure... *sweats in 2x speed*

    • @ontheruntonowhere
      @ontheruntonowhere 2 роки тому

      @@emonymph6911 That's what a teacher does, dufus 🤪🤪

  • @tobiasstiller8221
    @tobiasstiller8221 3 роки тому +1265

    I rarely comment on any videos on youtube, but Jeff, the comprehensive yet compressed way of teaching things, like you do here, is more than awesome. it's so amazing. i am speechless. i really want to say thank you for your effort to contribute to the dev community in that way.

  • @joshlavallee5255
    @joshlavallee5255 3 роки тому +481

    Just a quick two suggestions:
    1) The texture loader can be instantiated once and used over and over no need to create a new one and load each time.
    2) A way to bump performance for the stars, since the geometry and material don't change for each of the 200 stars, only the position, take them out of the function so your page isn't instantiating a new geometry/material each call, just use the already created objects 👍

    • @sam_bit7148
      @sam_bit7148 3 роки тому +6

      Can you give more details about the first suggestion how to do it

    • @mikediaz7628
      @mikediaz7628 2 роки тому +1

      Proxy geometry basically?

    • @DigitEgal
      @DigitEgal 2 роки тому +2

      About 2) im thinking if he may go further to create a 4dimentional Website where you have a slider in your 3D World to change the perspective & make more Informations visible (similar to 4D Toys but with changing content instead of changing geometrys) that would really put a new dimension into coding 😜

    •  2 роки тому

      Yeah, f.e. when using vueJS.
      Instantiate the scene, renderer, camera and other utilities as globals so that you save on memory. Then bind them in the correct vue component and this way you can also use sub-components to do stuff with the same scene.
      Would be better if there was a vue-plugin, but I’m not sure there is one yet.

    • @programmingpython584
      @programmingpython584 Рік тому

      random generation of stars 10:00 doesnot work properly on my side. Though it generates the stars but it messes with the torus geometry. Torus is taking the same color as the star and is not rotating, + also gets random position due to stars.

  • @jamesmoffitt4503
    @jamesmoffitt4503 Рік тому +8

    I tried three 50 minute videos and they couldn’t even get the damn program installed on my computer. In 15 minutes you have me making 3D objects that I can play with. You’re the man.

  • @Halfspacer
    @Halfspacer Рік тому +27

    I was happily typing away at work when Github Copilot suddenly suggested I add code to create a button. The code suggestion also happened to include an onClick URL to a UA-cam video. And that's how I ended up here.

  • @katyj98
    @katyj98 3 роки тому +2509

    *"It's guaranteed to get you a job, or your money back"*
    ... I paid nothing

    • @Fireship
      @Fireship  3 роки тому +1295

      That's why I can offer this amazing deal

    • @TerriTerriHotSauce
      @TerriTerriHotSauce 3 роки тому +141

      I paid attention.

    • @Kevin-jc1fx
      @Kevin-jc1fx 3 роки тому +26

      That's exactly what you'll get back. Nothing😂

    • @akhillshetty2140
      @akhillshetty2140 3 роки тому +9

      ​@@Fireship Just take my money man

    • @juancamiloq1
      @juancamiloq1 3 роки тому +8

      We all love you so much

  • @xinaesthetic
    @xinaesthetic 3 роки тому +52

    Pro tip: if you change addStar() so that the geometry and material are initialised outside the loop and shared by all of them, it’ll be more efficient. Even more efficient, you can merge a bunch of geometries so you just have one mesh for all of the stars, and you save a bunch of draw calls and matrix math on the cpu.

  • @jonlothar6126
    @jonlothar6126 3 роки тому +329

    Everyone's commenting at light speed, since we've been sitting here waiting for this for days!

    • @rma9490
      @rma9490 3 роки тому

      So true man!

    • @Fireship
      @Fireship  3 роки тому +48

      I've been meeting with pro members all month, content frequency will increase in June

    • @مقاطعمترجمة-ش8ث
      @مقاطعمترجمة-ش8ث 3 роки тому

      I come here by accident ,

    • @jonlothar6126
      @jonlothar6126 3 роки тому +5

      @@Fireship Sounds awesome! I didn't mean it as an insult at all - your content is definitely worth the wait!

  • @IcyPickled
    @IcyPickled Місяць тому +2

    I was getting started on a new project, and i almost decided to code it all with webgl from scratch until this video popped up, i didn't even know three.js existed, thank you for saving me a lot of time 🙏

  • @drizzzzz
    @drizzzzz 3 роки тому +132

    Best coding channel of all time

  • @JandyCZ
    @JandyCZ 3 роки тому +5

    I work as a developer/sw engineer. Your cahnnel alone made me jump 5 steps ahead in no time. Thanks to you I am not only interested in coding more, I am eager to discover new technologies and possibilities in my work and hobby.

  • @jessemoeller8557
    @jessemoeller8557 3 роки тому +79

    This simple tutorial touches on so many different concepts in a non-trivial way. Well done! Excellent content.

  • @Rayzax94
    @Rayzax94 2 роки тому +2

    the fact that as someone who is fairly new to programming I understood this whole thing, speaks a lot to you explaining abilities!!
    Awseome content! I"ll try it out this weekend, thank you!

  • @raphaelbaier6984
    @raphaelbaier6984 3 роки тому +9

    The surface off the moon is in fact still smooth (the vertices have not changed), the normal map just modifies how the Moon is lit by the shader, you would need some sort of vertex displacement, for actual bumps

  • @ginger-viking
    @ginger-viking 2 роки тому +1

    This entire video was incredible. Using grid to make 12 equal columns blew my mind.

  • @franthor
    @franthor 3 роки тому +35

    Man it is so good that you offer the github repo for your videos. Thanks! That way I don't have to write every step and it is possible to grab the concepts much faster, just doing some changes to the code, testing stuff. Also the fast pace of the video is very good. I usually watch tutorials at 2x, not yours. Your video I may actually play more than once to get all the details. Good job!

    • @SilverishKitten
      @SilverishKitten Рік тому +4

      That's definitely not how you learn to code efficiently lol

    • @IshmamAhmed
      @IshmamAhmed Рік тому

      @@SilverishKitten I don’t think that’s their point. Obviously you should learn concepts before copy pasting from GitHub repos but we don’t know if he/she did that

  • @edhead76
    @edhead76 10 місяців тому

    i was getting bored with the staticness of these two dimensional pages I was limited to. This blew my mind and I can't get over how simple it is to add some straightforward javascript to really bring the page to life. Thank you for putting this together!!

  • @andrewescu
    @andrewescu 3 роки тому +36

    It's hard to go back to other youtube coding tutorials after getting use to this quality of content, keep it up man!

    • @daniels8112
      @daniels8112 2 роки тому +1

      this is facts tho. sets my expectations far too high for any other content

  • @diddlybop
    @diddlybop 9 місяців тому +1

    This tutorial got me started with web animation, thanks for putting this out! Now I'm building with react and three-fiber, and it's all because I watched this video!

  • @talhaibnemahmud
    @talhaibnemahmud 3 роки тому +55

    Probably the best ThreeJS video on UA-cam.
    Hat's off ❤️

  • @rulesofsuccessfullife6098
    @rulesofsuccessfullife6098 Рік тому

    Trust me if my mom wasn't here I would have gave a standing ovation to your method of teaching, hats of to you jeff! thanks for making me your new subscriber I'm lucky one.

  • @vinodabcd
    @vinodabcd 3 роки тому +8

    God! Your videos are on another level.. I've been leeching your videos for a while now but I had to comment - I think this is the near-perfect way to explain "code"... I can see the real-world applications, get inspired from all the possibilities, pick up computer science concepts as well as jot down what coding keywords I need to deep dive into... I'm not kidding but you've literally inspired me to pickup front-end dev (I'm currently an utter noob)..

  • @Emileelime2
    @Emileelime2 2 роки тому +2

    I rarely go out anymore during the weekends. Not because of Covid but because of this channel.
    Love these videos! Keep up the good work!

  • @andrewwoan
    @andrewwoan 3 роки тому +197

    OMG YES! THIS IS LITERAL GOLD!

    • @alejosky
      @alejosky 3 роки тому +17

      You used the word "literal" figuratively... my brain-compiler just exploded.

  • @tomascalvo8
    @tomascalvo8 3 роки тому +1

    It's amazing how much content there is in a sixteen-minute video.

  • @linjianru
    @linjianru 3 роки тому +4

    one of the most awesome tutorial that I have ever seen. introducing concepts one by one and show the difference step by step. this is the correct way to illustrate something that seems complex to the beginner. this video taught me a lot not just the code. thansk!

  • @HP-ol2ux
    @HP-ol2ux 2 роки тому

    ah... this content is gold. Not a second is wasted, and yet, it does not feel too fast, amazing

  • @ozzy2361
    @ozzy2361 3 роки тому +4

    Wow thank you so much for this. I am about to finish my web dev course in college and this gave me such a wider view of whats possible in web development! Gives me something to do during summer!

    • @avatr7109
      @avatr7109 3 роки тому

      Cna this get us a job

  • @rendoesmath
    @rendoesmath 3 роки тому +1

    as a game dev(for almost 3 years)
    this was easy
    nice explanation btw

  • @mayanksingh8840
    @mayanksingh8840 3 роки тому +6

    You're just a great learner and a teacher!
    Hats off to you man, and not forgetting the developers behind three.js 👏

  • @everlastingmedia
    @everlastingmedia Рік тому +1

    Couple of things here for people who struggle, like me.
    1. Make sure you cd into your project's directory (you just created with your project's name) before you try to run commands like "npm run dev"
    2. Odds are you'll need to install Express if you haven't yet. Go ahead and "npm install express"

  • @simas5983
    @simas5983 3 роки тому +10

    I was literally researching how to make a 3D website an hour ago, then I go to my subscriptions and see this. WHAT

  • @ChimkenAndRice
    @ChimkenAndRice 3 роки тому +1

    I've been eyeing on threejs since the last few weeks for building my portfolio. The first 3 minutes of your video already gave me 2 ideas I can work on. Thanks a lot for this, It's golden!

  • @husler7424
    @husler7424 3 роки тому +4

    Waiting for full tutorial on Three.js with full demo!💥

  • @DodaGarcia
    @DodaGarcia 3 роки тому +2

    I didn’t think I could be a bigger fan of this channel, and then you bring up Blender 💘

  • @GuilleAcosta124
    @GuilleAcosta124 3 роки тому +5

    I saw this like a week ago and I said I need to follow along this tutorial. Everything worked flawlessly, thanks for introducing me to this world of 3D rendering stuff on browsers. Thanks!

  • @zex992001
    @zex992001 2 роки тому

    I wish I had your video 5 years ago when I started learning Threejs. I could have saved 2 weeks of my life not banging my head on the wall that how these things worked.

  • @williamduncan7401
    @williamduncan7401 3 роки тому +61

    The actual way to do this is record the 3D as a video and advance through the video with scroll. Why?
    - browser compatibility
    - no realtime rendering (compatibility with low spec devices)
    This is great if you want to code an online game, for which the user would understand a decent pc is required. But for a website meant to be opened by anyone... Imagine a recruiter opening your website on their 4GB ram i3 Windows 8 computer, they start lagging, they can't scroll because of lag, etc. Wouldn't be a pleasant experience.
    Hence you render the animation in advance, record it and put it in the background. Autoplay off, on scroll show next frame of the video.
    Note: this is not something that I invented, it's what popular websites (that require compatibility) use for fancier graphics. If all you wanna add to your website is something like a globe, it's probably alright, just beware that making a nice 3d scene might be too heavy for some of your visitors to handle.

    • @Achelon
      @Achelon 2 роки тому +3

      I wonder if this really is a problem nowadays. I've been doing some stuff with the google 3d-viewer component and have not really had problems with cheap phones etc.

    • @AlphaQup1597
      @AlphaQup1597 2 роки тому

      This is how i think too

  • @emerladmaster8454
    @emerladmaster8454 Рік тому

    I began rethinking my life decisions then had an existential crisis that this is more easier than I thought in three.js then I lost braincells because it didn't feel complex anyone who can relate?
    seriously you are if not the best one of the best programing youtubers

  • @boiimcfacto2364
    @boiimcfacto2364 3 роки тому +104

    This might be weird, but I love how you use emojis throughout the video! Most tutorials seem too formal and don't really spark interest in the subject but the bright colours, emojis and (especially) your narration make the video all the more fun and interesting! Been subscribed for long, can't wait to see you hit a million subs soon :)

    • @avatr7109
      @avatr7109 3 роки тому +3

      why would be that weird
      *STAND BY YOUR CHOICE*

    • @luimu
      @luimu 3 роки тому +2

      zoomer moment

    • @RealityRogue
      @RealityRogue 2 роки тому +10

      ​@@avatr7109 A lot of older programmers feel like it has to be completely formal or else its not worth their time.
      You can easily spot these individuals because they will say things like "zoomer moment"

  • @Tsunami14
    @Tsunami14 3 роки тому +1

    Gotta say, your ability to take complex topics and consistently break them down to their fundamental pieces, is uncanny.
    And we're getting this for free.

  • @MobiusCoin
    @MobiusCoin 3 роки тому +58

    Vite? At this point I'm going to have different tooling for every project I work on.

  • @brokensongrecord
    @brokensongrecord 3 роки тому +2

    After watching other videos and reading documentation I couldn't wrap my head around Three.js I wanted to ditch it but this video popped up. This was very comprehensive and most importantly very well structured.Thank you.

  • @saissevictor
    @saissevictor 3 роки тому +5

    Wow, amazing! I just finished the role tutorial, and it so satisfying to complete it as easy as you made look! Thank you so much, cheers from Brazil!

    • @Fractal_reComm
      @Fractal_reComm Рік тому

      vc teve algum problema para rodar o three.js n estou conseguindo rodar o codigo

  • @jbitbi2851
    @jbitbi2851 2 роки тому +1

    Getting into this space as newbie, this tutorial lights me up with 😀infinite possibilities of creating/customizing stunning, fluid apps in D3 js. Thanks so much!

  • @jurgvds
    @jurgvds 3 роки тому +4

    When fireship makes a Tutorial on something it becomes official for me

  • @Ma1ne2
    @Ma1ne2 3 роки тому

    Shit man, was working with Blender like a million years ago when I was still a child, now grown up this is blowing my freaking mind.

  • @fidgetymouse
    @fidgetymouse 2 роки тому +5

    Amazing tutorial. I kinda went a bit overboard though and I spent a day rewriting Sebastian Lague's planet gen code to work with ThreeJS (pretty much only kept the methods for combining noise). Ended up having to learn glsl to make it work using a ShaderMaterial.

  • @felixboachieyiadom4457
    @felixboachieyiadom4457 2 роки тому +1

    understanding 3d never felt better

  • @leonmher5342
    @leonmher5342 3 роки тому +8

    Dude it’s insane! Fast and clear explanation. Thanks for saving our time, cause this could easily be a one hour long video lol

  • @smokeyoak
    @smokeyoak Рік тому

    Love that short css-grid explanation a the end. So much better than the way we used to do it

  • @abhiramsatpute
    @abhiramsatpute 3 роки тому +9

    People might need to do an `npm install` before the `npm run dev` at 2:48

    • @crank9847
      @crank9847 2 роки тому

      I made it but i got an error anyways, that the "dev" script is missing

  • @Luisja_c
    @Luisja_c Рік тому

    you have no idea how much this helped, I always reference you in my projects, thanks for being my sensei

  • @Trixz-the
    @Trixz-the 3 роки тому +8

    Nice video bro. Been waiting for that!

  • @moxxy3565
    @moxxy3565 2 роки тому

    Wow I've seen super complex examples of people making spinning toruses from scratch I can't believe how simple three.js makes it

  • @skycrazyk
    @skycrazyk 3 роки тому +6

    It was really interesting! I thought programming 3D animations more difficult, but now I think I should try it

    • @sebastianibe8147
      @sebastianibe8147 2 роки тому

      L l. L. Mmmm mmmmmmm/mmmmmm m. I. Öl oo. Öl l l. Lmm/mmmmmm n ooookoook ooookoook kmkkm/. Mmmmmmknlkkkkkkk. N. Kmkko l k o lol. I lol kkl OK kk OK. OK k l Oooooo9oooo oo oookooko I ooookoook k oo onooll ooonn9ooooo. Oo ooookoook and then I opened it to 0o9o9 ooooooooo9o9oo9ooo9999999 to make a good friend 0o9o9 Oooooo9oooo. Mm mmmom/. Mmmm/nnnnnmm0nnoo. O0 0 II ooo{oooooooo{oooo{{of oooooool. {{oooooo9o9oo9ooo9999999 nooooooo9o0o0okolooooooooioooo9olooo. Oooooo9oooo N no o. Poo. I. Poo {x9x69. 599m 5fk6f f6o t. Of Mo.. I o m fkfxtf. Zoom in oxft 6.oofkf6fktof.?!!. do..! Ox659. X. 5. 5otxof I. 5 of96fkkxmf o9fp6 9m5x.9x9.66o. Fkf o5fot. Fooxofkffofu. Click Click Click Click OK. Click This ist of. Kf.. F. on. on of. F.? Kfk. F.. It. CT.?! Tkxot9. T9f9 o6mffktk6kkf96. Too 6k from f9ckf mf96m96mcx9c9tofkfofoko. Okf I. I. Co.! Co. I. On ock. I. Co. Gott... Oof9. Fk59. C5l5ofk95kf9 95l!!!.?. 9!.?.

    • @sebastianibe8147
      @sebastianibe8147 2 роки тому

      Momomm{mm mooooommm{

    • @sebastianibe8147
      @sebastianibe8147 2 роки тому

      Oomo{m

    • @sebastianibe8147
      @sebastianibe8147 2 роки тому

      Kmmömmmmmm{{kkk

    • @sebastianibe8147
      @sebastianibe8147 2 роки тому

      Kmmömmmmmm{{kkkk

  • @cloudproblemssolved
    @cloudproblemssolved Місяць тому +1

    this is great for those jobs on Handshake that require a portfolio in addition to your resume and cover letter

  • @spicybaguette7706
    @spicybaguette7706 3 роки тому +17

    You can improve the moon with something called triplanar mapping, which basically takes an image for the x, y, z planes and projects them on the sphere. When you blur the edges you can get a really nice texture.

    • @mrmelon54
      @mrmelon54 3 роки тому +11

      "its about as realistic as the moon landings"
      me: but the moon landings were real?

    • @kəanıncupıdo
      @kəanıncupıdo 3 роки тому +1

      @@mrmelon54 or was it? Hmmmmmmm

    • @hurricanemeridian8712
      @hurricanemeridian8712 2 роки тому +3

      @@mrmelon54 That sentence got me too... bruh

    • @nullbeyondo
      @nullbeyondo 2 роки тому +1

      @@mrmelon54 He meant the footage of the moon landing cause it is low quality, not the landing itself. It should be obvious cause we talk about rendering in this video.

  • @CainanParker
    @CainanParker 3 роки тому +2

    You have a way of moving through things much quicker than other three.js tutorials, but for some reason it makes so much more sense.

  • @tanmay______
    @tanmay______ 3 роки тому +113

    1:12 ‘about as realistic as the official moon landings’
    What’s that supposed to mean lol

    • @zanarkandmusic
      @zanarkandmusic 3 роки тому +24

      Glad I'm not the only one who noticed that!

    • @matisowagm
      @matisowagm 3 роки тому +44

      Dont tell me this guy is a conspiracist

    • @Mopark25
      @Mopark25 3 роки тому +18

      @@matisowagm he's joking lol

    • @arthureroberer
      @arthureroberer 3 роки тому +27

      from joke to joke the truth peeks out

    • @shb8651
      @shb8651 3 роки тому +6

      1:09

  • @NayyarAbbas-sh1vw
    @NayyarAbbas-sh1vw Рік тому +1

    Finally, a video that is not slowly killing me...

  • @juanloutech2864
    @juanloutech2864 3 роки тому +3

    Very nice tutorial! It's interesting to feel it so natural when you have been doing 3D game dev before with something like Godot.
    Thanks man!

  • @SO-fb4ef
    @SO-fb4ef 2 роки тому

    This is the first thing I've seen that excites me about front end

  • @galabra1
    @galabra1 3 роки тому +3

    This is fantastic! Such great methodological explanations and examples!
    Love it, thank you so much

  • @DankSauce-lh8zk
    @DankSauce-lh8zk 6 місяців тому +1

    for people having issues, you may need to multiply the intensity of the light sources by math.pi. In my case, I had to tone up the point light by like 1000 for some reason.

  • @FinlayDaG33k
    @FinlayDaG33k 3 роки тому +100

    Me eyes: "This looks amazing"
    My brain: "R.i.p batteries"

    • @hellfire92837
      @hellfire92837 3 роки тому +9

      and possibly cpu/gpu meltdown too

    • @Macatho
      @Macatho 3 роки тому +9

      Indeed. Nothing worse than a website that makes your laptop go VROOOOOOM

    • @lxhan893
      @lxhan893 3 роки тому

      So this wouldn’t be a good idea?

    • @FinlayDaG33k
      @FinlayDaG33k 3 роки тому +1

      @@lxhan893 Depends on your goals and values.
      On my website, I want my clients to use as little resources as possible without compromising on aesthetics too much.
      Some rather have all the gimmicks and eye candy instead.

  • @reubenroy
    @reubenroy 2 роки тому

    What absolute beasts Jeff and the Three.Js guys are!! Incredible!!

  • @Lolztech
    @Lolztech Рік тому +12

    idk what's happening but i cant follow half of the instructions here without something going wrong - Node JS isnt working as shown, the TextureLoader command is not recognizing the image path - perhaps this tutorial needs an update?

  • @gamingpig4997
    @gamingpig4997 5 місяців тому

    Tip for people learning for the first time, start with gsap. Animate text and divs. It will help you understand alot of things before jumping to 3rd rendering

    • @io-er1ex
      @io-er1ex 4 місяці тому

      I'm going to do as you say thanks

  • @AmritEmperor123
    @AmritEmperor123 5 місяців тому +3

    I feel like I just watched the whole donut tutorial from BlenderGuru in a .zip file format.

  • @scottonanski4173
    @scottonanski4173 2 роки тому

    My goodness! Finally someone who can teach this properly!

    • @scottonanski4173
      @scottonanski4173 2 роки тому

      @@leimichiama2lose I did. I forgot how I solved it.

  • @fpspsyduck
    @fpspsyduck 3 роки тому +4

    Yes! Was waiting for this tutorial!!

  • @tribeholz23
    @tribeholz23 5 місяців тому

    thank you so much man! Could not stop messing around with THREE.js for the past 4 hours xD

  • @SimpleLangSolution
    @SimpleLangSolution 3 роки тому +13

    Welp, there goes my weekend.

    • @spectralquill1810
      @spectralquill1810 3 роки тому +1

      Me too. Coder compulsiveness is itching again😅

  • @craigdariz6576
    @craigdariz6576 3 роки тому

    Nevermind, I got it now, I had to run npm init vite@latest, then cd to the project folder, then run npm install, then npm install three, and everything is working wonderfully now. Phew! Hope this helps anyone that tries to do this and is as green as I am

  • @FahadAli-ot5kn
    @FahadAli-ot5kn 3 роки тому +9

    Hit the subscribe button and smash like button he is really genious person ...if u can't learn anything that's not a problem but hid idea is cool...

  • @channelname437
    @channelname437 2 роки тому

    Im just sitting here after watching the whole ass 15 min without even blinking and be like "Wow...". I am speechless. Great video!

  • @Wolflund2012
    @Wolflund2012 3 роки тому +4

    The moonlanding was real tho

  • @iba001
    @iba001 3 роки тому +1

    You've got magical tendency to post a video about topics I was 🤔 about (threejs AND putting together a portfolio website). Never thought of combining both but you might be onto something!

  • @iviixio
    @iviixio 3 роки тому +3

    On No! Fireship is taking my job away :')

  • @igormartis1384
    @igormartis1384 3 роки тому

    window.onresize = () => {
    location.reload();
    };
    Added this listener at the begin of the main.js because resizing the window, the canvas keep the original size given at the draw moment.
    A pro of the resize listener is that it keeps the amount of scroll done till the moment you resize.

  • @juliandavidalfonsomoreno6798
    @juliandavidalfonsomoreno6798 3 роки тому +18

    14:58 how did you do that? The way you show the actual grid in vs code 😧

    •  3 роки тому +5

      Mozilla Firefox has great visual feedback in the developer's tools. Check that out, you will find the grid helpers there.
      Don't know how to do it in vscode though.

    • @mohammedjawahri5726
      @mohammedjawahri5726 3 роки тому +1

      leaving this here in case anyone replies with how lol

    • @mr.hahamuffingobrr3613
      @mr.hahamuffingobrr3613 3 роки тому +1

      Could be wrong but I'm pretty sure that's added in post

    • @nebulousnomad
      @nebulousnomad 3 роки тому +1

      Firefox developer tools allows you to highlight grid and flexbox. You can find it on the far right when you focus on an element that has `display: flex or grid`.

  • @martinharris4416
    @martinharris4416 3 роки тому +1

    Damn there are many people making tutorials but this guy is talented

  • @peterferencz
    @peterferencz 3 роки тому +4

    I literally just learnt about this framework a few days ago, and was wondering if someone has a tutorial for it

  • @williammasferrer9067
    @williammasferrer9067 2 роки тому

    I dont know wich is more mindblowing, the portfolio or the video itself!!!

  • @pablocortes682
    @pablocortes682 3 роки тому +1

    Wow, just wow! Thank you so much for this tutorial. You made threejs so easy to follow, with the basics and its variables and possibilities, and how to apply it to a website, and all in just over 15 min. Thank you very much!

  • @Flocksta
    @Flocksta 3 роки тому +218

    “Beginner friendly” 😢

    • @Mduduzi_Ntuli
      @Mduduzi_Ntuli 6 місяців тому +5

      😂

    • @hugueskir6203
      @hugueskir6203 2 місяці тому

      This was good

    • @IcyPickled
      @IcyPickled Місяць тому +3

      It is beginner friendly what do you mean? You have to understand basic concepts like objects and classes and you're all set?

    • @Bananabanananax
      @Bananabanananax 25 днів тому

      I’m 8 weeks into a computer graphics course at my university. This sums up 80% of what we’ve learned so far. It’s awesome but very basic stuff

  • @ВладиславКороль-ш2в

    Whoa that's just outstanding! I've never thought something like that is possible to do in simple programming, it's completely impressive! That's some incredible ability to learn here.

  • @aaxen7255
    @aaxen7255 Рік тому +9

    Great tutorial, well explained. Question: where to host such a project? I'm assuming typical shared hosting doesn't support three.js ...?

    • @red.46
      @red.46 Рік тому +12

      as long as the host supports a javascript website, you can use threejs. I use github pages to host my threejs website with react.

    • @aaxen7255
      @aaxen7255 Рік тому +2

      @@red.46 thank you

    • @SapphireKR
      @SapphireKR Рік тому +2

      @@red.46 how do you do this? I have spent hours and hours trying to figure it out, if you could help I would really appreciate it!

  • @louisconnors8616
    @louisconnors8616 3 роки тому +6

    when running npm run dev, i get an error saying that vite cannot be found and worker_threads module cannot
    be found. Any one have a solution?

    • @ricasfbp
      @ricasfbp 3 роки тому +1

      same problem :/

    • @ricasfbp
      @ricasfbp 3 роки тому +6

      i might have found the answer, after running:
      npm init @vitejs/app
      You just run these 3 commands:
      cd (name of your project)
      npm install
      npm run dev

    • @Golmixer
      @Golmixer 2 роки тому

      @@ricasfbp thanks a lot!

    • @TheKidHD
      @TheKidHD 3 місяці тому

      @@ricasfbp This fixed my issue and I was able to run "npm run dev" successfully

  • @miquellasheras980
    @miquellasheras980 3 роки тому

    you are amazing Jeff, i got addicted to Firebase because of you and now i will be addicted to threejs haha

  • @Trixz-the
    @Trixz-the 3 роки тому +4

    I have a question. Must I install vite with react to use three.js?

    • @salmanarshad8861
      @salmanarshad8861 3 роки тому

      No

    • @salmanarshad8861
      @salmanarshad8861 3 роки тому +1

      Vite is optional

    • @Fireship
      @Fireship  3 роки тому +2

      You don't need react. Vite is just an easy way to setup a project with NPM and hot module replacement, but it's not necessary.

    • @Trixz-the
      @Trixz-the 3 роки тому

      Ok thankyou. 🙏

    • @codelightsparkles2403
      @codelightsparkles2403 3 роки тому

      But if you want to use react then there is package called react three fiber which is awesome

  • @nahiansharif4200
    @nahiansharif4200 Рік тому

    well, I was using position: relative/absolute/fixed, but the way u r usinggrid for item placement is more easy and efficient. Thank you!

  • @CarlitoProductions
    @CarlitoProductions 3 роки тому +6

    does it affect performance on the site in any way when navigating/scrolling? I was talking to a friend today about using ThreeJS and GLSL in a future project, and not sure how many models you can render on screen at a time with ThreeJS before it slows down visibly. Would love to know performance comparison of a site with and without rendered objects.

    • @lucasjames8281
      @lucasjames8281 2 роки тому +2

      Depends on the power of the clients machine id assume

  • @DevranUenal
    @DevranUenal 2 роки тому

    Fireship videos are so awesome, it's unbelievable. Everything is on point, no second is wasted.
    It reminds me of Railscasts videos from Ryan Bates.

  • @jaygrollman8856
    @jaygrollman8856 3 роки тому +9

    How do you exist

  • @dannx3144
    @dannx3144 2 роки тому

    the way u explained it was so smooth, love this

  • @gman9mm1
    @gman9mm1 3 роки тому +3

    Hey man! I have a quick question for ya! When I deployed my Portfolio based on this on gh-pages and Vercel, they both won't load the styles, nor animations... any ideas on why this may be? I'm not sure if Vite is causing issues of some sort, but it seems to be having issues with routing despite my project having an identical structure to yours. Otherwise it returns with a 404...

  • @nitsanbh
    @nitsanbh 3 роки тому +1

    This is a GREAT tutorial!
    Full with useful info, skips the bs, and most importantly, not just reading the documentation site out loud