I Made a 3D Modeler, in C, in a Week

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 พ.ค. 2024
  • ShapeUp source code, demo, and more: www.danielchasehooper.com/post...
    Daniel’s Twitter: / danielchooper
    ShapeUp was demoed in the Handmade Network Wheel Reinvention Jam Recap and at Handmade Seattle. ShapeUp was #1 on HN on May 5, 2024.
  • วิทยาศาสตร์และเทคโนโลยี

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

  • @danielhooper
    @danielhooper  หลายเดือนก่อน +67

    Demo, Source Code, and more info about ShapeUp: danielchasehooper.com/posts/shapeup/

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

      looks like Womp3D

    • @Red.chicken
      @Red.chicken หลายเดือนก่อน

      Is there a way to export?

    • @guilhermemarinho3591
      @guilhermemarinho3591 28 วันที่ผ่านมา +2

      Greetings Mr. Hooper. I felt really inspired with the simplicity of your modeling software to a point that I want to try it myself. Unfortunately, I don't have enough knowledge on computer graphics with C and I have no idea on how modelling works. Could you kindly recommend me some sources to learn more about the subject?
      Thank you.

    • @frankieboyseje
      @frankieboyseje 24 วันที่ผ่านมา

      just out of curiosity how much graphics programming / graphics programs usual ui / graphics algorithms experience did you have when programming this ?

  • @fewew7898
    @fewew7898 หลายเดือนก่อน +915

    Algorithm recommending me a good video for once, must be bugged.

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

      You must have been starving.

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

      Same thing right here 😂😂😂😂😂

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

      yt algorithm used to be so good 😭😭😭

    • @10zDelek
      @10zDelek 29 วันที่ผ่านมา

      lol same

    • @prathamkorade5499
      @prathamkorade5499 29 วันที่ผ่านมา +4

      A bug is sometimes a feature my brother

  • @electrobean
    @electrobean หลายเดือนก่อน +555

    Only 1500 lines of C is just... wow. I hope someday I can code anything as simply and efficiently as you.

    • @shoodler
      @shoodler หลายเดือนก่อน +36

      My efficiency is so bad, i wrote a code almost 700 lines long just for a TicTacToe game thats run in the console

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

      @@shoodlerwhat did you write in those 700 lines?

    • @arikborisov8131
      @arikborisov8131 29 วันที่ผ่านมา +1

      ​@shoodler Share your code please?

    • @lysy-zn2gg
      @lysy-zn2gg 29 วันที่ผ่านมา +12

      It is 2024 lines of C (and raylib, without it it would be muuuuuch more). But still very impressive.

    • @YourMom-rg5jk
      @YourMom-rg5jk 28 วันที่ผ่านมา

      you're kidding, right? have a look at a real project

  • @soyitiel
    @soyitiel หลายเดือนก่อน +358

    didn't need to flex that hard on the title, but dang that's impressive

    • @arossfelder
      @arossfelder หลายเดือนก่อน +18

      That's largely deserved

    • @bayroukabdelmouhaimine9658
      @bayroukabdelmouhaimine9658 หลายเดือนก่อน +24

      Considering the amount of work this requires, I don't think he is flexing enough

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

      it made me watch this video, I'm impressed he did all of that in 1800 lines of code

    • @user-vw2qt8vp8e
      @user-vw2qt8vp8e 28 วันที่ผ่านมา +1

      fr need to flex more this is insane

  • @wege8409
    @wege8409 หลายเดือนก่อน +457

    Bro I can't even draw pixels in C

    • @Ehal256
      @Ehal256 หลายเดือนก่อน +44

      Only way to figure it out is by doing it. I recommend sdl or raylib. Go forth and plot some pixels.

    • @Garfield_Minecraft
      @Garfield_Minecraft หลายเดือนก่อน +22

      use SDL(2D) or openGL(3D) with glfw to create window
      it's not that hard

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

      @@Garfield_Minecraft then what

    • @HonsHon
      @HonsHon หลายเดือนก่อน +19

      ​​@@undeadpresident
      1. Use SDL or OpenGL
      2. Open window
      3. ???
      4. You made a 3D modeller or can draw pixels on screen

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

      Learn it.

  • @antonkesy
    @antonkesy หลายเดือนก่อน +51

    Came for the "in C in a week", stayed for the great explanations and visuals!

  • @TheStickofWar
    @TheStickofWar หลายเดือนก่อน +41

    Your first video in 7 years and its a banger like this.

  • @Brahvim
    @Brahvim หลายเดือนก่อน +26

    If this program has an option to use Perlin noise for making things, I'll call it a Minecraft mod!

  • @MustacheMerlin
    @MustacheMerlin หลายเดือนก่อน +38

    This is how Dreams PS4 works too. Mostly. They actually voxelize the SDF and then render particles at each voxel. They also make it so that the CSG tree is just a straight line, it makes it possible to do a bunch of optimizations in the voxelizer.

  • @adrok8644
    @adrok8644 หลายเดือนก่อน +191

    Dissing blender is wild

    • @tiaanbasson9092
      @tiaanbasson9092 27 วันที่ผ่านมา +6

      It hurt my only feeling.

    • @abex15
      @abex15 25 วันที่ผ่านมา

      yeah it was a weird diss cause blender's method is better, i wouldn't want to make something and not know how many tris it has
      this was a good showcase and impressive but it's not better than blender maybe that was too much ego

    • @godnyx117
      @godnyx117 24 วันที่ผ่านมา

      ​@@abex15 Ehh.... This is a simple information, it could give you. It has nothing to do with the modelling process itself. Even more, everything is pixels in two dimensions under the hood...

    • @abex15
      @abex15 24 วันที่ผ่านมา

      @@godnyx117 dude what?😭 ur talking to someone who actually models in blender, how can you say tris have nothing to do with the modeling process? And in the end omg what 😭😭😭😭😭😭

    • @godnyx117
      @godnyx117 23 วันที่ผ่านมา

      @@abex15 I didn't mean to offend you, sorry if it seemed like that. Let's try again. You said that you wanted to know the number of triangles a model has. What I replied is that, you can model with the way that is shown in the video and also, have the program display the number of triangles for the model. So, you are not forced to model a specific way and work with triangles directly. You'll just have the program display them if that's what worries you.
      The last one. Our screens are 2D. Yes the model are treated as 3D, but the screen is 2D so under the hood, the pixels are drawn in a 2D dimension. The calculations just happen in a 3D environment.

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

    Oh wow! Very inspirational! Thanks for making this video!

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

    Happy it was recommended. Impressive stuff. Subscribed.

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

    This is amazing! My favorite part of this is when you showed off at 3:30 that you can essentially change the quality of your shapes. This would be great to use for retro-style games in essence of PS1 and Nintendo 64!
    Really amazing work. Liked and subscribed.

  • @jackky_john.
    @jackky_john. หลายเดือนก่อน +1

    Wow. I'm happy this was recommended to me. I use mainly for modelling, I try it out.
    Thanks Daniel.

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

    Very nice explanation! Saw the post on HN and really enjoyed it. Very cool project

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

    this is awesome, thanks for sharing. Also I really enjoyed your explanation of SDF's

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

    The animations were so extraordinarily sick, I liked them a lot

    • @danielhooper
      @danielhooper  26 วันที่ผ่านมา +1

      Thanks! My next video is about how I made them. Subscribe!

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

    man this is incredibly impressive, you have an amazing way of conveying knowledge.

  • @michaelkohlhaas4427
    @michaelkohlhaas4427 วันที่ผ่านมา

    Thank you!!! Very helpful tips. Saved me a lot of work!

  • @Browsinghard
    @Browsinghard 27 วันที่ผ่านมา +2

    Great project and explanation. Hope to see you release more videos without waiting 7 years again!! Instant subscribe

    • @danielhooper
      @danielhooper  26 วันที่ผ่านมา +6

      The video I have coming out in 7 years is gonna be amazing

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

    This is incredible! I've been looking for an SDF modeler for some time now

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

    this would be great for a game-making game (like dreams or project spark), since it looks pretty intuitive and you can already control it with a game pad

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

    Very nice! I was thinking of writing exactly this kind of editor that generates GLSL for a distance field raymarched game idea last year, but never did. I like your picking idea, I was planning to ray-test the original shapes instead, but it wouldn't work very well with soft-mins like you said. I also love the idea to triangulate for export, very nice indeed.

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

    It's rare getting recommended some good content by yt. Keep up the good work 💪

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

    I would be blessed if you could please make a line by line explanation video on this. It just looks so well built and production ready. ❤❤ Good job man instant subscribe for such amazing content eagerly waiting for more.

  • @DHARMA252
    @DHARMA252 4 ชั่วโมงที่ผ่านมา

    Man you are legend. I'm your fan from now on. Impressive work.

  • @gawd0r
    @gawd0r 27 วันที่ผ่านมา

    What a beautiful video and nice explanation. Marching Cubes explained perfectly.

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

    Interesting approach having the shaders modified when adding a shape. I only used hand made shaders so all the shapes were "fixed" to what was in the code.
    Have you thought of using buffers with shape definitions and then using loops inside the shader that process each type?
    That seems to be more of compute shader approach rather than a graphics shader, but it might work.

  • @nikhildebrandt8207
    @nikhildebrandt8207 26 วันที่ผ่านมา

    This is god damn amazing for one weeks worth of work!
    Huge props

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

    really cool project ngl, amazing work

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

    Amazing work, glad to see some talented people in this world

  • @trainedtotroll9385
    @trainedtotroll9385 27 วันที่ผ่านมา +1

    So I’ve been working with 3D in Java and glsl too for about a year, been programming for 11 years. I’ve made my own engines but holy cow making a complete model editor in a week is very impressive. Makes me think someone has had a lot of practice ;) good job on the editor and the animated video.

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

    1500 lines is incredible, even with raylib as a rendering backend. good stuff

  • @christophercorona4285
    @christophercorona4285 24 วันที่ผ่านมา

    Incredible work!

  • @robvp71
    @robvp71 24 วันที่ผ่านมา

    love the raylib UI widgets!

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

    Cool. My first go at graphics was an stl file viewer with opengl. Still not completely solid on how the boundary between CPU and GPU works, but it was fun learning. I got sidetracked thinking about how I could write shader code to solve linear algebra problems. Only later did I realize that's what a compute shader is lol.

  • @gichwanene4281
    @gichwanene4281 28 วันที่ผ่านมา

    Good to see you back Daniel

  • @soniferous
    @soniferous 25 วันที่ผ่านมา

    This is insane.
    A whole new way to think about working in 3D.
    I am gonna give it a try.

  • @futotta-neko
    @futotta-neko 26 วันที่ผ่านมา

    Impressive, complex topic into a bite sized digestible format. You earned a sub my friend

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

    Haha, I love the cursor shape selection tactic. Some old software renderers with cursors like ultima underworld and system shock did basically exactly the same thing.

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

    absolutely insane, keep up the hard work >:D

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

    Really cool Daniel!

  • @balaganesh3440
    @balaganesh3440 24 วันที่ผ่านมา

    Man that’s some impressive work.

  • @a6gitti
    @a6gitti 18 วันที่ผ่านมา

    Dope! Looks great

  • @damofx
    @damofx 25 วันที่ผ่านมา

    That’s extraordinary. Very well done sir

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

    Amazing!

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

    Amazing project

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

    This is so impressive!!

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

    Very cool! Reminds me of 3d software called 3dgo for SGI from like what feels a 100 years ago.. how times have changed.

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

    Holy cow, this is gold!

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

    Impressive work 🎉

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

    wonderful, encouraging!

  • @Vivenk88
    @Vivenk88 25 วันที่ผ่านมา

    This is brilliant! 👏

  • @FahtheGamer
    @FahtheGamer 29 วันที่ผ่านมา

    This looks so good bro i will try it

  • @yuvrajkukreja1248
    @yuvrajkukreja1248 29 วันที่ผ่านมา +1

    Great work 🙂

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

    Finally quality content

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

    amazing stuff

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

    Wow! This is really impressive!🍀

  • @peterholub4375
    @peterholub4375 26 วันที่ผ่านมา

    Very nice, has a lot of potential, well done.
    Hit some bug with white screen after applying roundness to starting cube and clicking into the void.
    Haven't tested yet, but I would be curious to see how quad remesh fairs with the marched cubed/voxelized mesh.
    Features I would like to see:
    - zoom in/out (preferably with mouse wheel) and middle mouse drag to pan
    - splitting shapes into groups with settings (atm idk how you really apply cutting or smooth blending in this setup)
    - support for more shapes + extrude (e.g. making cylinder out of extruded circle shape)
    - add support for perlin noise deforms or even custom function deforms
    - add support for some array modifiers (which should make thing more efficient in case of repetition)
    Btw in case you didn't know already a good source for further research on this topic is Inigo Quilez.

  • @tiaanbasson9092
    @tiaanbasson9092 27 วันที่ผ่านมา

    Impressive, will check it out.

  • @Salehalanazi-7
    @Salehalanazi-7 27 วันที่ผ่านมา

    Insane work!

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

    Really informative and entertaining ❤️

  • @donovanfitz5204
    @donovanfitz5204 28 วันที่ผ่านมา +1

    There's an extremely similar program called Womp 3D that's quite good and fun.
    Impressive how similar a job you did

  • @alexhooper27
    @alexhooper27 27 วันที่ผ่านมา +4

    From one programmer with the last name Hooper to another, good job.

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

    This is like when Inigo Quilez demonstrates 3D modeling in Shadertoy

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

    man this is just incredible..

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

    Really impressive!

  • @mcblade85
    @mcblade85 25 วันที่ผ่านมา

    Very impressive!! 👏👏

  • @skatlag
    @skatlag 28 วันที่ผ่านมา

    Great work fam!

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

    Nice! You can do SDF modeling in blender through addons of course

  • @michaelgenao6212
    @michaelgenao6212 28 วันที่ผ่านมา

    thanks for sharing ive tried using cad before and stopped in my tracks. generative models are the future and this seem to be a large leap in that direction.

  • @thiagooliveira7935
    @thiagooliveira7935 29 วันที่ผ่านมา

    this is a gem.

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

    amazing job!

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

    pretty awesome

  • @kamuykaz01
    @kamuykaz01 25 วันที่ผ่านมา

    wow ! great job !

  • @Sergio-ds3sq
    @Sergio-ds3sq 25 วันที่ผ่านมา

    No way. You're awesome bro.

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

    This video is gonna blow up real soon!!

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

    just..incredible...

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

    great project! :O

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

    Very impressive work! Good techniques! Keep up the good work. How did you make the visualization animations?

    • @danielhooper
      @danielhooper  26 วันที่ผ่านมา +2

      My next video is about how I made the animations. Subscribe!

    • @MasoodOfficial
      @MasoodOfficial 25 วันที่ผ่านมา +1

      @@danielhooper already did!

  • @MEMEmasterOFjustice
    @MEMEmasterOFjustice 27 วันที่ผ่านมา

    Dangggg, as a beginner programmer in C++, this goes hard, amazing work

  • @blimeycreate
    @blimeycreate 28 วันที่ผ่านมา

    This is great work, especially for a week! For me to implement just basic shapes in Blimey took much more time.

  • @turxandunya4010
    @turxandunya4010 27 วันที่ผ่านมา

    Thank you

  • @andreipriboi8373
    @andreipriboi8373 26 วันที่ผ่านมา

    this is really nice

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

    Saw the title of video, immediately subscribed.

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

    Great video

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

    Very cool!

  • @jamesmillerjo
    @jamesmillerjo 29 วันที่ผ่านมา +2

    The biggest block of ray marching modeller is 'saving to mesh' feature.
    If it isn't possible, it is just a fancy pixel zoo.
    Marching cubes is a reasonable method, but its problem is the surface quality.

    • @ianbryant
      @ianbryant 29 วันที่ผ่านมา

      Maybe surface nets would work better.

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

    This man is an absolute beast.

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

    Amazing an SDF modeller, sick

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

    Another day, another sdf tool. God damn, I wish I could do it in just a week like you, then I would have my thesis long finished x-x
    Great explanations and animations, nice usage of interactive shader regeneration with lazy baking!
    What were the gizmos made in?

  • @canicann
    @canicann 29 วันที่ผ่านมา

    You have great potential, use it well

  • @St0RM33
    @St0RM33 23 วันที่ผ่านมา

    I think it's a very nice concept for quick digital capturing of concepts/3d sketches even for CAD work (i''m a mechanical engineer)

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

    Very impressive

  • @pelihahmo6951
    @pelihahmo6951 29 วันที่ผ่านมา +1

    that is awesome

  • @sushiConPorotos
    @sushiConPorotos 26 วันที่ผ่านมา

    You are a genius dude

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

    This is wild!

  • @dmay817
    @dmay817 26 วันที่ผ่านมา

    Could you make a video showing how you set up the UI and possibly how to deploy it as a packaged app or executable?

  • @dr.margulis7773
    @dr.margulis7773 27 วันที่ผ่านมา

    Man! This is freaking awesome!!! Respeсt!!

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

    that's cool dude!