Adding a 3D model to a website using THREE.JS

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 พ.ย. 2024

ความคิดเห็น • 133

  • @covenantersoldier9165
    @covenantersoldier9165 ปีที่แล้ว +19

    Tip of the hat to you Gabriel, what a breakthrough. after all the videos of trying to host this thing through a server is somewhat hard being somewhat a technical idiot, just decided going blindside, with something no one talks about, skypack.
    This tutorial was the second most successful and easy to understand tutorials I've come across, simon devs videos are brilliant, a easy chill dev creating some really great projects, well done. [pat on back]

  • @ahmedgoniboulama8423
    @ahmedgoniboulama8423 ปีที่แล้ว +16

    Nice video, it will be great to see another video in which we can in example learn how to upload 3d objects to our scene from our local storage

  • @guillaumedurant7647
    @guillaumedurant7647 11 หลายเดือนก่อน +3

    Hi. Thank you for your explanations. This is exactly what I was looking for. I'm a newbie in Javascript. I'm still able to understand all you said. I guess I will I to watch your video again and again and again....

  • @deepak8586
    @deepak8586 ปีที่แล้ว +2

    wee need more threejs stuff this is so cool!! short and on point!!

  • @ucato6278
    @ucato6278 6 หลายเดือนก่อน +1

    I think this video is a great starting point for whoever wanna try to mess with models in three.js (such as myself), great job my guy!!!

  • @mayurjakate2161
    @mayurjakate2161 ปีที่แล้ว +3

    Thanks, Gabriel, This is the best and simple video to learn three.js

  • @arisweedler4703
    @arisweedler4703 หลายเดือนก่อน

    1:22 one of those CSS rules was not like the others. One was for aesthetics, and the other was for complete painting onto the screen control

  • @mathom633
    @mathom633 6 หลายเดือนก่อน +12

    somehow it doesnt work for me, i literally downloaded everything on github but the eye still doesnt show up, its just a black screen with the header

    • @johnmichaeldacara5636
      @johnmichaeldacara5636 4 หลายเดือนก่อน

      that means the compatibility related, bro.

    • @adityapatki9494
      @adityapatki9494 2 หลายเดือนก่อน

      Bro it's showing the same for me

    • @anonoanon1198
      @anonoanon1198 2 หลายเดือนก่อน

      ​@@adityapatki9494 are you sure you're pointing to the right file path?

  • @AirborneInsightsUK
    @AirborneInsightsUK 2 หลายเดือนก่อน +1

    Great video, clearly explained and it works. Thank you.
    Using Visual Studio Code on my PC I needed to install the Live Server extension to display the html webpage running the Java script. Adobe Dreamweaver running on my Mac seems to have live server functionality built in.

  • @Eyuelfrew
    @Eyuelfrew 10 หลายเดือนก่อน

    cooooooollllll, we need more of three.js , keep it up

  • @jaqsentanner5386
    @jaqsentanner5386 ปีที่แล้ว

    Great and quick breakdown! Thank you.

  • @valentimgarcia6179
    @valentimgarcia6179 ปีที่แล้ว +1

    Amazing tutorial, keep up with these!

  • @muhammadyameen4998
    @muhammadyameen4998 9 หลายเดือนก่อน

    thanks for it. got lead for a jump start. thanks bud

  • @MPG7555
    @MPG7555 4 หลายเดือนก่อน

    clean and sharp! love this!

  • @sysadmin9396
    @sysadmin9396 ปีที่แล้ว +1

    I think I finally found a way to give my ai home assistant a “face” . Thank you

  • @Psycandy
    @Psycandy 11 หลายเดือนก่อน

    right at the end you type some weird sort of arrow. That symbol does not exist in ASCII so it would be useful to know how you managed to get half the special characters you magically paste in, leaving us to type it up wrong, and it won't work. I guess you aren't supposed to type it out, just copy paste from somewhere, which will remain a secret. Super.

    • @bzsteachings511
      @bzsteachings511 11 หลายเดือนก่อน +1

      If I understood what you meant, what you are talking about are legatured, those are basically more characters combined for a different look.
      You can enable them in VS in the options, for the arrow is just = and > combined that look like an arrow

  • @KwameGyanko
    @KwameGyanko ปีที่แล้ว

    I dont understand it now but in a few months it will all make sense 😅. thank you

  • @toobakhan-t8d
    @toobakhan-t8d 10 หลายเดือนก่อน

    Amazing tutorial, thanksss

  • @chamcamtaco6014
    @chamcamtaco6014 11 หลายเดือนก่อน +2

    Sorry, I tried to open your .html file with edge and crhome but the modeling doesn't work and the same thing happens with my files, I don't know if I use a program for local host or not

    • @GabrielMolterIO
      @GabrielMolterIO  11 หลายเดือนก่อน +5

      Hey, I missed that on the video, but I believe the issue you're having is related to how the model file path on the code is relative to the root of the project, but if you just open the .html file, without using some kind of localhost server, it will look for the root of your computer's file system, which won't work...
      Try running it with something like the "Live Server" extension for VSCode.

    • @msg-1995
      @msg-1995 7 หลายเดือนก่อน +1

      ​@@GabrielMolterIOok so we have to run it with node or python to create a http socket or else we can make a flask or react app of it ??

  • @猫大花
    @猫大花 ปีที่แล้ว

    Thank you! It’s very excellent!

  • @wizart2100
    @wizart2100 3 วันที่ผ่านมา

    i model high poly cars with high attention to detail, i would love to put my car in the middle with the wireframe so people can see the topo and can move in 360 degree around it. is that possible ? can it be high poly ? cause i also do engine bay which take my car vertices from around 2 million to nearly 20 million

  • @HarshGupta-n1z
    @HarshGupta-n1z ปีที่แล้ว +1

    awesome content bro

  • @tbrogoit02
    @tbrogoit02 ปีที่แล้ว +2

    I probably wont get an answer but I was wondering what you'd do if you had a scene made in Blender and wanted one specific object within that scene react to mouse movement? To be specific, I want to make a campfire with sparks coming out, but want the sparks to interact with the mouse if it hovers over them and the fire interact differently if the mouse goes over it.

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว

      I don't know how complex your campfire is, but my best guess would be to have two separate 3D models on the same Three.JS scene (one for the environment and one for the campfire) and I'd have the mouse hover emit some particles or something like that.

  • @imasunflowerlilfunny3353
    @imasunflowerlilfunny3353 8 หลายเดือนก่อน +1

    if my project is in react js , how do i add this in my homepage?

    • @GabrielMolterIO
      @GabrielMolterIO  8 หลายเดือนก่อน

      For React projects I'd use @react-three/fiber and maybe "useGLTF" from @react-three/drei to load the GLTF model. I might make a video on that in the near future.

  • @mathom633
    @mathom633 6 หลายเดือนก่อน +1

    somehow it doesnt work, i downloaded everything from guithub but it only renders a black screen with the header

    • @GabrielMolterIO
      @GabrielMolterIO  6 หลายเดือนก่อน +1

      Yeah, that’s probably an issue with the file pathname, I wrongly assumed everyone would be running this in a server-like environment, with the project folder at the root. I’m pretty sure I’ve given detailed instructions on how to solve it in another comment here, but you basically have to change the 3d model file path and it will work

  • @TJKeets
    @TJKeets 3 หลายเดือนก่อน +1

    I have copied the code straight from github but all I get is a black screen with 'A simple three.js app' at the top :(

    • @GabrielMolterIO
      @GabrielMolterIO  2 หลายเดือนก่อน

      If you're using VS Code, try installing the Live Server extension. It's probable that your computer isn't serving the 3D model file in the path the code is looking for.

  • @summerjp1997
    @summerjp1997 ปีที่แล้ว

    Amazing! thank you so much

  • @carlo6044
    @carlo6044 2 หลายเดือนก่อน

    Hi for some reason its only showing the eye model, I tried changing the 'Object to render' value to dino but it doesn’t work. Please help

    • @carlo6044
      @carlo6044 2 หลายเดือนก่อน

      Nevermind I got working, Great Video! Thanks!

  • @MONIKAS-r8d
    @MONIKAS-r8d ปีที่แล้ว

    Thanks for this video. It would be very helpful if you do this for 3D House model

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว

      No matter what's the model, the code should work as long as it's exported in glTF

  • @filipemecenas
    @filipemecenas ปีที่แล้ว

    Thats super cool !!!

  • @cauefernandes5706
    @cauefernandes5706 7 หลายเดือนก่อน

    Muito top mano, ajudou dms brasil no topo sempre

  • @honeynet
    @honeynet 7 หลายเดือนก่อน

    May I know what's the purpose of "Dino"? The example unable to work properly without this "Dino" thing. Thanks.

    • @GabrielMolterIO
      @GabrielMolterIO  7 หลายเดือนก่อน

      It's the selector I'm using to choose which file to render, either "dino" or "eye". You may very well just hardcode that on a real project

  • @kevinland534
    @kevinland534 10 หลายเดือนก่อน

    Very awesome job with this video! The only thing is that I can only view the eyeball model. Do I need to create another webpage and change the code so that I can view the dinohead?

    • @GabrielMolterIO
      @GabrielMolterIO  9 หลายเดือนก่อน +1

      You should be able to switch to the dino by changing line 24:
      let objToRender = 'eye';
      becomes
      let objToRender = 'dino';

    • @kevinland534
      @kevinland534 9 หลายเดือนก่อน

      Excellent! Thank you very much!

  • @FLAFRefuelled
    @FLAFRefuelled 3 หลายเดือนก่อน

    what does the scene.bin file do? replacing the scene.gtlf file doesnt just replace the model, so i'm assuming that's related? what does it do and how do i make/get one?
    thanks in advance.

    • @GabrielMolterIO
      @GabrielMolterIO  2 หลายเดือนก่อน

      As far as I understand it, the scene.bin file stores the data that's too big to fit the scene.gltf, but is still needed, in in binary format. Both files must match for the model to work properly. To make these files, export from a 3D software in glTF format. To get them, you can download from plenty of sites, including the one I showed in the video (just make sure to download in glTF format)

  • @lovanshgaur3406
    @lovanshgaur3406 4 หลายเดือนก่อน

    if i download other models, they are not shown. though the dino and eye are working

    • @GabrielMolterIO
      @GabrielMolterIO  3 หลายเดือนก่อน

      Make sure the model file's extension and path are correct, then if that's still not working, try playing with the camera's X, Y and Z values, as the model might be somewhere else in the scene but not directly in front of the camera.

  • @ivanovichCetys
    @ivanovichCetys 6 หลายเดือนก่อน

    Thank u, amazing tutorial bro, however, how can object only limit like a canva and not all the screen?

    • @GabrielMolterIO
      @GabrielMolterIO  6 หลายเดือนก่อน

      I mean, you can make the Canva take the whole viewport size with CSS, doesn’t that work?

  • @hitheshsuvarna2198
    @hitheshsuvarna2198 8 หลายเดือนก่อน

    ive downloaded other models from sketchfab and included in project directory but when i link them and load they are not coming in the website what may be the reason, i think all model must work, its same format as u mentioned

    • @GabrielMolterIO
      @GabrielMolterIO  7 หลายเดือนก่อน +1

      They should all work, but the settings for each model can be wildly different. So make sure you play around with light sources, camera positions, object materials, etc. Once you get something to appear on the screen you can start tweaking the values and hopefully you'll be able to adjust it the way you want it.

    • @hitheshsuvarna2198
      @hitheshsuvarna2198 7 หลายเดือนก่อน +1

      @@GabrielMolterIO yea man understood it thank you for the info

  • @drdistic
    @drdistic 9 หลายเดือนก่อน

    Can I create scroll trigger animations for this 3d model?? Please answer

    • @GabrielMolterIO
      @GabrielMolterIO  9 หลายเดือนก่อน

      Yeah, just set your scroll event listener, save the scroll position into a variable and use that variable on the animation loop to make whatever animation you want

  • @dhruvsehgal1198
    @dhruvsehgal1198 8 หลายเดือนก่อน

    Is it possible if i made a customization box changing color and rendering text. will it reflect on model also with changing color and text???

    • @GabrielMolterIO
      @GabrielMolterIO  7 หลายเดือนก่อน

      Yeah, I remember seeing something similar to that on the THREE.JS documentation, maybe take a look at the examples there and you can find a path to follow

  • @miiukatt4656
    @miiukatt4656 9 หลายเดือนก่อน

    Hello!
    Thank you very much for this, I've been watching for a tutorial for days and I wasn't able to find it until now!
    I have a problem and it's that I can see the preview of the webside with the extension 'Live Preview', but when I run it on browser the 3Dmodel doesn't appear. Could someone help me with that, please? 🙏

    • @GabrielMolterIO
      @GabrielMolterIO  9 หลายเดือนก่อน

      Hey, that's probably related to the import path of the model file. It should work if you add ./ before "models/" on the file path.
      If I remember well, I've given a slightly more detailed explanation in a previous comment here some days ago.

  • @rolandmaroun2233
    @rolandmaroun2233 7 หลายเดือนก่อน

    video is so cool but the final index.html file in your repository didn't work once launched on google chrome from my side any idea why?

    • @GabrielMolterIO
      @GabrielMolterIO  7 หลายเดือนก่อน

      You might either need to change the path of the 3d models or run the index.html file using some king of server software, like VSCode's Live Server Extension

  • @a5ac8m
    @a5ac8m 11 หลายเดือนก่อน

    I have downloaded everything and copied the exact folder names but it just shows a black screen with the title

    • @GabrielMolterIO
      @GabrielMolterIO  11 หลายเดือนก่อน

      I've heard some people are having the same issue. I believe it's related to how the model file path on the code is relative to the root of the project, but if you just open it without using some kind of localhost server, it will look for the root of your computer's file system, which won't work...
      Try running it with something like the "Live Server" extension for VSCode.

    • @12alfredjoedevasia59
      @12alfredjoedevasia59 9 หลายเดือนก่อน

      i used live server extension but still not working
      @@GabrielMolterIO

  • @АнастасіяМендела
    @АнастасіяМендела 11 หลายเดือนก่อน

    Hello! Could you please tell me what format of the 3D model is needed to upload it to the site?

    • @GabrielMolterIO
      @GabrielMolterIO  11 หลายเดือนก่อน

      This video uses GLtf format, but you can use a bunch of others as well, just take a look at the documentation on loaders.

  • @ahmadshoukat-c8y
    @ahmadshoukat-c8y 10 หลายเดือนก่อน

    when i add the model its not perfectly centred. i even tried setting position and using different models but got same problem. when i add model its not on origin , its at +ive y-axis.
    anyone know about this problem ?

    • @GabrielMolterIO
      @GabrielMolterIO  10 หลายเดือนก่อน +1

      You know when we set camera.position.z on the video? Did you try changing the positions for camera.position.x and camera.position.y as well? I think that might work for you!

    • @ahmadshoukat-c8y
      @ahmadshoukat-c8y 10 หลายเดือนก่อน +1

      @@GabrielMolterIO yes i know , i had to set values of camera and of position in thousands. another way was to scale down my model. i was wondering if this happens every time for everyone. it would have been great if imported model were just originate from position 0,0,0. (they actually are but the appear at some other position away from origin 🥲).

    • @GabrielMolterIO
      @GabrielMolterIO  10 หลายเดือนก่อน

      @@ahmadshoukat-c8y I don’t actually know the reason for that, but in my experience it was rare to find a model that was nicely centralized at 0,0,0 by default. 🤷🏻‍♂️

    • @ahmadshoukat-c8y
      @ahmadshoukat-c8y 10 หลายเดือนก่อน +1

      @@GabrielMolterIO true , it means its the same case everyone. but there is too much hit and trail in threeJs 😮‍💨 beside knowing dimensions

  • @crepybozz6011
    @crepybozz6011 ปีที่แล้ว +2

    how do you run it\

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว +1

      You can use a plugin on your code editor. I use “Live Server” on my VSCode.
      Or you can simply drag the html file to your browser.

  • @tunahanergul9945
    @tunahanergul9945 10 หลายเดือนก่อน

    hey um how can I add a background image, in my site I can change colors only

    • @GabrielMolterIO
      @GabrielMolterIO  10 หลายเดือนก่อน

      If the background doesn't interact with the model you can just add it with CSS in element you want, like:
      body { background-image: url(path_to_your_img) }

    • @tunahanergul9945
      @tunahanergul9945 10 หลายเดือนก่อน

      @@GabrielMolterIO it isn't working I don't know why, in a few forums they said you have to add new scene and camera

  • @yashodeeprajput9645
    @yashodeeprajput9645 2 หลายเดือนก่อน

    How do i add more lights my screen is just black

    • @GabrielMolterIO
      @GabrielMolterIO  หลายเดือนก่อน

      If you cloned the repo and the screen is black, it isn't because of lights. Most probably you need to either fix the file path or run it at the root of a server.

  • @tigreonice2339
    @tigreonice2339 ปีที่แล้ว

    What do you prefer? This, 3js, or spline library?

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว +1

      I haven't yet tried Spline... seems really cool tho!

  • @IrvineMesa
    @IrvineMesa ปีที่แล้ว

    hi where did you get the background music

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว

      I believe that one is from TH-cam's free library, if I remember correctly

  • @linusesh
    @linusesh ปีที่แล้ว

    Do i have to install anything only my computer (Mac) to be able to run it locally via VS Code and debugging in Chrome?

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว +1

      Not really, just dragging the file to Chrome should open it without issues. I use a VSCode Plugin called "Live Server", which makes it a bit faster.

  • @SaGaR-is1jg
    @SaGaR-is1jg 5 หลายเดือนก่อน

    thanks for the video

  • @hakkesan
    @hakkesan ปีที่แล้ว

    thank you!

  • @aryanmauryamr.perfect1426
    @aryanmauryamr.perfect1426 2 หลายเดือนก่อน

    He is real developer

  • @mohameddarwesh9305
    @mohameddarwesh9305 ปีที่แล้ว

    Thanks, Keep going

  • @benxfpg
    @benxfpg ปีที่แล้ว

    Hi! Im curious how to get this working on my wordpress site😁

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว

      I'm fairly certain that if you just upload the models to wp-content/uploads, update the path to the file on the code and then place it all inside an HTML block, it should work. There's probably better ways, like using a custom page template file, etc...
      I'm going to be testing this in the future and I might make a video about it, as I've gotten that same question a few times now.

  • @ftmullah
    @ftmullah 11 หลายเดือนก่อน

    hey, how do you go about obj files? please help

    • @GabrielMolterIO
      @GabrielMolterIO  11 หลายเดือนก่อน

      You’d have to replace the glTF loader with the OBJ one, just take a look at the ThreeJS docs: threejs.org/docs/#examples/en/loaders/OBJLoader

  • @york2301
    @york2301 ปีที่แล้ว

    Good job!

  • @eehm
    @eehm ปีที่แล้ว

    Thank you

  • @iqrahanif7568
    @iqrahanif7568 ปีที่แล้ว

    When i use my models in your project they did not show on website

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว

      I'd start by checking if there are any errors on the console. Also, is the model exported in the correct format? I'd also double check the camera position, it might have to be very different from what I'm using on the video, depending on the model you're using.

  • @breakingtheinternet9622
    @breakingtheinternet9622 ปีที่แล้ว +2

    I clone your project but it only give me the text

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว +1

      Not entirely sure what you mean here... The project on GH has all the code AND the 3D models, so it's pretty much ready to run

    • @Ally-uj3di
      @Ally-uj3di ปีที่แล้ว

      I sadly have the same problem. I cloned your GH Repository, but when I open the index.html file, I only see a black screen with the "A Simple Three.Js"-header, but no 3D Object in sight. I have tried it with "Live Server" and with just dragging the html file to my browser. Both don't work. What did I do wrong? @@GabrielMolterIO

  • @AhmedObeid-AST
    @AhmedObeid-AST 2 หลายเดือนก่อน

    It doesn't show me anything
    what could be the problem!!

    • @GabrielMolterIO
      @GabrielMolterIO  2 หลายเดือนก่อน +1

      If you're using VS Code, try installing the Live Server extension. It's probable that your computer isn't serving the 3D model file in the path the code is looking for.

  • @ВладВ-ш7ы
    @ВладВ-ш7ы ปีที่แล้ว

    Thank you so much for this tutorial. I have a problem: my 3D model is so small and it is located so far from my current camera position, so i am confused. I repeated all code, which you have done, please, help me sir😇

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว

      Sounds like you should play around with the camera.position.z setting a bit. The values I used on the video worked for the models I used, but you'll have to tweak them to make them work with your models.

  • @alex.29899
    @alex.29899 7 หลายเดือนก่อน

    Which font style do you use in your Vs code ?

    • @GabrielMolterIO
      @GabrielMolterIO  7 หลายเดือนก่อน

      I use Fira Code with ligatures activated

  • @Rancha51
    @Rancha51 10 หลายเดือนก่อน

    how are running the project ?

    • @GabrielMolterIO
      @GabrielMolterIO  10 หลายเดือนก่อน

      I use a little VSCode Extension called "Live Server", which I highly recommend.
      You could also simply open the index file with a browser. Keep in mind that, as it is, the code loads the 3D models using paths relative to the root, so to run it without starting a local web-server, you'd have to add a "./" before the file path, to make it relative to the current folder.
      `models/${objToRender}/scene.gltf`
      would have to be
      `./models/${objToRender}/scene.gltf`
      Again, if you use the extension that change isn't needed.

    • @angelinepoissonneau
      @angelinepoissonneau 8 หลายเดือนก่อน

      @@GabrielMolterIO Hi, I have the same problem, I changed "loader.load(
      `./models/${objToRender}/scene.gltf`," but I still get a black screen, when I inspect the page in Chrome, it shows the container3D div has a height of 0, but is the same width as the screen

    • @GabrielMolterIO
      @GabrielMolterIO  8 หลายเดือนก่อน

      @@angelinepoissonneau do you get an error on the console or something?

  • @luismigueltierra4022
    @luismigueltierra4022 5 หลายเดือนก่อน

    Can this be done to a Shopify app?

    • @GabrielMolterIO
      @GabrielMolterIO  3 หลายเดือนก่อน

      Yep, this should work in any type of website!
      Thought, if you're using Shopify's Hydrogen (instead of Liquid), you should probably use the React Three Fiber lib instead, but the underlying logic will still be the same.

  • @vtminhlien8840
    @vtminhlien8840 ปีที่แล้ว

    Can't workwith STEP file ?

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว

      Not as far as I know, I'd recommend you read this issue on GitHub: /mrdoob/three.js/issues/7125

  • @toobakhan-t8d
    @toobakhan-t8d 10 หลายเดือนก่อน

    perfect

  • @codywong4052
    @codywong4052 9 หลายเดือนก่อน

    I can't get it to work.

    • @GabrielMolterIO
      @GabrielMolterIO  7 หลายเดือนก่อน

      Do you get an error message on the console or something like that?

  • @bobbysmurf9915
    @bobbysmurf9915 ปีที่แล้ว +2

    Very specific tutorial that doesn't explain anything and only works with the exact models you use. Disliked.

    • @GabrielMolterIO
      @GabrielMolterIO  ปีที่แล้ว +1

      There’s plenty of in-depth tutorials on Three.JS available. I made this one for people who are already familiar with JS, and wouldn’t mind exploring a bit on their own.
      As for it working only with the models I’ve used, that’s wrong. It should work with any model given that you change the magic numbers throughout the code to adapt to your model. Play a bit with these numbers and I’m sure you’ll be able to run it successfully.

    • @franzruggiero8991
      @franzruggiero8991 ปีที่แล้ว

      this tutorial was great it's just not for beginners or people who don't know how to use Google, obviously different objects might require a different setup than his

    • @bobbysmurf9915
      @bobbysmurf9915 ปีที่แล้ว

      @@franzruggiero8991 I figured it out a while ago, with an actual good tutorial.

  • @sahilbhosale4945
    @sahilbhosale4945 2 หลายเดือนก่อน

    i didnt get the pathing of the file, when you have to load the file.