3D model configurator with React Three Fiber and gltfjsx

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 มิ.ย. 2024
  • Huge thanks to Poimandres team and Paul Henschel, who made this video possible. Im just showing result of their work!
    Demo: codesandbox.io/s/floating-sho...
    Repo with code by Paul: github.com/drcmda/floating-shoe
    All repos are under github.com/pmndrs/ company, support them:
    Valtio: github.com/pmndrs/valtio
    Drei: github.com/pmndrs/drei
    React Three Fiber: github.com/pmndrs/react-three...
    gltfjsx: github.com/pmndrs/gltfjsx
    Support me: / allyourhtml
    Twitter: / akella
    Timecodes:
    00:00 How to bring your 3D model into react environment
    06:58 Using Valtio for state management
    09:36 Events on GLTF object
    14:05 Colorpicker
    19:00 Making nice scene
    #react #gltf #threejs #r3f

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

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

    Yuri, you are one of the good ones. Thank you for all of your hard work because these tutorials are priceless!

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

    Спасибо Юрий!
    Коротко и очень информативно! Наверняка много усилий было потрачено на его создание спасибо тебе большое за это! Это топ контент.

  • @damisau
    @damisau 3 ปีที่แล้ว

    Amazing tutorial, can't wait to rebuild this with some of our 3D-Models!

  • @andrewiglinski148
    @andrewiglinski148 3 ปีที่แล้ว

    Dude I've been doing this for like 6 or 7 years now and that might be the coolest animation I've ever seen

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

    Awesome Tutorial!! I hope you will make more tutorials using react three fiber.

  • @aprilonian5189
    @aprilonian5189 3 ปีที่แล้ว

    amazing, I love hearing your thought process on your videos! "make it beautiful"~

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

    Thank you so much for making this live tutorials with three.js and React Three Fiber. This was the best christmas gift that youtube could give me.

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

      happy to hear that! have a happy holidays! 🎉 And you reminded me i need to learn to play guitar, awesome videos!

    • @Fingiorstyle
      @Fingiorstyle 3 ปีที่แล้ว

      @@akella_ Thanks hahaha

  • @DanielEguia
    @DanielEguia 2 ปีที่แล้ว

    Such a great tutorial! Thank you so much for taking time and helping us with your clear explanations :)

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

    Good stuff as always Yuri, more react-three-fiber in the future please)

  • @apuroopbusetty2432
    @apuroopbusetty2432 2 ปีที่แล้ว

    Thanks Yuri , very good video on three js using react. I really like how you made it very professional. This is by far the best tutorial for three and react.

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

    Ааа, Юрий, спасибо! Смотрю тебя ещё с 2015 года с конференции, где ты рассказывал про ускорение вёрстки. Огромное тебе спасибо ещё за тот доклад и вообще за то что делишься своим опытом. Тогда меня сильно ускорили в работе твои советы. Так что спасибо ещё раз! :)

    • @akella_
      @akella_  2 ปีที่แล้ว

      Спасибо!

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

    Thank you Yuri for making this tutorial. I did an exploding animation of a shoe using children property , threejs Raycaster and vector mathematics. I didn't know gltfjsx existed and made it much easier. This helped a lot and gave me more ideas that I'm gonna implement now.

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

      Do you get an error when use the command line npx gltfjsx model.gld?
      (node:22180) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
      (Use `node --trace-warnings ...` to show where the warning was created)
      Parse
      TypeError: fetch failed
      at Object.fetch (node:internal/deps/undici/undici:11118:11)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

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

    This is beautiful, Thank you so much 🙏 you explain so well!!! it was so easy to understand each step. Finally i'm gonna be able to use this knowledge to show my 3D models on my website portfolio

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

    Ни что так не мотивирует учить английский, как твои видосы) очень круто!

  • @vikashchand.
    @vikashchand. 3 ปีที่แล้ว +4

    Yes! More React tutorials Yuri! 🔥🤘

  • @Vad11m1
    @Vad11m1 3 ปีที่แล้ว

    Бачились з вами більше року тому в Житомирі на конференції - хочу вам подякувати за вашу працю! Саме ви мене надихнули навчатись і це допомогло мені не полишати свого хоббі. Дякую - вам.

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

    Great tutorial, like everything from you, Yuri.

  • @deathdefier45
    @deathdefier45 2 ปีที่แล้ว

    You're a gem for posting these tutorials, wanna be like you brother, hopefully I will one day ❤️

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

    Great tutorial, I used my 3d shoe design and this configurator made it look dope.
    respect++;

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

    Yurii, have a lovely Christmas / New Year!

  • @RRits57
    @RRits57 3 ปีที่แล้ว

    Holy shit, such a good video, awesome job. I was struggling with 3js and textures / lightning coming out of blender

  • @faisaltariq-un6so
    @faisaltariq-un6so ปีที่แล้ว

    thank you so much hands down the best tutorial on earth looking forward for more react base tutorials

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

    Thank you so much, great video explaining everything in detail. Really helpful for beginners like me

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

    I never used Three.js or React.js before but this tutorial was so good I was still able to follow it!

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

    Thank you Yuri that's amazing !

  • @user-rm9sr1sq5o
    @user-rm9sr1sq5o 3 ปีที่แล้ว

    Блин ооочень круто , спасибо за материал ! Я только недавно начал учить three.js по курсу Bruno Simon у него отличные уроки по базовым знаниям , а у вас отличный пример как это все можно применять в реальных работах. Круто Лайк Подписка

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

    Love the tutorial, You rock Yuri!

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

    Very useful tutorial, thanks.

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

    Just awesome!! 🔥

  • @avinashci
    @avinashci 3 ปีที่แล้ว

    mind blowing dude.. Awesome!!!

  • @unrank3d136
    @unrank3d136 3 ปีที่แล้ว

    This untie the knots in my mind. Now I can sleep peacefully.

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

    I loved this tutorial 😊

  • @fahadkarim8705
    @fahadkarim8705 3 ปีที่แล้ว

    Amazing, please make more videos on three js

  • @ilyablinov289
    @ilyablinov289 2 ปีที่แล้ว

    Great video, spasibo Yuri :)

  • @wowashlam
    @wowashlam 2 ปีที่แล้ว

    Great video! Thank you so much!

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

    Very nice tutorial. Thank you.

  • @chrislaowai2469
    @chrislaowai2469 2 ปีที่แล้ว

    Awesome. Thanks a lot for this tutorial.

  • @slavik.nychkalo
    @slavik.nychkalo 3 ปีที่แล้ว +1

    суперкруто! дякую за відео)

  • @MnMn-dc9pe
    @MnMn-dc9pe 3 ปีที่แล้ว +2

    thank you Yuri, you need to put the applause button

  • @lucaacaprio
    @lucaacaprio 3 ปีที่แล้ว

    Thanks for this, good vid!

  • @morneerasmus1789
    @morneerasmus1789 3 ปีที่แล้ว

    This is amazing!!!!

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

    thanks, great job

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

    Thanks for the tutorial! Can you also adjust the size of the components (example: make the laces bigger)?

  • @user-tn8vr5du5m
    @user-tn8vr5du5m 3 ปีที่แล้ว +3

    крутой видос) спасибо. Побольше бы r3f роликов

  • @ifiokumoren6759
    @ifiokumoren6759 2 ปีที่แล้ว

    Thank you so much. You are the best

  • @daavidaviid
    @daavidaviid 3 ปีที่แล้ว

    Very nice tutorial

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

    Oh man... I'm on vacation, please don't stop hahahah

  • @ludasolodka7747
    @ludasolodka7747 3 ปีที่แล้ว

    Спасибо, что делишься опытом. Очень мало информации можно найти по three.js... Классная футболка.🙂

    • @akella_
      @akella_  3 ปีที่แล้ว

      спасибо! это из киевского люка ;-)

  • @tinna2941
    @tinna2941 3 ปีที่แล้ว

    Thanks for the video! I had trouble importing the .gltf models but after watching your video I found the last missing piece for the puzzle. For some reason importing only worked when I placed the .gltf file in the public folder as you do.

  • @aadeshkulkarni608
    @aadeshkulkarni608 2 ปีที่แล้ว

    Hey Yuri! Awesome video. Is there any specific reason why we are doing state management using valtio instead of the default react hooks ?

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

    Wow, tanks!

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

    Yuri, more React Three Fiber tutorials please! 🤗

  • @user-bj5zw8gf7r
    @user-bj5zw8gf7r 3 ปีที่แล้ว

    Ну раз в react залезли, надо еще и typescript начать использовать )

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

    This guy is a G!

  • @joelfuller4677
    @joelfuller4677 3 ปีที่แล้ว

    amazing!

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

    If importing an using the useProxy hook cause you troubles, use instead the useSnapshot hook ;)

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

    awesome would love to see `how to use fragment and vertex in react-three-fiber this avoided me to work with it`

  • @marvinJo
    @marvinJo 3 ปีที่แล้ว

    Thank you

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

    Nice tutorial, just love it i want to following this tutorial but I’m new in 3D animation so could you suggest me any tutorial or any suggestions to create shoes model as like your shoes zip . I’m waiting for your response thank you.....

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

      Hi Islam! search up Derek Elliot he just recently dropped a really good tutorial for modeling shoes recently.

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

    It looks great, how could it be done so that it also works with augmented reality? What code should be added?

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

    Can you explain how you created/configured the blender model in the first place (applying material settings, centering the origin on the shoe, etc)? I'm trying to apply this to an existing blender model but am having trouble.

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

      Did you have any luck? I've tried importing stock glb files into blender and then exporting them using the x 6 compression. When I render them with fiber I only get one or two materials showing up.

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

    🔥🔥🔥

  • @evgenymikheev4462
    @evgenymikheev4462 3 ปีที่แล้ว

    Спасибо - интересно и полезно

  • @parnasmi
    @parnasmi 2 ปีที่แล้ว

    Круто!!!!

  • @dylanking165
    @dylanking165 2 ปีที่แล้ว

    awesome

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

    hello, i really loved this video so much but i have a question .how can i modify the actual geometry or the shape of the model, for ex (if i have a chandelier model and ii want to change the bulb )

  • @PeteSchirmer
    @PeteSchirmer 2 ปีที่แล้ว

    Would love to see a tutorial for setting up the blender file

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

    Hi Sir, I love your videos but I want to ask you a question: is it possible to have the link of your three.js basic template? I can not find it and I don't know how to get it. Thank you so much(I'm new to this channel and the folder is used in the past videos)

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

      I uploaded it to patreon, i also coded it in 43 or 44th stream at the beginning, its like 10 minutes

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

    It would be awesome if you could create a video adding the functionality of importing an image (a logo for example) and letting the user move it around the shoe. Thank you :) Amazing video.

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

      do you know how to do it?

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

      @@alfeensadiq8389 Yes! You can either have a plane mesh with opacity 0 then let the user add a file type png then turn the mesh's texture to the picture uploaded and turn the opacity to 1. Also have a shrinkwrap of this plane mesh linked to the model that you want to appear on top of. There seems to be a better option though, it is using decals but I couldn't make it work so I just did it my way.

  • @KaiBuskirk
    @KaiBuskirk 3 ปีที่แล้ว

    Thank You!
    Would love to connect !
    Warmest,
    Kai

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

    Nice tutorial, is it possible to use patterns (like a mask) instead of a color and make the change able on one part of the shoe (like if I click the sole it works) but other parts can''t be changed

  • @Sobieski526
    @Sobieski526 2 ปีที่แล้ว

    Отличное видео!
    I am learning React and trying to create a custom material using React Three Fiber and apply it to one of the meshes from the imported GLB file.
    Whenever I pass a new material definition () into my object nothing happens. Any advice/suggestions on how to make it work?

  • @ooees
    @ooees 3 ปีที่แล้ว

    oh my.. YURI IS THE BEST

  • @naonvl3399
    @naonvl3399 2 ปีที่แล้ว

    great tutorial! but i'dlove to add texture such as images and text to it, is that possible?

  • @ollegat
    @ollegat 3 ปีที่แล้ว

    its magic

  • @muntakim.data.scientist
    @muntakim.data.scientist 2 ปีที่แล้ว

    Hi Yuri,
    Can you tell me where I can find the models for this project, or any guideline how we can dynamically take all the meshs?

    • @akella_
      @akella_  2 ปีที่แล้ว

      models and all the code is in demo, i dont have any other than glb unfortunately

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

    1:35 In order not to use file compression, you need to bake textures and make a set of maps from them, including normalMap, then the quality of the object will visually remain at the same level and the file will be hundreds of times lighter. and instead of a shader, it is better to use PBR material settings. This will reduce the consumption of RAM and video memory on the client. ;)

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

      i wish i knew blender that much! Gotta learn all of that!

    • @MaxKievSky
      @MaxKievSky 3 ปีที่แล้ว

      @@akella_ Modeling, customizing materials, and understanding mapping processes can sometimes take several years before a designer achieves product-level quality. So a person cannot know everything. And for this there is no need to worry.))

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

      Also wondering, how are shader settings different from PBR? On the client its just MeshStandardMaterial in both situations i guess, or am i wrong? Oh, or mb it might be either MeshStandard or MeshPhysical, Standard is a bit faster. 🤔

    • @MaxKievSky
      @MaxKievSky 3 ปีที่แล้ว

      @@akella_ standard MTL, u use normal, bmp, roughness and metallness slots, sometime u should use another map for glass, opacity and its depend from realistic looks in front render

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

    good

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

    Hi Yuri, thank for the tutorial. I try to compress the model with your settings but I can't go under 1260Ko. With gltf-pipeline and compression at 10 in glb, I just win 600Ko (1810Ko to 1260ko). Far from your 243Ko, do you have an idea ?

    • @gabrielhauschildt9041
      @gabrielhauschildt9041 3 ปีที่แล้ว

      Are you using gltf-pipeline with Node.js? I can't get it to work.

  • @prithvimohanty7778
    @prithvimohanty7778 3 ปีที่แล้ว

    @Yuri could you guide me on how to achieve this in React-native expo project?

  • @arunkumaarsrinivasan5845
    @arunkumaarsrinivasan5845 2 ปีที่แล้ว

    is it possible to change the scale of the object like changing the color of the object???

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

    can we change the properties of the Shoe from outside the file..using reflection..without changing the generated code.

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

    Thanks ...can you try changing with textures and not colors

  • @bogasaiteja8968
    @bogasaiteja8968 2 ปีที่แล้ว

    how to show up a dialog/popup box once we hover over the model parts? Could you please help

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

    Lighting for web - tutorials please!

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

    I love this breakdown. However, I've been trying to use this method with other models but gltfjsx gives me the material in this format "material={materials['Material.001']}" and I can't figure out how to tell Valtio what material I'm targeting. I've tried everything 😭

  • @tadachaipanya6647
    @tadachaipanya6647 3 ปีที่แล้ว

    How can I show hex color numbers on input field ?

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

    Hello, I have some troubles with "material-color" when I add them the .gltf ot .glb file can't be loaded. I am on jsx, any idea?

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

    Hey Yuri, you video is extremely helpful. I followed your video but why after I applied npx gltfjsx model.gltf, I got .jsx instead of .js? Could you help me to fix it?

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

      thats even better than js in react context, it is ready to use Component, so just include it and put some tag

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

    How can i paste an image on mesh side in glb model?

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

    Hello i need help, each time i add my shoe function, it keeps giving the error, " shoe is not part of THREE namespace"
    i can continue with the tutorial as my shoe is not added yet to the canvas

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

    how can you zoom the image?

  • @user-dn4sq6pc6z
    @user-dn4sq6pc6z 2 ปีที่แล้ว

    Юрий здраствуйте сделайте видео, расскажите как новичку в разработке верстки с чего начать учится, какую то последовательность основывать, информации очень много на сегодня, и уже каша в голове. Как бы интересно как можно достичь таких же знаний и набраться опыта как у вас? Может у вас есть какие то курсы? Смотрю ваши видео и вызывает восхищение, хочу освоить те же знания, совсем не давно я узнал о html и css, сегодня уже так ни кто не работает запускают стартера, работают с gsap three и что такое gulp) В общем вопросов много! 🙏🙏🙏

  • @glendonphilippbaculio1811
    @glendonphilippbaculio1811 2 ปีที่แล้ว

    pls give me tips to make it work in react native.

  • @valeerasanguinar245
    @valeerasanguinar245 2 ปีที่แล้ว

    Hello,
    I'm having a problem using "Canvas" and "Suspense" since they did add it recently I guess, if possible, what can I use instead, I looked everywhere but couldn't find anything. ( I would get this in my console also 'index.js:1 The above error occurred in the component:' )

  • @anficyon
    @anficyon 3 ปีที่แล้ว

    how can I add a progress ba to this example? ,in the the useprogress DREi example but is confusing and the % of loaded dont match with the data downloaded

    • @anficyon
      @anficyon 3 ปีที่แล้ว

      ill solved it

  • @fastechpk8079
    @fastechpk8079 3 ปีที่แล้ว

    Which IDE are you using?

    • @akella_
      @akella_  3 ปีที่แล้ว

      in this video its codesandbox.io/, but i am usually using VSCode or Sublime

  • @sabikaali5527
    @sabikaali5527 2 ปีที่แล้ว

    I keep getting 'Could not load /model.gltf: Unexpected token < in JSON at position 0' even though my gltf file is in the public folder

  • @anficyon
    @anficyon 3 ปีที่แล้ว

    thanks,
    When we use the orbitControls component we can assign (set) various properties of the OrbitControls
    but how can I call the methods like .getPolarAngle () .getAzimuthalAngle () .update ()

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

    Why do you use a proxy instead of just using useState?

    • @jrichardsio
      @jrichardsio 2 ปีที่แล้ว

      wondering this too.